導航:首頁 > 文件處理 > oracle自動備份壓縮文件

oracle自動備份壓縮文件

發布時間:2025-01-12 11:31:40

⑴ Oracle 備份的方法有哪些

我們為Oracle 10g制定的夜間備份策略9步是: 1、刪除舊的日誌文件並重命名當前的日誌2、刪除所有RMAN備份文件3、執行一個0級RMAN備份4、創建克隆文件5、創建歸檔日誌備份,包括恢復目錄內務6、刪除數據泵導出文件7、執行數據泵導出8、檢查日誌錯誤9、廣播和/或發送簡短錯誤描述的電子郵件1、刪除舊日誌文件並重命名當前的日誌這是每天都要執行的,為所有的腳本創建一個日誌文件是很好的實踐,在步驟8中,我檢查所有日誌錯誤,因此重命名了當前日誌,當它們被重命名後,就很容易參考舊的作業分辨出錯誤了,這些所有需要刪除的最終是為了不引起空間問題。代碼清單1:qgrep -l rman D:Oracleadmincommonbackuplogs* >>%LOGFILE%del /Q D:Oracleadmincommonbackuplogs*.oldlog3 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.oldlog2 *.oldlog3 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.oldlog1 *.oldlog2 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.log *.oldlog1 >>%LOGFILE%提示:盡力自動清除日誌文件,要記住這些命令是不容易的。2、刪除所有RMAN備份文件這僅需要在0級RMAN備份之前執行一次,我們的RMAN備份在X:驅動器上執行,正確地說是X:RMAN。我們估算這個驅動器可以容納下我們的0級備份、歸檔日誌、歸檔日誌備份和數據泵導出文件。每周清除一次RMAN文件基本上可以保證驅動器上有足夠的空間存儲下一周的備份。代碼清單2:# Running these commands will show the files that will be deleted in the next step.FORFILES /p x:rman /m *.bks /d -0 /c "CMD /C echo @PATH@FILE @FDATE.@FTIME" >>%logfile%FORFILES /p x:rman /m *cfile* /d -0 /c "CMD /C echo@PATH@FILE @FDATE.@FTIME" >>%logfile%# These commands perform the actual deletion.FORFILES /p x:rman /d -0 /c "CMD /C del *.bks" >>%logfile%FORFILES /p x:rman /d-0 /c "CMD /C del *cfile*" >>%logfile%提示:一定要自動刪除磁碟上的大文件。在一個不恰當的時間刪除你將用光磁碟空間。X因子X:驅動器是這個備份的關鍵部分,我們定期在其他伺服器或交替節點上克隆我們的生產資料庫進行測試和開發。RMAN喜歡從它們的備份中獲取它的文件,最簡單的方法就是備份到磁帶上,這種方法與你在伺服器上執行克隆沒什麼區別,當你告訴RMAN你的目標資料庫,它就直接為它需要的文件轉到介質管理層(MML),我們使用磁帶的問題是磁帶不可靠或磁帶驅動不可靠,我們的解決辦法是備份到磁碟上,問題是它將中伺服器相同的驅動器映射中來回地復制文件,我們需要做的是映射一個SAN驅動器到我們的生產伺服器上,然後在啟動時將我們的測試伺服器映射到同一個SAN驅動器,我們可以在伺服器命令行使用一個命令來完成這個任務,我們可以通過使用一個來自Windows資源套件中叫做AutoExNT的服務來解決這個問題,它允許我們在啟動時運行一個批處理文件,我們可以將命令放在那裡,現在生產和測試伺服器都映射到同一個X:驅動器。X文件因子AutoExNT只能工作在32位伺服器上,當你有64位伺服器時問題就來了,不幸的是,Windows資源套件對64位伺服器無效,因此無法使用AutoExNT,幸運的是,我們可以說服我們的開發人員在64位Windows上創建一個「啟動」服務,讓它與AutoExNT服務一樣,無論怎樣,我們讓批處理文件在伺服器啟動時執行。3、執行一個0級RMAN備份這一步通常每周執行一次,我們有一些更大、更活動的資料庫創建的數量巨大的歸檔日誌,在恢復或克隆時,恢復資料庫的時間將很長,在這些情況下,我們在一周內將不止執行一次0級備份,在0級RMAN備份中,我們執行非恢復目錄維護,腳本叫做DBname_lvl_0_disk.rcv。代碼清單3:#************* Configure controls for Recovery Manager *******************#***************** in case they have been changed ************************configure controlfile autobackup on;configure controlfile autobackup format for device type disk to 'X:rmanCFILE_%F.bks';configure channel 1 device type disk format 'X:rmanBACKUPPIECE_%d_%U_%T_%s.bks' maxpiecesize 2048M;configure retention policy to recovery window of 34 days;#************* Perform weekly RMAN level 0 Database Backup ***************backup as compressed backupset incremental level = 0 database;#************* Confirm level 0 Backup is valid ***************************restore database check logical validate;第一個命令配置RMAN讓控制文件和spfile自動備份,第二個命令指定RMAN用一種特定的格式給文件命名,本例中,備份到磁碟上的文件叫做「X:rmanCFILE_F%.bks」,第三個命令創建一個磁碟通道並命名為「1」,命名備份片「X:rmanBACKUPPICE_%d_%U_%T_%s.bks」以及任何一個備份片的大小不能超過2GB,第四個命令告訴恢復目錄目標資料庫的備份應該保留34天,第五個命令才是真正的執行備份,它告訴RMAN創建一個壓縮的備份集,它真正可以容納更多的備份片,它還指定了僅對資料庫執行一個完整備份,沒有備份歸檔日誌,因為存儲是最主要的問題,壓縮備份對節省空間真正的有幫助,我們發現這是RMAN最有用的特性之一,最後一行的命令執行已經完成的備份檢查,它讀取備份文件並確認它們沒有被破壞,我強烈建議不要跳過這一步,沒有什麼比在需要恢復一個資料庫時發現一個或更多的文件不可用更糟糕的了。提示:只有當備份文件確認有效後你才可以使用它們,是的,事情就是這樣!我已經試過多次在備份完成後但檢查確認未完成之前的實驗了。我使用一個Windows批處理文件調用RMAN 0級備份腳本,這個批處理文件叫做DBname_lvl_0_disk.bat。代碼清單4:set NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SSset NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252set CURDIR=D:Oracleadmincommonbackupcd %CURDIR%rman target ID/pword@DBname catalog rcatID/rcatpword@rcatname log=logsDBname_lvl_0_disk.log @DBname_lvl_0_disk.rcvpage_on_backup.vbs DBname_level_0_disk.log page_DBname_level_0.log Dbname最前面兩行設置操作系統的環境變數,我們更喜歡詳細一點的日期掩碼,05-DEC-2007 23:59:59"比"05-DEC-2007"好,日期格式在恢復過程中變得更重要了,設置NLS_LANG變數,移除所有資料庫正在使用的字元設置疑惑,第三和第四行對於使用計劃任務而言是很重要的,Windows需要直接指定RMAN腳本的位置,因此設置好目錄並將腳本移動到那裡,接下來,才真正的調用RMAN,需要同時登陸到target和catalog,在當前目錄下一個獨立的叫做「logs」的子目錄下創建一個日誌文件,以及調用列表4中的腳本代碼,如果出現任何錯誤,一個VB腳本被調用呼叫支持人員,如果不出現錯誤,那麼只會發送一封日誌文件的電子郵件,在第9小節會有更多細節信息。4、 創建克隆文件這是用RMAN備份自動「刷新」測試資料庫最關鍵的一步,克隆文件批處理作業實際上創建了「復制資料庫」語句,我們使用它克隆我們的生產資料庫到我們的測試資料庫上,下面是一個叫做create_TESTDB_clone_files.sql的在生產伺服器上運行的SQL腳本文件。代碼清單5: set echo off;set feedback off;set linesize 140;SET PAGESIZE 0;set trimspool on;ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MON-DD HH24:MI:SS';select checkpoint_change# from v$database;alter system archive log current;select sysdate from al;-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************-- ******************************* TESTDBSERVER **************************-- ******************************* TESTDBSERVER **************************-- ******************************* TESTDBSERVER **************************-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************--TESTDB1spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB1.rcvselect 'plicate target database to TESTDB1 until time ' ||''''|| sysdate ||''';' from al;spool off;--TESTDB2spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB2.rcvselect 'plicate target database to TESTDB2until time ' ||''''|| sysdate ||''';' from al;spool off;--TESTDB3spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB3.rcvselect 'plicate target database to TESTDB23until time ' ||''''|| sysdate ||''';' from al;spool off;-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************-- ********************************* THE END *****************************-- ********************************* THE END *****************************-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************alter system archive log current;select sysdate from al;select checkpoint_change# from v$database;select sysdate from al;exit;這個腳本在生產伺服器上運行,spool輸出到測試伺服器,首先你注意的是NLS_DATE_FORMAT設置,與0級備份時設置方法一樣;接下來,你看到我們已經選擇了系統改變序號或SCN,資料庫也可以通過使用SCN克隆和/或恢復,我們不再使用SCN進行資料庫復制,我們不取消這一步是因為我們想查看日誌文件中的SCN,假設在一個生產恢復情景下,SCN在一個額外的位置是可用的,在接下來的語句中,我們對當前的重做日誌進行歸檔,我們從Oracle 8i開始就已經執行過了RMAN復制,但日誌方面總有問題,這是唯一可以確定的最好的方法,我們每次都這樣使用;接下來,我們選擇sysdate,我們想在SCN下查看它,向下移動到spool語句,你看到一個為TESTDBSERVER編寫的名叫clone_to_TESTDB.rcv的RMAN腳本,只有一行:代碼清單6:plicate target database to TESTDB1 until time '2007-DEC-05 19:55:00';你可以在你的測試資料庫伺服器上為每個測試資料庫單獨編寫一個克隆腳本,正如你看到的,這就是我們所做的,我們有一部分生產資料庫伺服器不止安裝有一個生產資料庫,對那些我們有兩個腳本,在每個生產資料庫上為測試資料庫創建一個克隆腳本。代碼清單7:set NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SSset NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252set CURDIR=D:Oracleadmincommonbatchcd %CURDIR%sqlplus system/pword@DBNAME @create_TESTDB_clone_files.sql >logscreate_TESTDB_clone_files.log這個腳本的批處理文件非常簡單,最前面的兩行設置你的環境變數,第三和第四行用於任務調度,非常重要,windows需要直接指定SQL腳本的位置,因此需要設置好目錄後,將腳本移動到目錄中,接下來,SQLplus才真正被調用和運行腳本以創建克隆文件,在當前目錄下的一個叫做logs的子目錄中單獨生成了一個日誌文件。

