Oracle快照控制檔案(snapshot control file)
from :
Oracle快照控制檔案(snapshot control file)
Oracle快照控制檔案(snapshot control file)
聽說過Oracle 控制檔案,還有快照控制檔案這個說法呢?沒錯,儘管快照控制檔案很少被提及,但確實是存在,只不過在使用RMAN時這個快照控制檔案被使用。回顧一下 Oracle 控制檔案,我們知道控制檔案是Oracle體系結構中的重要組成部分之一,記錄了當前的結構資訊,同時也包含資料檔案及日誌檔案的資訊以及相關的狀態,歸檔資訊,也記錄了系統當前SCN的值等等。那快照控制檔案也就是控制檔案的一個副本,本文介紹了什麼是快照控制檔案以及何時被使用。
1、快照控制檔案
快照控制檔案是由RMAN恢復管理器在系統指定位置生成的當前控制檔案的一個副本
我們知道控制檔案在整個資料庫生命期中在不斷的時時刻刻發生變化,RMAN備份需要依賴於控制檔案或恢復目錄,也就是說需要知道備份開
始時的檢查點SCN以及所有檔案結構資訊並且在整個備份期間這些資訊需要保持一致,但又不能鎖定控制檔案(鎖定操作無法執行檢查點,切
換日誌等)。因此既要保持一致性,又不影響資料庫的正常操作。快照控制檔案就應運而生了。RMAN只在備份或同步操作期間對實際控制文
件進行一個短暫的鎖定,並根據其內容來生成或重新整理快照控制檔案。一旦該動作完成之後,RMAN將切換到使用快照控制檔案進行備份及同步
操作。從而保證備份期間控制檔案,資料檔案等等的一致性。
綜上所述,其主要作用是使用RMAN同步恢復目錄或備份時能得到一個一致性的控制檔案。
2、配置快照控制檔案
[sql]
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、演示生成快照控制檔案
[sql]
--下面檢視新的快照控制檔案位置無任何檔案
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 開始備份,檢查控制檔案與快照控制檔案是否一致(如果不存在,從控制檔案提取資訊建立),不一致則重新整理快照控制檔案。
--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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66634/viewspace-1246493/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 快照控制檔案(snapshot control file)Oracle
- 透過Snapshot Control File 恢復控制檔案
- 通過Snapshot Control File 恢復控制檔案
- 控制檔案-control file
- control file(控制檔案)
- Oracle Control File(控制檔案)的內容Oracle
- 重建控制檔案 recreate control file
- oracle檔案管理之 control fileOracle
- ORACLE 控制檔案(Control Files)概述Oracle
- 控制檔案快照和rman利用快照恢復
- Oracle 11gR2 RMAN 配置控制檔案自動備份(control file autobackup)Oracle
- 控制檔案相關 -- MAXLOGHISTORY ,control_file_record_keep_time
- 26、控制檔案相關 -- MAXLOGHISTORY ,control_file_record_keep_time
- 【Control File】Oracle個別控制檔案丟失故障場景模擬及處理方法Oracle
- RAC環境中的快照控制檔案
- ORA-19606: Cannot copy or restore to snapshot control fileREST
- 難得的waiting for snapshot control file enqueue提示...AIENQ
- 循序漸進oracle第7章:備份與恢復之利用控制檔案快照恢復控制檔案Oracle
- 控制檔案恢復—從快照中恢復
- 自動生成sqlldr 控制檔案的指令碼(Script To Generate SQL*Loader Control File)SQL指令碼
- Oracle 18C新特性之PDB snapshot(快照) CarouselOracle
- snapshot standby快照備庫角色
- LVM快照Snapshot備份LVM
- 轉:Intellij idea Version Control File Status Colors ( 版本控制檔案狀態顏色 )IntelliJIdea
- Oracle 控制檔案Oracle
- oracle重建control file的操作Oracle
- Oracle重建控制檔案Oracle
- ORACLE 新增控制檔案Oracle
- ORACLE控制檔案管理Oracle
- oracle 重建控制檔案Oracle
- 建立控制檔案副本出現錯誤ORA-00205: error in identifying control fileErrorIDE
- 【翻譯】控制檔案管理(Managing Control Files)
- Oracle 控制檔案的重建Oracle
- Oracle控制檔案基礎Oracle
- oracle 關於--控制檔案Oracle
- 增加oracle的控制檔案Oracle
- oracle sqlldr控制檔案模板OracleSQL
- Oracle 控制檔案內容Oracle