windows系統下oracle數據庫定時自動備份

點評:為避免數據丟失或錯誤,對數據庫數據的定時備份

實現目的:為避免數據丟失或錯誤,對數據庫數據的定時備份

  實現方式:oracle導出+windows 任務 完成

  學習方法:先知其然,後知其所以然

  實現過程:

  1. 建立文件 backup.bat (自定義文件名.bat)

  @echo off

  REM ###########################################################



  REM # Windows Server 2003下Oracle數據庫自動備份批處理腳本

  REM ###########################################################

  REM 取當前系統時間,可能因操作系統不同而取值不一樣

  set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%

  set CURMON=%date:~0,4%%date:~5,2%

  set CURTIME=%time:~0,2%

  REM 小時數如果小於10,則在前面補0

  if "%CURTIME%"==" 0" set CURTIME=00

  if "%CURTIME%"==" 1" set CURTIME=01

  if "%CURTIME%"==" 2" set CURTIME=02

  if "%CURTIME%"==" 3" set CURTIME=03

  if "%CURTIME%"==" 4" set CURTIME=04

  if "%CURTIME%"==" 5" set CURTIME=05

  if "%CURTIME%"==" 6" set CURTIME=06

  if "%CURTIME%"==" 7" set CURTIME=07

  if "%CURTIME%"==" 8" set CURTIME=08

  if "%CURTIME%"==" 9" set CURTIME=09

  set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%

  REM 設置所有者、用戶名和密碼

  set OWNER=orcl

  set USER=bktcgl

  set PASSWORD=bktcgl

  REM 創建備份用目錄,目錄結構為oraclebak/YYYYMMDD/

  if not exist "oraclebak" mkdir oraclebak

  cd oraclebak

  if not exist "%CURMON%" mkdir %CURMON%

  set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%.DMP

  set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_log.log

  REM 調用ORACLE的exp命令導出用戶數據

  exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n

  exit

  註:

  1.bat文件可雙擊或直接在命令行執行,檢查正確與否

  2.檢查時可註釋掉exit

  3.以上文件實現按月份創建文件夾,按時間生成備份文件

  2.建立windows任務

  步驟:

  開始 -> 所有程序 -> 附件 -> 系統工具 -> 任務計劃程序 -> 操作 -> 創建基本任務

  -> 任務名輸入"oracle_backup"(自定義任務名),執行這個任務選擇每天,下一步

  -> 起始時間下午12:00,起始日期2012-7-11,下一步 ->(啟動程序)下一步

  ->在 瀏覽 中查找剛剛寫好的 backup.bat 文件 >下一步 > 完成

  註:

  1.在任務計劃欄目下新增一個名為"oracle_backup"的任務計劃,表明已經配置完畢。

  2.不同系統的任務計劃略有不同,但基本換湯不換藥,不做一一例舉

  問題:系統警告"已創建新任務,但可能不能運行,因為無法設置賬戶信息。指定的錯誤是:Ox80041315:任務計劃程序服務沒有運行"

  原因:電腦的任務計劃程序服務沒有啟動起來。

  解決:開始 > 所有程序 > 管理工具 > 服務,找到"Task Scheduler"服務,發現啟動類型為"已禁用",

  右鍵單擊更改為"自動",並把它啟動起來,然後重新添加一次任務計劃就可以瞭。

  3.簡單解釋

  1. bat:是dos下的批處理文件。批處理文件是無格式的文本文件,它包含一條或多條命令。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用 Cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。

  2. Echo 命令:打開回顯或關閉請求回顯功能,或顯示消息。

  3. @ 命令:表示不顯示@後面的命令

  4. Rem 命令:註釋命令

  5. If命令:if表示將判斷是否符合規定的條件,從而決定執行不同的命令。

  6. exit :退出命令行

  7. GRANTS: 是權限的意思,在你導出的目標數據庫中可能會有一些表的如select 權限等賦給瞭別的用戶。

  【GRANTS=Y】導出的時候將這些權限導出,導入的時候將這些權限導入。

  【GRANTS=N】權限不被導入。

Leave a Reply

Your email address will not be published. Required fields are marked *