【RMAN】Oracle中如何備份控制文件?備份控制文件的方式有哪幾種?


【RMAN】Oracle中如何備份控制文件?備份控制文件的方式有哪幾種?


 




真題一、
 
如何備份控制文件?備份控制文件的方式有哪幾種?node


答案:備份控制文件的方式有多種。 linux

備份控制文件能夠在線進行: 面試

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手動備份控制文件: session

BACKUP CURRENT CONTROLFILE; oracle

BACKUP CURRENT CONTROLFILE FORMAT '/home/oracle/oracle_bk/orclasm/ctl_%d_%T_%s_%p.bak'; app

BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/home/oracle/ctl.bak'; ide

BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

設置RMAN自動備份控制文件:

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/ctl_%f.bak';

而後再經過rman作任何備份操做的同時,都會自動對控制文件作備份。

當數據庫處於歸檔模式且設置了CONFIGURE CONTROLFILE AUTOBACKUP ON;」時,若數據庫的結構發生了變化(例如添加或刪除表空間),則也會自動對控制文件進行備份。須要注意的是,從Oracle 11g開始,rman對控制文件自動備份作了延遲處理。在Oracle 10g中,引入了控制文件的自動備份特性。若是數據庫的結構發生了變化,那麼Oracle會自動將控制文件備份到指定目錄中,而且在告警日誌中記錄相關的信息。前提是數據庫處於歸檔模式,而且CONTROLFILE AUTOBACKUP設置爲ON。可是,從Oracle 11gR2開始,引入了控制文件自動備份延遲建立的特性。即便設置了控制文件的自動備份,在數據庫結構發現變化的時候也不會當即看到控制文件的備份,而是在300秒(由隱含參數「_controlfile_autobackup_delay」來控制,默認是300秒)後纔會看到控制文件被自動作了備份(通過實驗測試,發現其實是10分鐘以後)。並且,在告警日誌中也只能看到數據庫結構發生變化的信息,而看不到控制文件自動備份的信息了,這是Oracle爲了改變性能而引入的,防止用戶在一個腳本中屢次對數據庫結構的變化而建立多個控制文件備份。例如CREATE TABLEPACEDROP LOGFILEADD LOGEILE等,那麼Oracle 11g只會備份一個控制文件,而不是多個;對於Oracle 10g只要數據庫結構改變,就會自動備份一個。MOS文檔[ID 1068182.1]對這個問題作了說明。在Oracle 11g中,備份控制文件的後臺進程爲MMON的奴隸進程,默認會生成一個trace文件,名稱爲SID__m000_<os_pid>.trc,該trace文件中記錄了控制文件自動備份的位置和時間:

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'

只要是對編號爲1的數據文件,即SYSTEM表空間的數據文件作備份時,RMAN也會自動對控制文件作備份。

快照控制文件。快照控制文件是由RMAN在系統指定位置生成的當前控制文件的一個副本。RMAN開始備份,Oracle檢查系統控制文件與快照控制文件是否一致(若是不存在,那麼會從控制文件提取信息建立),不一致則刷新快照控制文件。RMAN如下狀況須要快照控制文件:1.同步恢復目錄時2.對當前控制文件進行備份時。在RAC環境下,僅僅在實施RMAN備份的節點上須要快照控制文件。

查看快照控制文件的位置

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平臺爲:$ORACLE_HOME/dbs/snapcf_$ORACLE_SID.f

Windows平臺爲:%ORACLE_HOME%\database\snapcf_%$ORACLE_SID%.f

若是要查看備份的控制文件,那麼能夠經過:

RMAN> LIST BACKUP OF CONTROLFILE;





 


一.1.1  備份控制文件

 

 

控制文件在ORACLE中的重要性是毋庸置疑的,你看,連RMAN都給予特殊的照顧,在RMAN中備份控制文件的方式是最多的。

 

wps5393.tmp 

 

1.最簡單的方式,經過 CONFIGURE 命令將 CONTROLFILE AUTOBACKUP 置爲 ON

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/ctl_%f.bak';

而後你再經過rman作任何備份操做的同時,都會自動對控制文件作備份。當打開控制文件自動備份功能後,備份控制文件的時候就會自動備份spfile參數文件,備份參數文件的時候也會備份控制文件,這時spfile就會備份2次。

 