⑵ oracle中怎麼設置資料庫自動備份

Oracle自動備份的三種方法:x0dx0aOracle自動備份資料庫不外乎以下三種方式:x0dx0aWINDOWS下的任務計劃(At命令)x0dx0aUNIX下的Crontab x0dx0a第三方工具如Viritasx0dx0a在以上三種方式中Viritas屬於第三方工具,很多人可能都沒有接觸,主要說一下windows的任務計劃與unix的cronx0dx0a1、生成腳本文件,如backup.rcv 假定文件內容如下:x0dx0a$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format 『豎核/u01/oradata/backup/arch%u_%s_%p』 archivelog all delete input; release channel c1; release channel c2; release channel c3; }x0dx0ax0dx0a2、生成執行文件在windows上生成backup_archive.bat,內容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內容包括oracle/ramn/rman cmdfile = backup.rcvx0dx0a3、加入調度在windows中用任務計劃向導即可,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下x0dx0a$>cat oracle x0dx0a0 23 * * 0 backup_archive.sh x0dx0a#表示星宏纖歷期天23點對資料庫備份 x0dx0a0 12,18 * * * backup_archive.sh x0dx0a #表示每天12點,蔽搜18點備份 x0dx0aCrontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。

⑶ oracle怎樣實現備份文件自動壓縮

