第六章:RMAN概述
創(chuàng)新互聯(lián)公司服務(wù)項目包括內(nèi)丘網(wǎng)站建設(shè)、內(nèi)丘網(wǎng)站制作、內(nèi)丘網(wǎng)頁制作以及內(nèi)丘網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,內(nèi)丘網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到內(nèi)丘省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
2)建立備份和恢復(fù)的server process,在oracle server上做備份和恢復(fù)
3)rman 備份datafile(分三個層次:database、tablespace、datafile)、controlfile、spfile、archivelog
4)在歸檔模式下支持一致性備份(冷備)和非一致性備份(熱備)
5)非歸檔只支持一致性備份(mount冷備)
*考點:
1)非歸檔方式的RMAN只能冷備,并在mount下做,但手工備份在mount下cp出來的備份對于RMAN是不可用的。
2)非歸檔方式的RMAN恢復(fù)只能還原最后一次備份。
1)不備份數(shù)據(jù)文件中從未使用的塊(備份高水位線以下的block),節(jié)省時間空間(考點)
6)可以備份ASM文件
target database(備份的目標(biāo)庫) ,
auxiliary database(輔助庫)
catalog database(目錄數(shù)據(jù)庫)。
6.4 rman 連接目標(biāo)庫方法
1)本地連接
RMAN工具和target database在同一臺服務(wù)器
rman target /
2)遠程連接
RMAN客戶端通過ORACLE_NET連接target database 在target database 啟動監(jiān)聽,在client配置tnsnames.ora。
6.5、查看rman的默認(rèn)配置,修改rman的配置信息
1)查看rman的默認(rèn)配置
RMAN> show all;
2)理解以上各行RMAN環(huán)境變量
第一行:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
有兩種保留策略:兩者只能選一,互斥。(見PPT-II-47)
一個是時間策略,指定一個時間窗口,必須能恢復(fù)此時間段內(nèi)任一個時刻的數(shù)據(jù)?,F(xiàn)在時間 — 全備份點 >= 時間窗口。
一個冗余策略,規(guī)定至少有幾個冗余的備份。
恢復(fù)窗口備份保存策略:
例如,假如我們指定恢復(fù)窗口是 7 天,假設(shè)今天是星期一,此前存在 3 個全備及歸檔日志。第一個全備是5天前生成的,第二個全備是十天前生成的,而最早一個全備是15天前備份的,
那么十天前生成的備份及之后的歸檔日志必須保留,而15天前的那個備份會成為廢棄備份(obsolete)(見PPT-48)。
下面的命令將恢復(fù)窗口配置為7 天:
RMAN> configure retention policy to recovery window of 7 days;
冗余備份保存策略:
使用這種保存策略,RMAN 會從最新備份開始保留 N 個數(shù)據(jù)備份,其余的廢棄(obsolete)。
例如,如果有三個備份,而冗余數(shù)是 2,那么最早的那個備份將被廢棄。下面的命令將備份策略設(shè)置為 2:
RMAN> configure retention policy to redundancy 2;
設(shè)置NONE 可以把使備份保持策略失效,Clear 將恢復(fù)默認(rèn)的保持策略
RMAN> configure retention policy to none; //RMAN此后不會將任何備份集或映像文件標(biāo)記為obsolete狀態(tài)。
RMAN> configure retention policy clear;
例:保證至少有一個備份能恢復(fù)到 Sysdate-5 的時間點上,之前的備份將標(biāo)記為Obsolete(廢棄)
RMAN> configure retention policy to recovery window of 5 days;
至少需要有三個冗余的備份存在,如果多余三個備份以上的備份將標(biāo)記為冗余
RMAN> configure retention policy to redundancy 3;
第二行:CONFIGURE BACKUP OPTIMIZATION OFF; # default
設(shè)置備份優(yōu)化選項 ( optimization ) 可以在配置中設(shè)置備份的優(yōu)化,如:
RMAN> configure backup optimization on;
如果優(yōu)化設(shè)置打開, 它只用于歸檔日志,只讀或脫機表空間的數(shù)據(jù)文件,因為這些文件是不會變化的,備份集運行一個優(yōu)化算法。跳過重復(fù)的備份文件,比如你要備份歸檔日志,此參數(shù)設(shè)
為on可以避免重復(fù)備份,可大大節(jié)省空間和時間。 (PPT103)
考點:備份優(yōu)化選項依賴于RETENTION POLICY策略,如果啟用優(yōu)化,在已有足夠相同文件副本的情況下(r+1),RMAN將不創(chuàng)建額外的文件副本。
第三行:CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
設(shè)備類型有兩種,可以是磁盤(DISK),或者磁帶(STB),默認(rèn)為磁盤。
第四行:CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
設(shè)置控制文件自動備份 (autobackup on)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
off: 默認(rèn)情況下,在備份system 表空間時,會備份控制文件和spfile
on: 在做任何文件的備份時,會自動備份控制文件和spfile,并且數(shù)據(jù)庫的物理結(jié)構(gòu)發(fā)生變化時,也自動備份controlfile。
第五行:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
可以用如下的配置指定控制文件的備份路徑與格式,format 指明備份文件的路徑和文件名
RMAN備份文件格式 備份文件可以自定義各種各樣的格式,如下:
%c 備份片的拷貝數(shù)
%D 位于該月中的第幾天 (DD)
%M 位于該年中的第幾月 (MM)
%F 一個基于DBID 唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該數(shù)據(jù)庫的DBID,YYYYMMDD 為日期,QQ 是一個1-256 的序列
%d 數(shù)據(jù)庫名稱
%n 數(shù)據(jù)庫名稱,向右填補到最大八個字符
%u 一個八個字符的名稱代表備份集與創(chuàng)建時間
%p 該備份集中的備份片號,從1 開始到創(chuàng)建的文件數(shù)
%U 一個唯一的文件名,代表%u_%p_%c
%s 備份集的號
%t 備份集時間戳
%T 年月日格式(YYYYMMDD)
第六行:CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
指定在以后的備份與恢復(fù)操作中并行度為2,即同時開啟2個通道進行備份與恢復(fù)
并行的數(shù)目決定了開啟通道的個數(shù),當(dāng)然也可以在RUN{}中指定通道來決定備份與恢復(fù)的并行程度。如果在RUN{}中指定了通道配置,將覆蓋掉配置參數(shù)中指定的默認(rèn)并行度
(考點)通常一個通道對應(yīng)一個備份集。
提高RMAN性能和吞吐量,除了通道數(shù),還可以通過一些參數(shù)控制輸入數(shù)據(jù)文件數(shù),備份集數(shù),備份片數(shù)。
參數(shù)影響可有全局和局部兩個層次,基本上分為:
PARALLELISM: 保存在RMAN存儲庫。
CONFIGURE CHANNEL: 更新配置,保存在RMAN存儲庫。
ALLOCATE CHANNEL: 限于run{},不保存。
BACKUP: 限于本次backup語句,不保存。
相關(guān)參數(shù)
FILESPERSET: 每個備份集的最大輸入文件數(shù)
在BACKUP語句中描述
MAXOPENFILES: 在給定時間內(nèi)可以打開的最大輸入文件數(shù)量
在ALLOCATE CHANNEL或CONFIGURE CHANNEL中描述
MAXPIECESIZE: 每個通道的備份片大小 在ALLOCATE CHANNEL或CONFIGURE CHANNEL中描述
MAXSETSIZE: 限制最大備份集大小
在BACKUP語句中描述或配合參數(shù)中描述
BACKUP DURATION: 增加或減少完成備份的時間
在BACKUP語句中描述
1)在RUN{}里分配通道,可以指定備份的數(shù)據(jù)文件和通道對應(yīng)關(guān)系。
例1:
RMAN> RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
BACKUP
INCREMENTAL LEVEL = 0
FORMAT '/data/df_%d_%s_%p.bak'
(DATAFILE 1,4,5 CHANNEL c1)
(DATAFILE 2,3 CHANNEL c2)
(DATAFILE 6,7 CHANNEL c3);
}
2)使用FILESPERSET參數(shù)限制備份集中的輸入文件數(shù), 指定每個備份集中一次可以包含輸入文件最大數(shù),該參數(shù)默認(rèn)值為64。例2中約定每個備份集中備份8個文件。
如果數(shù)據(jù)庫有20個文件,那將只生成3個備份集,得到3個備份片,雖然開了4個通道,但并行度是3,有1個通道閑置。
例2:
RMAN> RUN{
2> ALLOCATE CHANNEL t1 DEVICE TYPE sbt;
3> ALLOCATE CHANNEL t2 DEVICE TYPE sbt;
4> ALLOCATE CHANNEL t3 DEVICE TYPE sbt;
5> ALLOCATE CHANNEL t4 DEVICE TYPE sbt;
6> BACKUP DATABASE FILESPERSET 8;
}
例2中假如取消ALLOCATE CHANNEL語句,則通道數(shù)按全局變量PARALLELISM指定,假定為1,有20個文件,F(xiàn)ILESPERSET=8該是怎樣的結(jié)果:一個通道干活,8個文件組成一個備份集,
每備份集對一個備份片,完成一個備份集再接下一個備份集。串行的跑三趟。
3)使用MAXPIECESIZE參數(shù)限制備份片大小
例3:
RMAN> report schema;
RMAN>RUN{
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 300M;
BACKUP datafile 2 format '/u01/app/oracle/oradata/hyyk/%U.bak';
}
RMAN> show all
RMAN> list backup;
限定了最大備份片為300M,如果輸出文件是500M(注意不是限制輸入文件),則會在一個備份集中生成兩個備份片。
如果將300換成600
RMAN>RUN{
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 600M;
BACKUP datafile 2 format '/u01/app/oracle/oradata/hyyk/%U.bak';
}
只能產(chǎn)生一個備份片
如果將
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 300M;
換成
ALLOCATE CHANNEL c1 DEVICE TYPE DISK MAXPIECESIZE 300M;
就是全部和局部的區(qū)別
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK clear; //刪除此變量
4)使用maxsetsize參數(shù)限制備份集大小:
例4:
RMAN> backup database maxsetsize 500m format '/u01/app/oracle/oradata/hyyk/%U.bak';
結(jié)果如何,一個通道產(chǎn)生了多個備份集,每個備份集對一個備份片。
注意:作為基本原則,一個備份集只能占一個通道,一個輸入數(shù)據(jù)文件不能分成多個備份集,所以這里必須滿足:最大輸入文件size<500M.
5)使用SECTION SIZE子句設(shè)置多段備份(multisection backup)
通常一個數(shù)據(jù)文件只能占用一個通道,如果某個datafile太大,為提高備份效率,可以考慮采用多道關(guān)鍵字SECTION SIZE,并行化這個大文件的備份。例5中的數(shù)據(jù)文件約500M,
被分成若干file section來備份, 它啟動了三個通道,每個通道備份300M的file section,但三個通道產(chǎn)生一個備份集,包含兩個壓縮后的備份片。
例5:
RMAN> RUN{
ALLOCATE CHANNEL d1 DEVICE TYPE disk;
ALLOCATE CHANNEL d2 DEVICE TYPE disk;
ALLOCATE CHANNEL d3 DEVICE TYPE disk;
BACKUP AS COMPRESSED BACKUPSET DATAFILE 2 SECTION SIZE 300M format '/u01/app/oracle/oradata/hyyk/%U.bak';
}
注意: SECTION SIZE隱含限定maxpiecesize,當(dāng)maxpiecesize全局生效時不能使用SECTION SIZE。(考點)
所以,要使用SECTION SIZE,maxpiecesize只能在allocate channel中說明。(局部參數(shù)可以覆蓋全局參數(shù))
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK clear;
第七行:CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
備份集也可以有多路復(fù)用(但映像文件不可以),最大值4,如為2就備份相同的2份(PPT-II-101),注意:TO STB和TO DISK是獨立的(PPT-II-102),也就是說不能同時以DISK和TAPE多路復(fù)用(考點)。那么再問一句, 如果一定要duplex磁盤和磁帶, 請使用backup backupset.單獨使用RMAN命令可以覆蓋這個參數(shù)
RMAN> backup copies 2 datafile 4 format '/u01/app/oracle/oradata/hyyk/%s_dbf','/u01/app/oracle/oradata/test/%s_dbf';
RMAN> list backup;
第八行:CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
歸檔日志的多路復(fù)用,類似數(shù)據(jù)文件多路復(fù)用
第九行:CONFIGURE MAXSETSIZE TO UNLIMITED; # default
該配置限制通道上備份集的最大尺寸,單位支持 Bytes 、KB、MB、GB,默認(rèn)值是unlimited,(前面提到過)
第十行: CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
第十一行:CONFIGURE ENCRYPTION ALGORITHM ','; # default
加密,Transparent encryption 透明的加密,帶錢夾,
Password encryption:不帶錢夾,(PPT-II-107)
第十二行:CONFIGURE COMPRESSION ALGORITHM 'BZIP2'; # default
RMAN里的壓縮也叫binary compression,這是11g新增的參數(shù) (PPT-II-104-106), 壓縮只能是針對backup set,有兩種算法:'BZIP2'和
'ZLIB'.不要將RMAN的壓縮和外部壓縮實用程序混合在一起做(考點)。
第十三行:CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
對于歸檔文件,一般來說,如果你僅是單實例的話(不是Data Guard環(huán)境),全備以前的archivelog就沒有什么用處了,可以刪除,但很多人不習(xí)慣在這里設(shè)置參數(shù),更愿意使用腳本刪除歸檔文件。(見最后一章Oracle 一周備份計劃)
第十四行CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/oracle/dbs/snapcf_timran11g.f'; # default
rman 控制文件RMAN存儲庫與catalog做全同步的時候,需要建立一個controlfile的快照,這個參數(shù)指定快照存放位置。(PPT-II-74)
6.6 rman備份的分類:
1)backupset:不備份datafile里從未使用塊(HWM以上)、可以實現(xiàn)增量備份(可以備份到disk和tape)。如果只啟用一個channel,默認(rèn)會把所有備份的datafile放入到一個backupset里,并且生成一個備份片backup piece。
2)image copy(映像文件):實際上和手工cp 類似的,備份datafile所有的數(shù)據(jù)塊, 不能作為增量備份的基礎(chǔ)(即0級增量備份),只能備份到disk ,不能備份到tape,因可以省略還原步驟,恢復(fù)數(shù)據(jù)庫速度快。
6.7 rman的命令格式:
1)交互式 (也叫stand alone方式)
RMAN> shutdown immediate;
RMAN> startup force mount;
RMAN> alter database open;
RMAN> sql 'alter system switch logfile';
RMAN> sql 'select * from scott.emp'; //對select 不顯示結(jié)果
2)批處理方式(也叫job方式)
RMAN>run {
shutdown immediate;
startup mount;
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/u01/app/oracle/oradata/hyyk/%d_%s.bak';
alter database open;
}
3)基于EM方式(WEB方式)