2.對編號爲1的數據文件,即SYSTEM表空間的數據文件作備份時,RMAN也會自動對控制文件作備份。

 

3.手動執行備份命令。

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';

 

4.執行BACKUP時指定INCLUDE CURRENT CONTROLFILE參數,例如:

RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

 

5.SQLPLUS下:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE  as '/home/bk/a.ctl';--獲得創建控制文件的腳本

SQL> alter database backup controlfile to '/tmp/control.ctl';--熱備份控制文件

 

6.快照控制文件

Linux/Unix平臺爲: $ORACLE_HOME/dbs/snapcf_@.f

Windows平臺爲: %ORACLE_HOME%\database\snapcf_@.f

 

若是要查看備份的控制文件,能夠經過:

RMAN> LIST BACKUP OF CONTROLFILE;

 

 

-----------------------------------控制文件

alter session set events 'immediate trace name CONTROLF level 12'; 

alter database  backup controlfile to trace as '/home/bk/a.ctl'; 

host strings /u01/app/oracle/oradata/orcl/control01.ctl > /u01/app/oracle/ctl.txt

 

熱備: 

alter database backup controlfile to '

'

;  --熱備份控制文件   alter database backup controlfile to '/home/oracle/ora_bk/control.bk';


alter database backup controlfile to trace as '

'

 ;--獲得創建控制文件的腳本


RMAN:

backup current controlfile format '/home/oracle/oracle_bk/orclasm/ctl_%d_%T_%s_%p.bak';

backup database include current controlfile;

 -- 或者設置RMAN 爲自動備份

   RMAN > configure controlfile autobackup on;

 

 

 

控制文件備份路徑參考以前的rman配置

 

 

【OCP真題1】 Which is not a valid way of backing up a control file?

A. Backing up the control file to trace

B. Copying the existing control file of the database to the backup location during a hot backup

C. Copying the existing control file of the database to the backup location during a cold backup

D. Creating a backup control file

E. Using the create controlfile command

Answer: B

 

一.1.1.1  在線鏡像備份

wps53A3.tmp 

 

一.1.1.2  自動備份

wps53A4.tmp 

1、 顯式自動備份

wps53B5.tmp 

wps53B6.tmp 

2、 隱式自動備份

wps53C6.tmp 

 

一.1.1.3  手動備份

wps53C7.tmp 

wps53D8.tmp 

 

1、 備份集備份

wps53D9.tmp 

 

wps53EA.tmp 

 

2、 鏡像複製備份

BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/home/oracle/ctl.bak';

wps53EB.tmp 

 

3、 重建腳本

wps53FB.tmp 

一.1.1.4  控制文件快照

wps53FC.tmp 

 

wps540D.tmp 

或採用rman恢復: restore controlfile from '/$ORACLE_HOME/dbs/snapcf_br.f';

 

 

據說過Oracle 控制文件,還有快照控制文件這個說法呢?沒錯,儘管快照控制文件不多被說起,但確實是存在,只不過在使用RMAN時這個快照控制文件被使用。回顧一下 Oracle 控制文件,咱們知道控制文件是Oracle體系結構中的重要組成部分之一,記錄了當前數據庫的結構信息,同時也包含數據文件及日誌文件的信息以及相關的狀態,歸檔信息,也記錄了系統當前SCN的值等等。那快照控制文件也就是控制文件的一個副本,本文介紹了什麼是快照控制文件以及什麼時候被使用。

1、快照控制文件

快照控制文件是由RMAN恢復管理器在系統指定位置生成的當前控制文件的一個副本

咱們知道控制文件在整個數據庫生命期中在不斷的時時刻刻發生變化,RMAN備份須要依賴於控制文件或恢復目錄,也就是說須要知道備份開始時的檢查點SCN以及全部文件結構信息而且在整個備份期間這些信息須要保持一致,但又不能鎖定控制文件(鎖定操做沒法執行檢查點,切換日誌等)。所以既要保持一致性,又不影響數據庫的正常操做。快照控制文件就應運而生了。RMAN只在備份或同步操做期間對實際控制文件進行一個短暫的鎖定,並根據其內容來生成或刷新快照控制文件。一旦該動做完成以後,RMAN將切換到使用快照控制文件進行備份及同步操做。從而保證備份期間控制文件,數據文件等等的一致性。

綜上所述,其主要做用是使用RMAN同步恢復目錄或備份時能獲得一個一致性的控制文件。

