程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle備份恢復批處理文件的3建議

Oracle備份恢復批處理文件的3建議

編輯:Oracle數據庫基礎

我們在處理簡單的Oracle備份恢復批處理文件時。是否遇到過一些令我們十分頭疼的一些問題,以下的相關內容就是對處理簡單的Oracle備份恢復批處理文件的過程中我們應注意的問題以及相關的建議。

建議一:

利用任務計劃、批處理文件和Oracle的EXP導出功能,可以根據日期自動生成Oracle備份文件,大大方便了Oracle數據備份。:

1、建立批處理文件backup.bat\.

  1. exp system/manager file=d:\backup\Oracle\Oracle%date:~0,10%.dmp 
    owner=system log=d:\backup\Oracle\Oracle%date:~0,10%.log 

將生成Oracle2006-01-09.dmp文件

  1. exp system/manager file=d:\backup\Oracle\Oracle%date:~11,3%.dmp 
    owner=system log=d:\backup\Oracle\Oracle%date:~11,3%.log 

將生成Oracle星期一.dmp文件,則每周循環保留一個備份文件,共7個備份文件循環

2、添加一個任務計劃

利用任務計劃向導,根據備份策略設置自動執行任務的時間頻率(例如每天零時),執行d:\Oracle\backup.bat

3、以後每天將在目錄中生成形如“Oracle2005-08-31.dmp和Oracle2005-08-31.log”的備份和日志文件。

說明:

1、%date%的值在不同的系統、語言版本下可能是不一樣的,控制面板裡面區域選項的設定也會改變%date%的值。請先在命令行中測試 echo %date% 的返回值。%date:~4,10% 是返回日期函數,~後的第一個參數是要截取的起始位置(從0開始),第二個參數是要截取的長度,如沒有則是截取到最後,參數可酌情修改。

2、如需要准確的時間做為文件名,請用%time%函數,參數同上。

建議二:

  1. @echo off  
  2. set filename=e:\data_bak\%date:~8,2%日  
  3. exp useruserid=user/pass@esdata file=%filename%.
    dmp owner=user INDEXES=y grants=y constraints=y
     
    compress=y log=%filename%.log  
  4. rar a %filename%.rar %filename%.*  
  5. del %filename%.dmp  
  6. del %filename%.log  

放計劃任務裡面定時執行,

文件名以日期的day部分來命名

備份後調用rar進行壓縮

這樣可以保存一個月的歷史數據

注意:需要把program files/winrar目錄下的rar.exe拷貝到系統system32目錄下

如果是以星期命名,則需要將set filename=e:\data_bak\%date:~8,2%日修改為

set filename=e:\data_bak\%date:~0,3%

建議三:

以下為Oracle 自動備份批處理文件內容,請配合任務計劃實現

@ECHO OFF

SET BACKPATH=d:\

ECHO 准備備份數據庫

REM 7天一個循環

  1. IF EXIST %BACKPATH%\ONE GOTO ONE  
  2. IF EXIST %BACKPATH%\TWO GOTO TWO  
  3. IF EXIST %BACKPATH%\THREE GOTO THREE  
  4. IF EXIST %BACKPATH%\FOUR GOTO FOUR  
  5. IF EXIST %BACKPATH%\FIVE GOTO FIVE  
  6. IF EXIST %BACKPATH%\SIX GOTO SIX  
  7. IF EXIST %BACKPATH%\SEVEN GOTO SEVEN  
  8. ECHO E > %BACKPATH%\ONE  
  9. :ONE  
  10. SET BACKPATH_FULL=%BACKPATH%\ONE  
  11. REN %BACKPATH%\ONE TWO  
  12. GOTO BACK  
  13. :TWO  
  14. SET BACKPATH_FULL=%BACKPATH%\TWO  
  15. REN %BACKPATH%\TWO THREE  
  16. GOTO BACK  
  17. :THREE  
  18. SET BACKPATH_FULL=%BACKPATH%\THREE  
  19. REN %BACKPATH%\THREE FOUR  
  20. GOTO BACK  
  21. :FOUR  
  22. SET BACKPATH_FULL=%BACKPATH%\FOUR  
  23. REN %BACKPATH%\FOUR FIVE  
  24. GOTO BACK  
  25. :FIVE  
  26. SET BACKPATH_FULL=%BACKPATH%\FIVE  
  27. REN %BACKPATH%\FIVE SIX  
  28. GOTO BACK  
  29. :SIX  
  30. SET BACKPATH_FULL=%BACKPATH%\SIX  
  31. REN %BACKPATH%\SIX SEVEN  
  32. GOTO BACK  
  33. :SEVEN  
  34. SET BACKPATH_FULL=%BACKPATH%\SEVEN  
  35. REN %BACKPATH%\SEVEN ONE  
  36. GOTO BACK  
  37. :BACK  
  38. EXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP  
  39. SET BACKPATH=  
  40. SET BACKPATH_FULL=  
  41. EXIT 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved