【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?
【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?
真題1、 如何備份控制檔案?備份控制檔案的方式有哪幾種?
答案:備份控制檔案的方式有多種。
① 備份控制檔案可以線上進行:
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手動備份控制檔案:
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;
③ 設定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 TABLEPACE、DROP LOGFILE、ADD 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中備份控制檔案的方式是最多的。
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 '<dir>'; --熱備份控制檔案 alter database backup controlfile to '/home/oracle/ora_bk/control.bk';
alter database backup controlfile to trace as '<dir>' ;--得到建立控制檔案的指令碼
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 線上映象備份
一.1.1.2 自動備份
一、 顯式自動備份 二、 隱式自動備份
一.1.1.3 手動備份
一、 備份集備份
二、 映象複製備份
BACKUP AS COPY CURRENT CONTROLFILE FORMAT '/home/oracle/ctl.bak';
三、 重建指令碼
一.1.1.4 控制檔案快照
或採用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寶典今日頭條號地址:
.............................................................................................................................................
● QQ群號:230161599(滿)、618766405
● 微信群:可加我微信,我拉大家進群,非誠勿擾
● 聯絡我請加QQ好友(646634621),註明新增緣由
● 於 2018-03-01 06:00 ~ 2018-03-31 24:00 在魔都完成
● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
.............................................................................................................................................
● 小麥苗的微店:
● 小麥苗出版的資料庫類叢書:http://blog.itpub.net/26736162/viewspace-2142121/
● 好訊息:小麥苗OCP、OCM開班啦,詳情請點選:http://blog.itpub.net/26736162/viewspace-2148098/
.............................................................................................................................................
使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。
小麥苗的微信公眾號 小麥苗的DBA寶典QQ群2 《DBA筆試面試寶典》讀者群 小麥苗的微店
.............................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2152115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【備份】RMAN中對控制檔案的幾種備份方法
- 備份之控制檔案備份
- RMAN說,我能備份(4)--RMAN備份資料檔案和控制檔案
- 備份控制檔案
- Oracle RMAN 備份控制檔案報錯問題Oracle
- 如何刪除控制檔案中過去rman備份到磁帶的歸檔備份集
- rman備份-(1) 利用備份級恢復資料檔案和控制檔案
- RMAN備份資料檔案+控制檔案+歸檔日誌
- rman備份丟失控制檔案恢復
- 【備份恢復】利用 備份控制檔案到指定目錄下的控制檔案 恢復控制檔案
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- Backup And Recovery User's Guide-使用RMAN備份控制檔案-對控制檔案進行手工備份GUIIDE
- Oracle 11g 備份控制檔案Oracle
- 控制檔案重建以及備份
- 使用舊的控制檔案備份來恢復控制檔案
- oracle10g_備份控制檔案_得到重建控制檔案的指令碼Oracle指令碼
- [Rman]Oracle 11g控制檔案延遲自動備份Oracle
- nid 對RMAN備份的影響--- 控制檔案中備份記錄全部丟失
- 恢復之丟失全部控制檔案以及備份中的控制檔案
- 【備份恢復】所有控制檔案丟失後 利用trace中的控制檔案備份執行恢復
- RMAN基於備份控制檔案恢復失敗
- 10g R2 rman backup database 控制檔案備份後於備份集備份Database
- 利用備份的控制檔案恢復
- 控制檔案的備份和恢復
- rman恢復資料庫--用備份的控制檔案資料庫
- 只有rman備份集,控制檔案丟失的恢復
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- RMAN說,我能備份(5)--RMAN備份歸檔檔案
- RMAN備份檔案格式
- 備份與恢復--利用備份的控制檔案恢復
- rman備份檔案的格式
- ORACLE_備份恢復_RMAN相關內容(控制檔案在閃回區中的自動備份)Oracle
- rman全庫備份備份歸檔日誌檔案
- 【實驗】從RMAN備份中恢復controlfile控制檔案
- 【備份恢復】 控制檔案多路徑
- 備份與恢復--重建控制檔案