2、配置快照控制文件

a、快照控制文件位置

快照控制文件的位置取決於不一樣的系統平臺,若是啓用了快速閃回區,缺省狀況下,生成的快照控制文件並不位於閃回區

Linux/Unix平臺爲: $ORACLE_HOME/dbs/snapcf_@.f

Windows平臺爲: %ORACLE_HOME%\database\snapcf_@.f

b、查看快照控制文件位置

[oracle@linux1 dbs]$ export ORACLE_SID=usbo

[oracle@linux1 dbs]$ rman target /

--查看快照控制文件的位置

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_usbo.f'; # default

c、修改快照空文件位置

sys@USBO> show parameter db_recov

NAME TYPE VALUE

------------------------------------ --------------------------------- ------------------------------

db_recovery_file_dest string /u03/database/usbo/fr_area

db_recovery_file_dest_size big integer 3852M

sys@USBO> ho ls /u03/database/usbo/fr_area/USBO

archivelog

sys@USBO> ho mkdir -p /u03/database/usbo/fr_area/USBO/snap

--使用configure命令來配置快照控制文件的位置,以下,咱們修改到使用閃回區來存放

RMAN> configure snapshot controlfile name to '/u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f';

new RMAN configuration parameters:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f';

new RMAN configuration parameters are successfully stored

--查看修改以後快照控制文件的位置

RMAN> show snapshot controlfile name;

RMAN configuration parameters for database with db_unique_name USBO are:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f';

 

3、演示生成快照控制文件

--下面查看新的快照控制文件位置無任何文件  

sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap  

total 0  

  

--生成控制文件快照  

--在備份控制文件時會生成控制文件快照,以下  

RMAN> backup current controlfile;  

  

Starting backup at 2013/10/15 13:46:03  

allocated channel: ORA_DISK_1  

channel ORA_DISK_1: SID=143 device type=DISK  

channel ORA_DISK_1: starting full datafile backup set  

channel ORA_DISK_1: specifying datafile(s) in backup set  

including current control file in backup set  

channel ORA_DISK_1: starting piece 1 at 2013/10/15 13:46:05  

channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:46:07  

piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncnnf_TAG20131015T134604_95sonxsx_.bkp   

tag=TAG20131015T134604 comment=NONE  

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02  

Finished backup at 2013/10/15 13:46:07  

  

--咱們看以看到已經生成了一個控制文件快照時間爲13:46  

sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap  

total 9.4M  

-rw-r----- 1 oracle asmadmin 9.4M Oct 15 13:46 snapcf_usbo.f  

  

--下面咱們來備份系統表空間,注意,備份系統表空間時,或者數據庫發生結構性變化且開啓了控制文件自動備份  

--則在備份時即便不指定備份控制文件,控制文件仍然會被自動備份,以下  

RMAN> backup tablespace system tag=system_tbs_bak;  

  

Starting backup at 2013/10/15 13:51:30  

using channel ORA_DISK_1  

channel ORA_DISK_1: starting full datafile backup set  

channel ORA_DISK_1: specifying datafile(s) in backup set  

input datafile file number=00001 name=/u03/database/usbo/oradata/system01.dbf  

channel ORA_DISK_1: starting piece 1 at 2013/10/15 13:51:30  

channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:52:25  

piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_nnndf_SYSTEM_TBS_BAK_95soz2l6_.bkp   

tag=SYSTEM_TBS_BAK comment=NONE  

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55  

channel ORA_DISK_1: starting full datafile backup set  

channel ORA_DISK_1: specifying datafile(s) in backup set  

including current control file in backup set  

including current SPFILE in backup set  

channel ORA_DISK_1: starting piece 1 at 2013/10/15 13:52:29  

channel ORA_DISK_1: finished piece 1 at 2013/10/15 13:52:30  

piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_SYSTEM_TBS_BAK_95sp0x7s_.bkp   

tag=SYSTEM_TBS_BAK comment=NONE   --這個備份集就包含了控制文件與spfile文件的自動備份  

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01  

Finished backup at 2013/10/15 13:52:30  

  

--檢查快照控制文件是否被更新,此時文件的時間發生了變化爲13:52,以下  

sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap  

total 9.4M  

-rw-r----- 1 oracle asmadmin 9.4M Oct 15 13:52 snapcf_usbo.f  

  

