rman的全備份指令碼和控制檔案安全策略

dotaddjj發表於2011-09-01

nocatalog模式下的備份,所有的備份資訊都儲存在控制檔案中,所以資料庫的一個完整備份集應該包括資料檔案,控制檔案,初始化引數檔案還有所有的歸檔日誌。

Oracle 10G環境rman全備份指令碼:

rman>run{

allocate channedl d1 device type disk;

backup full tag ‘orcl’ database include current controlfile plus archivelog delete all input:

}

在資料庫全備份完成之後,需要執行alter system archive log current命令將當前日誌歸檔,備份歸檔日誌應該包括最後生成的歸檔日誌。
...

RMAN> backup full tag 'orcl' database include current controlfile plus archivelog delete all input;

Starting backup at 01-9 -11

current log archived ———歸檔當前日誌,此時switch logfile,發生檢查點,減少恢復時間

using channel ORA_DISK_1

channel ORA_DISK_1: starting archive log backupset

channel ORA_DISK_1: specifying archive log(s) in backup set

input archive log thread=1 sequence=18 recid=48 stamp=760723817

input archive log thread=1 sequence=19 recid=49 stamp=760723833

input archive log thread=1 sequence=20 recid=50 stamp=760724658

channel ORA_DISK_1: starting piece 1 at 01-9 -11

channel ORA_DISK_1: finished piece 1 at 01-9 -11

piece handle=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_09_01O1_MF_ANNNN_ORCL_75YJ9NN8_.BKP comment=NONE —歸檔日誌備份集

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

channel ORA_DISK_1: deleting archive log(s) —刪除已經備份的archivelog

archive log filename=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLARCHIVELO

G2011_09_01O1_MF_1_18_75YHH8W9_.ARC recid=48 stamp=760723817

archive log filename=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLARCHIVELO

G2011_09_01O1_MF_1_19_75YHHS4B_.ARC recid=49 stamp=760723833

archive log filename=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLARCHIVELO

G2011_09_01O1_MF_1_20_75YJ9LLX_.ARC recid=50 stamp=760724658

Finished backup at 01-9 -11

Starting backup at 01-9 -11

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backupset ——資料庫全備份發生

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF

input datafile fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF

input datafile fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLMSSM01.DBF

input datafile fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DB

F

input datafile fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF

channel ORA_DISK_1: starting piece 1 at 01-9 -11

channel ORA_DISK_1: finished piece 1 at 01-9 -11

piece handle=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_09_01O1_MF_NNNDF_ORCL_75YJ9Q3S_.BKP comment=NONE——資料檔案的備份集

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

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

including current controlfile in backupset —控制檔案的備份

channel ORA_DISK_1: starting piece 1 at 01-9 -11

channel ORA_DISK_1: finished piece 1 at 01-9 -11

piece handle=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_09 _01O1_MF_NCNNF_ORCL_75YJDQCW_.BKP comment=NONE —控制檔案的備份集

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

Finished backup at 01-9 -11

Starting backup at 01-9 -11

current log archived ——再次歸檔當前日誌

using channel ORA_DISK_1

channel ORA_DISK_1: starting archive log backupset

channel ORA_DISK_1: specifying archive log(s) in backup set

input archive log thread=1 sequence=21 recid=51 stamp=760724762

channel ORA_DISK_1: starting piece 1 at 01-9 -11

channel ORA_DISK_1: finished piece 1 at 01-9 -11

piece handle=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_09_01O1_MF_ANNNN_ORCL_75YJDWHV_.BKP comment=NONE ——備份rman備份期間產生的歸檔日誌,此時資料庫還在open會產生redo log

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

channel ORA_DISK_1: deleting archive log(s)

archive log filename=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLARCHIVELO

G2011_09_01O1_MF_1_21_75YJDTQ9_.ARC recid=51 stamp=760724762

Finished backup at 01-9 -11

Starting Control File and SPFILE Autobackup at 01-9 -11——控制檔案自動備份

piece handle=D:ORACLEPRODUCT10.1.0FLASH_RECOVERY_AREAORCLCONTROLC-1288250

893-20110901-03 comment=NONE

Finished Control File and SPFILE Autobackup at 01-9 -11

上述的rman備份指令碼的:首先是歸檔當前redo log,備份archivelog,然後刪除掉已經備份archivelog;然後執行backup database include current controlfile備份資料檔案,最後由於此備份期間還有redo log線上,再次歸檔當前日誌然後備份刪除最後備份archivelog

由於啟用了控制檔案的自動備份將進行控制檔案的自動備份。

如果在oracle9I環境下,其中的控制檔案和引數檔案備份包含在全備份集中,那樣從中恢復控制檔案比較複雜,oracle10G就把其中include current controlfile分離出來(應該是從9I全備份中提取ctl時間上的影響)。

nocatalog模式下由於所有的備份資訊都儲存在控制檔案中,控制檔案的安全就非常重要。

在資料庫配置中,應該在不同磁碟上儲存多份控制檔案,在spfilecontrol_file的引數要對控制檔案。

啟用控制檔案的自動備份,表空間發生變化,備份等都會觸發控制檔案的自動備份。

Rman進行控制檔案備份或同步時,會執行控制檔案快照的備份。

全備份或其他備份時include corrent controlfile也會發生控制檔案的備份。

Rman還可以單獨備份當前ctl

Rman>backup current controlfile format ‘d:ctlcontrol%s.ctl’

單獨備份控制檔案

Rman>backup as copy current controlfile format ‘d:ctlcontrol01.ctl’

對控制檔案進行複製備份,rman備份的控制檔案需要進行恢復才可以啟動資料庫,而複製備份的控制檔案是ctl的副本,可以直接啟動資料庫

Rman>backup datafile 1

備份system表空間的資料檔案在控制檔案自動備份沒有開啟前也會備份ctl檔案,如果configure controlfile autobackup on 控制檔案自動備份開啟,不會備份ctl檔案因為有控制檔案會自動備份。

囉嗦了半天主要是一個rman全備份的過程,還有控制檔案幾種安全措施。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1054671/,如需轉載,請註明出處,否則將追究法律責任。

相關文章