在Oracle中,如何備份控制文件,?備份控制文件的方式有哪幾種,? 答案:備份控制文件的方式有多種。 ① 備份控制文件可以在線進(jìn)行: SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/tmp/control.ctl';--熱備份控制文件 SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/home/bk/a.ctl';--得到建立控制文件的腳本,,備份為文本文件格式 SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE [RESETLOGS|NORESETLOGS]; ② RMAN手動(dòng)備份控制文件: BACKUP CURRENT CONTROLFILE; BACKUP CURRENT CONTROLFILE FORMAT '/home/oracle/oracle_bk/orclasm/ctl_%d_%T_%s_%p.bak'; BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/home/oracle/ctl.bak'; BACKUP DATABASE INCLUDE CURRENT CONTROLFILE; ③ 設(shè)置RMAN自動(dòng)備份控制文件: RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/ctl_%f.bak'; 然后再通過rman做任何備份操作的同時(shí),,都會(huì)自動(dòng)對(duì)控制文件做備份。 當(dāng)數(shù)據(jù)庫處于歸檔模式且設(shè)置了“CONFIGURE CONTROLFILE AUTOBACKUP ON;”時(shí),,若數(shù)據(jù)庫的結(jié)構(gòu)發(fā)生了變化(例如添加或刪除表空間),,則也會(huì)自動(dòng)對(duì)控制文件進(jìn)行備份。需要注意的是,,從Oracle 11g開始,,rman對(duì)控制文件自動(dòng)備份做了延遲處理。在Oracle 10g中,,引入了控制文件的自動(dòng)備份特性,。如果數(shù)據(jù)庫的結(jié)構(gòu)發(fā)生了變化,那么Oracle會(huì)自動(dòng)將控制文件備份到指定目錄中,,并且在告警日志中記錄相關(guān)的信息,。前提是數(shù)據(jù)庫處于歸檔模式,并且CONTROLFILE AUTOBACKUP設(shè)置為ON,。但是,,從Oracle 11gR2開始,引入了控制文件自動(dòng)備份延遲創(chuàng)建的特性,。即使設(shè)置了控制文件的自動(dòng)備份,,在數(shù)據(jù)庫結(jié)構(gòu)發(fā)現(xiàn)變化的時(shí)候也不會(huì)立即看到控制文件的備份,而是在300秒(由隱含參數(shù)“_controlfile_autobackup_delay”來控制,,默認(rèn)是300秒)后才會(huì)看到控制文件被自動(dòng)做了備份(經(jīng)過實(shí)驗(yàn)測試,,發(fā)現(xiàn)實(shí)際上是10分鐘之后)。而且,,在告警日志中也只能看到數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化的信息,,而看不到控制文件自動(dòng)備份的信息了,,這是Oracle為了改變性能而引入的,防止用戶在一個(gè)腳本中多次對(duì)數(shù)據(jù)庫結(jié)構(gòu)的變化而創(chuàng)建多個(gè)控制文件備份,。例如CREATE TABLEPACE,、DROP LOGFILE、ADD LOGEILE等,,那么Oracle 11g只會(huì)備份一個(gè)控制文件,,而不是多個(gè);對(duì)于Oracle 10g只要數(shù)據(jù)庫結(jié)構(gòu)改變,,就會(huì)自動(dòng)備份一個(gè),。MOS文檔[ID 1068182.1]對(duì)這個(gè)問題做了說明。在Oracle 11g中,,備份控制文件的后臺(tái)進(jìn)程為MMON的奴隸進(jìn)程,,默認(rèn)會(huì)生成一個(gè)trace文件,名稱為SID__m000_ Starting control autobackup
*** 2018-03-22 13:46:39.836 Control autobackup written to DISK device handle '/u05/app/oracle/flash_recovery_area/ORA11G/autobackup/2018_03_22/o1_mf_s_971444798_fc6jszc5_.bkp' ④ 只要是對(duì)編號(hào)為1的數(shù)據(jù)文件,,即SYSTEM表空間的數(shù)據(jù)文件做備份時(shí),RMAN也會(huì)自動(dòng)對(duì)控制文件做備份,。 ⑤ 快照控制文件,。快照控制文件是由RMAN在系統(tǒng)指定位置生成的當(dāng)前控制文件的一個(gè)副本,。當(dāng)RMAN開始備份時(shí),,Oracle會(huì)檢查系統(tǒng)控制文件與快照控制文件是否一致(如果不存在,那么會(huì)從控制文件提取信息創(chuàng)建),,若不一致則刷新快照控制文件,。RMAN在以下情況中需要快照控制文件:1.同步恢復(fù)目錄時(shí)2.對(duì)當(dāng)前控制文件進(jìn)行備份時(shí),。在RAC環(huán)境下,,僅僅在實(shí)施RMAN備份的節(jié)點(diǎn)上需要快照控制文件。 查看快照控制文件的位置: RMAN> show snapshot controlfile name; RMAN configuration parameters for database with db_unique_name USBO are: CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/db_1/dbs/snapcf_lhrdb.f'; # default Linux/Unix平臺(tái)為:$ORACLE_HOME/dbs/snapcf_$ORACLE_SID.f Windows平臺(tái)為:%ORACLE_HOME%\database\snapcf_%$ORACLE_SID%.f 如果要查看備份的控制文件,,那么可以通過: RMAN> LIST BACKUP OF CONTROLFILE; & 說明: 有關(guān)控制文件備份的更多內(nèi)容可以參考我的BLOG:http://blog./26736162/viewspace-2152115/ ● 本文作者:小麥苗,,只專注于數(shù)據(jù)庫的技術(shù),更注重技術(shù)的運(yùn)用 |
|