--下面咱們來作一個全備,且在全備期間添加一個新的表空間以觀察快照控制文件  

RMAN> backup database tag=full_bak;  

  

Starting backup at 2013/10/15 14:02:01   --->全備啓動時間爲14:02:01  

using channel ORA_DISK_1  

channel ORA_DISK_1: starting full datafile backup set  

channel ORA_DISK_1: specifying datafile(s) in backup set  

input datafile file number=00001 name=/u03/database/usbo/oradata/system01.dbf  

input datafile file number=00002 name=/u03/database/usbo/oradata/sysaux01.dbf  

input datafile file number=00003 name=/u03/database/usbo/oradata/undotbs01.dbf  

input datafile file number=00004 name=/u03/database/usbo/oradata/users01.dbf  

channel ORA_DISK_1: starting piece 1 at 2013/10/15 14:02:01  

channel ORA_DISK_1: finished piece 1 at 2013/10/15 14:03:56  

piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_nnndf_FULL_BAK_95splt2p_.bkp tag=FULL_BAK comment=NONE  

channel ORA_DISK_1: backup set complete, elapsed time: 00:01:55  

channel ORA_DISK_1: starting full datafile backup set  

channel ORA_DISK_1: specifying datafile(s) in backup set  

including current control file in backup set  

including current SPFILE in backup set  

channel ORA_DISK_1: starting piece 1 at 2013/10/15 14:04:00  

channel ORA_DISK_1: finished piece 1 at 2013/10/15 14:04:02  

piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_FULL_BAK_95sppjj9_.bkp tag=FULL_BAK comment=NONE  

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02  

Finished backup at 2013/10/15 14:04:02  

  

--咱們開啓另一個session,此時時間爲14:02:08,咱們來添加一個表空間  

14:02:08 sys@USBO> create tablespace tbs_test datafile '/u03/database/usbo/oradata/tbs_test.dbf' size 5m;  

  

Tablespace created.  

  

14:02:54 sys@USBO>   

  

--Author : Leshami  

--Blog   : http://blog.csdn.net/leshami  

  

--查看控制文件中,新添加的表空間信息已經被追加到控制文件  

14:06:05 sys@USBO> ho strings /u03/database/usbo/oradata/control01.ctl | grep tbs_test  

/u03/database/usbo/oradata/tbs_test.dbf  

  

--同時新添加的表空間信息一樣被追到了快照控制文件  

14:07:19 sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f  

-rw-r----- 1 oracle asmadmin 9.4M Oct 15 14:04 /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f  

  

14:07:05 sys@USBO> ho strings /u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f | grep tbs_test  

/u03/database/usbo/oradata/tbs_test.dbf  

  

--對於備份期間控制文件的自動備份呢?  

--下面的檢查結果代表,自動備份的控制文件中也存在新表空間的信息  

14:10:49 sys@USBO> ho strings /u03/database/usbo/fr_area/USBO/backupset/2013_10_15/o1_mf_ncsnf_FULL_BAK_95sppjj9_.bkp | grep tbs_test  

/u03/database/usbo/oradata/tbs_test.dbf  

  

--查看數據字典信息,表空間已經被添加  

14:10:52 sys@USBO> select file#,name from v$datafile;  

  

     FILE# NAME  

---------- ------------------------------------------------------------  

         1 /u03/database/usbo/oradata/system01.dbf  

         2 /u03/database/usbo/oradata/sysaux01.dbf  

         3 /u03/database/usbo/oradata/undotbs01.dbf  

         4 /u03/database/usbo/oradata/users01.dbf  

         5 /u03/database/usbo/oradata/tbs_test.dbf  

     

--從上面的測試可知,  

--a、RMAN 開始備份,Oracle檢查控制文件與快照控制文件是否一致(若是不存在,從控制文件提取信息建立),不一致則刷新快照控制文件。  

--b、RMAN從快照控制文件讀取信息進行備份,此時快照控制文件並不包含新的表空間,所以備份集中沒有tbs_test.dbf  

--c、備份完成後進行了控制文件與spfile文件自動備份  

--d、刷新了快照控制文件  

--e、因此上面的檢測中控制文件,快照控制文件,備份的控制文件中都包含新表空間的信息。但卻沒有備份,由於表空間在備份開始後被添加。  

  

--刪除演示的表空間     