1、在需要儲存備份的硬碟中建文件夾如:databasebackup ;
2、拷貝exp.bat到 databasebackup 中;(把下列語句保存成exp.bat文件)
set filename=c:\databasebackup\%date:~0,10%
exp.exe system/system@testdb wner=ewms file=%filename%.dmp log=%filename%.log
rar a %filename%.zip %filename%.dmp %filename%.log
del %filename%.dmp
del %filename%.log
3、從資料庫系統C:\Program Files\WinRAR中拷貝Rar.exe文件到 C:\WINDOWS\system32中;
4、執行系統定時任務。

⑷ oracle資料庫自動備份系統

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。下面我為大家分享一下oracle資料庫自動備份系統的 方法 ,有需要的可以參考一下!

oracle資料庫自動備份系統

實現過程:

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 Scheler"服務,發現啟動類型為"已禁用",

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

3.簡單解釋

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

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

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

4. Rem 命令:注釋命令

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

6. exit :退出命令行

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

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

【GRANTS=N】許可權不被導入。

⑸ oracle資料庫如何每天自動執行腳本完成正式資料庫到備份資料庫的備份

樓主:供參考
利用任務計劃、批處理文件和ORACLE的EXP導出功能,可以根據日期自動生成ORACLE備份文件,大大方便了ORACLE數據備份。
建議一(做周備份並壓縮為RAR)以下為ORACLE 自動備份批處理文件內容,請配合任務計劃實現 :
例:
@ECHO OFF
SET BACKPATH=d:\
ECHO 准備備份資料庫
REM 7天一個循環
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E > %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP ccense/ccense FILE=%BACKPATH_FULL%.DMP
RAR a %BACKPATH_FULL%.rar %BACKPATH_FULL%.DMP
DEL %BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
說明:
文件名以星期來命名
備份後調用rar進行壓縮
這樣可以保存一個星期的歷史數據
注意:需要把program files/winrar目錄下的rar.exe拷貝到系統system32目錄下
建議二:
1,批處理文件backup.bat\.
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文件
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個備份文件循環 $date$日期參數可靈活運用。

閱讀全文

與oracle自動備份壓縮文件相關的資料

熱點內容
java數據結構和演算法分析 瀏覽:396
怎麼理解虛擬伺服器 瀏覽:402
黑馬程序員ai培訓課資源 瀏覽:648
abplc加密軟體下載 瀏覽:421
交叉編譯內核後 瀏覽:275
php小程序100行左右 瀏覽:103
要進行壓縮解壓的命令是 瀏覽:736
mscod編程平台 瀏覽:520
pdf文字轉換word文檔 瀏覽:992
php連接mssql2005 瀏覽:894
庫進行編譯可以嗎 瀏覽:773
雲南石油app推薦碼哪裡看 瀏覽:457
ipone有文件加密嗎 瀏覽:72
蝴蝶文件夾怎麼使用 瀏覽:699
wps文件夾安裝包在哪裡 瀏覽:439
android2x 瀏覽:135
知音購物app哪裡下載 瀏覽:527
stc單片機看門狗 瀏覽:790
單片機與計算機串口通信 瀏覽:309
linux安裝jdk7 瀏覽:286