14:16:07 sys@USBO> drop tablespace tbs_test including contents and datafiles;  

  

Tablespace dropped.  

  

--將快照控制文件位置調整到缺省路徑  

RMAN> configure snapshot controlfile name clear;  

  

old RMAN configuration parameters:  

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u03/database/usbo/fr_area/USBO/snap/snapcf_usbo.f';  

RMAN configuration parameters are successfully reset to default value  

  

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_usbo.f'; # default 

 

 

The snapshot control file is a temporary snapshot control file that RMAN creates to re-synchronize from a read-consistent version of the control file. RMAN only needs a snapshot control file when re-synchronizing with the recovery catalog or when making a backup of the current control file. In Oracle RAC, the snapshot control file is only needed on the nodes on which RMAN performs backups; the snapshot control file does not need to be globally available to all instances in an Oracle RAC environment.

 

RMAN僅當如下狀況下須要快照控制文件:1.同步恢復目錄時2.對當前控制文件進行備份時。在RAC環境下,僅僅在實施RMAN備份的節點上須要快照控制文件;所以快照控制文件是不須要在全部實例上全局可用的。

 

 

You can specify a cluster file system file or a raw device destination for the location of your snapshot control file.

 

你一樣可使用共享文件系統或裸設備指定快照控制文件的位置。

 

Run the following RMAN command to determine the configured location of the snapshot control file:

 

SHOW SNAPSHOT CONTROLFILE NAME;

 

You can change the configured location of the snapshot control file. For example, on UNIX-based systems you can specify the snapshot control file location as $ORACLE_HOME/dbs/scf/snap_prod.cf by entering the following at the RMAN prompt:

 

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '$ORACLE_HOME/dbs/scf/snap_prod.cf';

 

This command globally sets the configuration for the location of the snapshot control file throughout your cluster database. Therefore, ensure that the directory $ORACLE_HOME/dbs/scf exists on all nodes that perform backups.

 

 

若是快照控制文件配置在共享存儲上時:

If one RMAN job is already backing up the control file while another needs to create a new snapshot control file, you may see the following message:

 

waiting for snapshot control file enqueue

 

Under normal circumstances, a job that must wait for the control file enqueue waits for a brief interval and then successfully retrieves the enqueue. Recovery Manager makes up to five attempts to get the enqueue and then fails the job. The conflict is usually caused when two jobs are both backing up the control file, and the job that first starts backing up the control file waits for service from the media manager.

 

這樣看來,每一個實例使用本身的快照控制文件能夠避免以上問題。

 

 

配置實例:

--顯示快照控制文件位置  

RMAN> show snapshot controlfile name; 

 

RMAN configuration parameters are: 

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_RACDB1.f'; # default 

 

--配置快照控制文件位置(使用ASM或共享文件系統或裸設備)  

RMAN> configure snapshot controlfile name to  

'+FRA/SNAP/snap_prod.cf';  

RMAN> configure snapshot controlfile name to  

'/ocfs/oradata/dbs/scf/snap_prod.cf';  

RMAN> configure snapshot controlfile name to '/dev/sdj2'; 

 

--配置快照控制文件爲默認默認值  

RMAN> configure snapshot controlfile name clear; 

 

RMAN configuration parameters are successfully reset to default value 





 


 11G新特性-控制文件延遲自動備份

 

10G中,ORACLE引入了控制文件的自動備份,若是數據庫的結構發生了變化,那麼ORACLE會自動將控制文件備份到指定目錄中。

前提是數據庫處於歸檔模式,而且CONTROLFILE AUTOBACKUP設置爲ON。

首先看一下10G的狀況:

 

SQL> select * from v$version;

 

BANNER

--------------------------------------------------------------------------------

 

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi

PL/SQL Release 10.2.0.5.0 - Production

CORE 10.2.0.5.0 Production

TNS for Linux: Version 10.2.0.5.0 - Production

NLSRTL Version 10.2.0.5.0 - Production

 

SQL> conn / as sysdba

Connected.

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 121

Next log sequence to archive 124

Current log sequence 124

 

[oracle@dbserver ~]$ rman target /

 

Recovery Manager: Release 10.2.0.5.0 - Production on Fri Sep 14 11:00:13 2012

 

Copyright (c) 1982, 2007, Oracle. All rights reserved.

 

connected to target database: REPORTDB (DBID=3119636991)

 

RMAN> show controlfile autobackup;

 

using target database control file instead of recovery catalog

RMAN configuration parameters are:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

 

RMAN>

這是一個10.2.0.5的數據庫,數據庫處於歸檔模式,而且controlfile autobackup設置爲ON。

SQL> create tablespace test datafile '/u01/app/oracle/oradata/reportdb/test01.dbf' size 2m;

 

Tablespace created.

 

SQL> alter database drop logfile group 5;

 

Database altered.

 

日誌文件中將會看到控制文件的自動備份狀況。

 

Fri Sep 14 10:32:12 CST 2012

 create tablespace test datafile '/u01/app/oracle/oradata/reportdb/test01.dbf' size 2m

Fri Sep 14 10:32:13 CST 2012

Starting control autobackup

Control autobackup written to DISK device

        handle '/u01/app/oracle/flash_recovery_area/REPORTDB/autobackup/2012_09_14/o1_mf_s_793967533_8555sgkh_.bkp'

Completed: create tablespace test datafile '/u01/app/oracle/oradata/reportdb/test01.dbf' size 2m

Fri Sep 14 10:32:33 CST 2012

 alter database drop logfile group 5

Fri Sep 14 10:32:33 CST 2012

Starting control autobackup

Control autobackup written to DISK device

        handle '/u01/app/oracle/flash_recovery_area/REPORTDB/autobackup/2012_09_14/o1_mf_s_793967553_8555t1q6_.bkp'

Completed: alter database drop logfile group 5

ls -ltr 也能夠看出文件的建立時間能夠看出備份文件被立馬建立。

 

[oracle@dbserver REPORTDB]$ ls -ltr /u01/app/oracle/flash_recovery_area/REPORTDB/autobackup/2012_09_14/

total 36380

-rw-r----- 1 oracle oinstall 7438336 Sep 14 10:32 o1_mf_s_793967533_8555sgkh_.bkp

-rw-r----- 1 oracle oinstall 7438336 Sep 14 10:32 o1_mf_s_793967553_8555t1q6_.bkp

 

 

 

ORACLE DATABASE 11GR2開始,引入了控制文件自動備份延遲建立的特性。

即便你設置了控制文件的自動備份,在數據庫結構發現變化的時候不會當即看到控制文件的備份,而是過一段時間纔會看到。這是ORACLE爲了改變性能而引入的,防止你在一個腳本中屢次對數據庫結構的變化而建立多個控制文件備份。譬如CREATE TABLEPACE,DROP LOGFILE,ADD LOGEILE等,11G只會備份一個控制文件,而不是多個。

對於10G只要對數據庫結構改變,就會自動備份一個。

上面的例子我建立了一個表空間,刪除了一個日誌文件組,後臺自動生成了2個控制文件備份。

下面看一下11G的狀況:

 

[oracle@db2server ~]$ rman target /

 

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Sep 11 22:35:09 2012

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

 

connected to target database: HUATENG (DBID=2134565240)

 

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/archivelog/autobackup/%F';

 

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/archivelog/autobackup/%F';

new RMAN configuration parameters are successfully stored

 

RMAN> SHOW CONTROLFILE AUTOBACKUP ;

 

RMAN configuration parameters for database with db_unique_name HUATENG are:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

 

RMAN> 

 

 

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /archivelog

Oldest online log sequence 7

Next log sequence to archive 9

Current log sequence 9

 

SQL> create tablespace test datafile '/u01/app/oracle/oradata/huateng/test01.dbf' size 2m;

 

Tablespace created.

 

 

Incremental checkpoint up to RBA [0x9.346f.0], current log tail at RBA [0x9.346f.0]

Tue Sep 11 22:38:02 2012

create tablespace test datafile '/u01/app/oracle/oradata/huateng/test01.dbf' size 2m

Completed: create tablespace test datafile '/u01/app/oracle/oradata/huateng/test01.dbf' size 2m

Tue Sep 11 22:38:20 2012

Incremental checkpoint up to RBA [0x9.346f.0], current log tail at RBA [0x9.3501.0]

 

 

日誌文件中僅僅顯示了表空間建立成功的信息,並無控制文件的自動備份信息。

並且備份目錄下也沒有發現任何的控制文件備份文件。

[oracle@db2server autobackup]$ pwd

/archivelog/autobackup

[oracle@db2server autobackup]$ ls -ltr

total 0

[oracle@db2server autobackup]$

 

MOS [ID 1068182.1]對這個問題進行了以下闡述:

In this release, the controlfile autobackups are created by MMON slaves after few minutes of the structural changes, which increases performance.So, It's  the expected behaviour to get the controlfile autobackup several minutes after the structural change on the database and it's also expected that no message about controlfile autobackup creation will appear in the alert.log. 

There will be generated one MMON slave trace file with the controlfile creation information, that will be a file named:    SID__m000_<os_pid>.trc

 

 

在通過6分鐘後,終於看到備份文件了:

[oracle@db2server autobackup]$ ls -ltr

total 9616

-rw-r----- 1 oracle oinstall 9830400 Sep 11 22:44 c-2134565240-20120911-00

oracle後臺進程m000的TRACE文件中記錄這次備份信息,ALERT文件中再也不記錄了。

 

 

[oracle@db2server trace]$ more huateng_m000_8971.trc

Trace file /u01/app/oracle/diag/rdbms/huateng/huateng/trace/huateng_m000_8971.trc

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /u01/app/oracle/product/db11gr2

System name: Linux

Node name: db2server

Release: 2.6.18-92.el5

Version: #1 SMP Tue Jun 10 18:49:47 EDT 2008

Machine: i686

Instance name: huateng

Redo thread mounted by this instance: 1

Oracle process number: 30

Unix process pid: 8971, image: oracle@db2server (M000)

 

 

*** 2012-09-11 22:44:03.648

*** SESSION ID:(50.5) 2012-09-11 22:44:03.648

*** CLIENT ID:() 2012-09-11 22:44:03.648

*** SERVICE NAME:(SYS$BACKGROUND) 2012-09-11 22:44:03.648

*** MODULE NAME:(MMON_SLAVE) 2012-09-11 22:44:03.648

*** ACTION NAME:(Autobackup Control File) 2012-09-11 22:44:03.648

 

Starting control autobackup

 

*** 2012-09-11 22:44:06.515

Control autobackup written to DISK device

        handle '/archivelog/autobackup/c-2134565240-20120911-00'

 

ORACLE經過隱含參數 _controlfile_autobackup_delay來控制這種行爲,默認是300秒。

set line 9999

col NAME format a30

col KSPPDESC format a50

col KSPPSTVL format a20

SELECT a.INDX,

       a.KSPPINM NAME,

       a.KSPPDESC,

       b.KSPPSTVL

FROM   x$ksppi  a,

       x$ksppcv b

WHERE  a.INDX = b.INDX

  8  and lower(a.KSPPINM) like  lower('%?meter%');

Enter value for parameter: controlfile_autobackup

old   8: and lower(a.KSPPINM) like  lower('%?meter%')

new   8: and lower(a.KSPPINM) like  lower('%controlfile_autobackup%')

 

      INDX NAME   KSPPDESC     KSPPSTVL

---------- ------------------------------ -------------------------------------------------- --------------------

      1226 _controlfile_autobackup_delay  time delay (in seconds) for performing controlfile 300

   autobackups

 

 





About Me

.............................................................................................................................................

● 本文做者:小麥苗,部份內容整理自網絡,如有侵權請聯繫小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客園(http://www.cnblogs.com/lhrbest)和我的微信公衆號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、我的簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 數據庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ羣號:230161599(滿)、618766405

● 微信羣:可加我微信,我拉你們進羣,非誠勿擾

● 聯繫我請加QQ好友646634621,註明添加原因

● 於 2018-03-01 06:00 ~ 2018-03-31 24:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網絡,如有侵權或不當之處還請諒解

● 版權全部,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的數據庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

好消息:小麥苗OCP、OCM開班啦,詳情請點擊http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公衆號(xiaomaimiaolhr)及QQ羣(DBA寶典),學習最實用的數據庫技術。

小麥苗的微信公衆號小麥苗的DBA寶典QQ羣2《DBA筆試面寶典》讀者羣小麥苗的微店

   小麥苗的微信公衆號      小麥苗的DBA寶典QQ羣2     《DBA筆試面試寶典》讀者羣       小麥苗的微店

.............................................................................................................................................


DBA筆試面試講解羣
《DBA寶典》讀者羣 歡迎與我聯繫
相關文章
相關標籤/搜索