您好,登錄后才能下訂單哦!
第六章:RMAN概述
2)建立備份和恢復的server process,在oracle server上做備份和恢復
3)rman 備份datafile(分三個層次:database、tablespace、datafile)、controlfile、spfile、archivelog
4)在歸檔模式下支持一致性備份(冷備)和非一致性備份(熱備)
5)非歸檔只支持一致性備份(mount冷備)
*考點:
1)非歸檔方式的RMAN只能冷備,并在mount下做,但手工備份在mount下cp出來的備份對于RMAN是不可用的。
2)非歸檔方式的RMAN恢復只能還原最后一次備份。
1)不備份數據文件中從未使用的塊(備份高水位線以下的block),節省時間空間(考點)
6)可以備份ASM文件
target database(備份的目標庫) ,
auxiliary database(輔助庫)
catalog database(目錄數據庫)。
6.4 rman 連接目標庫方法
1)本地連接
RMAN工具和target database在同一臺服務器
rman target /
2)遠程連接
RMAN客戶端通過ORACLE_NET連接target database 在target database 啟動監聽,在client配置tnsnames.ora。
6.5、查看rman的默認配置,修改rman的配置信息
1)查看rman的默認配置
RMAN> show all;
2)理解以上各行RMAN環境變量
第一行:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
有兩種保留策略:兩者只能選一,互斥。(見PPT-II-47)
一個是時間策略,指定一個時間窗口,必須能恢復此時間段內任一個時刻的數據。現在時間 — 全備份點 >= 時間窗口。
一個冗余策略,規定至少有幾個冗余的備份。
恢復窗口備份保存策略:
例如,假如我們指定恢復窗口是 7 天,假設今天是星期一,此前存在 3 個全備及歸檔日志。第一個全備是5天前生成的,第二個全備是十天前生成的,而最早一個全備是15天前備份的,
那么十天前生成的備份及之后的歸檔日志必須保留,而15天前的那個備份會成為廢棄備份(obsolete)(見PPT-48)。
下面的命令將恢復窗口配置為7 天:
RMAN> configure retention policy to recovery window of 7 days;
冗余備份保存策略:
使用這種保存策略,RMAN 會從最新備份開始保留 N 個數據備份,其余的廢棄(obsolete)。
例如,如果有三個備份,而冗余數是 2,那么最早的那個備份將被廢棄。下面的命令將備份策略設置為 2:
RMAN> configure retention policy to redundancy 2;
設置NONE 可以把使備份保持策略失效,Clear 將恢復默認的保持策略
RMAN> configure retention policy to none; //RMAN此后不會將任何備份集或映像文件標記為obsolete狀態。
RMAN> configure retention policy clear;
例:保證至少有一個備份能恢復到 Sysdate-5 的時間點上,之前的備份將標記為Obsolete(廢棄)
RMAN> configure retention policy to recovery window of 5 days;
至少需要有三個冗余的備份存在,如果多余三個備份以上的備份將標記為冗余
RMAN> configure retention policy to redundancy 3;
第二行:CONFIGURE BACKUP OPTIMIZATION OFF; # default
設置備份優化選項 ( optimization ) 可以在配置中設置備份的優化,如:
RMAN> configure backup optimization on;
如果優化設置打開, 它只用于歸檔日志,只讀或脫機表空間的數據文件,因為這些文件是不會變化的,備份集運行一個優化算法。跳過重復的備份文件,比如你要備份歸檔日志,此參數設
為on可以避免重復備份,可大大節省空間和時間。 (PPT103)
考點:備份優化選項依賴于RETENTION POLICY策略,如果啟用優化,在已有足夠相同文件副本的情況下(r+1),RMAN將不創建額外的文件副本。
第三行:CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
設備類型有兩種,可以是磁盤(DISK),或者磁帶(STB),默認為磁盤。
第四行:CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
設置控制文件自動備份 (autobackup on)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
off: 默認情況下,在備份system 表空間時,會備份控制文件和spfile
on: 在做任何文件的備份時,會自動備份控制文件和spfile,并且數據庫的物理結構發生變化時,也自動備份controlfile。
第五行:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
可以用如下的配置指定控制文件的備份路徑與格式,format 指明備份文件的路徑和文件名
RMAN備份文件格式 備份文件可以自定義各種各樣的格式,如下:
%c 備份片的拷貝數
%D 位于該月中的第幾天 (DD)
%M 位于該年中的第幾月 (MM)
%F 一個基于DBID 唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該數據庫的DBID,YYYYMMDD 為日期,QQ 是一個1-256 的序列
%d 數據庫名稱
%n 數據庫名稱,向右填補到最大八個字符
%u 一個八個字符的名稱代表備份集與創建時間
%p 該備份集中的備份片號,從1 開始到創建的文件數
%U 一個唯一的文件名,代表%u_%p_%c
%s 備份集的號
%t 備份集時間戳
%T 年月日格式(YYYYMMDD)
第六行:CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
指定在以后的備份與恢復操作中并行度為2,即同時開啟2個通道進行備份與恢復
并行的數目決定了開啟通道的個數,當然也可以在RUN{}中指定通道來決定備份與恢復的并行程度。如果在RUN{}中指定了通道配置,將覆蓋掉配置參數中指定的默認并行度
(考點)通常一個通道對應一個備份集。
提高RMAN性能和吞吐量,除了通道數,還可以通過一些參數控制輸入數據文件數,備份集數,備份片數。
參數影響可有全局和局部兩個層次,基本上分為:
PARALLELISM: 保存在RMAN存儲庫。
CONFIGURE CHANNEL: 更新配置,保存在RMAN存儲庫。
ALLOCATE CHANNEL: 限于run{},不保存。
BACKUP: 限于本次backup語句,不保存。
相關參數
FILESPERSET: 每個備份集的最大輸入文件數
在BACKUP語句中描述
MAXOPENFILES: 在給定時間內可以打開的最大輸入文件數量
在ALLOCATE CHANNEL或CONFIGURE CHANNEL中描述
MAXPIECESIZE: 每個通道的備份片大小 在ALLOCATE CHANNEL或CONFIGURE CHANNEL中描述
MAXSETSIZE: 限制最大備份集大小
在BACKUP語句中描述或配合參數中描述
BACKUP DURATION: 增加或減少完成備份的時間
在BACKUP語句中描述
1)在RUN{}里分配通道,可以指定備份的數據文件和通道對應關系。
例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參數限制備份集中的輸入文件數, 指定每個備份集中一次可以包含輸入文件最大數,該參數默認值為64。例2中約定每個備份集中備份8個文件。
如果數據庫有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語句,則通道數按全局變量PARALLELISM指定,假定為1,有20個文件,FILESPERSET=8該是怎樣的結果:一個通道干活,8個文件組成一個備份集,
每備份集對一個備份片,完成一個備份集再接下一個備份集。串行的跑三趟。
3)使用MAXPIECESIZE參數限制備份片大小
例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';
}
只能產生一個備份片
如果將
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 300M;
換成
ALLOCATE CHANNEL c1 DEVICE TYPE DISK MAXPIECESIZE 300M;
就是全部和局部的區別
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK clear; //刪除此變量
4)使用maxsetsize參數限制備份集大小:
例4:
RMAN> backup database maxsetsize 500m format '/u01/app/oracle/oradata/hyyk/%U.bak';
結果如何,一個通道產生了多個備份集,每個備份集對一個備份片。
注意:作為基本原則,一個備份集只能占一個通道,一個輸入數據文件不能分成多個備份集,所以這里必須滿足:最大輸入文件size<500M.
5)使用SECTION SIZE子句設置多段備份(multisection backup)
通常一個數據文件只能占用一個通道,如果某個datafile太大,為提高備份效率,可以考慮采用多道關鍵字SECTION SIZE,并行化這個大文件的備份。例5中的數據文件約500M,
被分成若干file section來備份, 它啟動了三個通道,每個通道備份300M的file section,但三個通道產生一個備份集,包含兩個壓縮后的備份片。
例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,當maxpiecesize全局生效時不能使用SECTION SIZE。(考點)
所以,要使用SECTION SIZE,maxpiecesize只能在allocate channel中說明。(局部參數可以覆蓋全局參數)
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK clear;
第七行:CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
備份集也可以有多路復用(但映像文件不可以),最大值4,如為2就備份相同的2份(PPT-II-101),注意:TO STB和TO DISK是獨立的(PPT-II-102),也就是說不能同時以DISK和TAPE多路復用(考點)。那么再問一句, 如果一定要duplex磁盤和磁帶, 請使用backup backupset.單獨使用RMAN命令可以覆蓋這個參數
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
歸檔日志的多路復用,類似數據文件多路復用
第九行:CONFIGURE MAXSETSIZE TO UNLIMITED; # default
該配置限制通道上備份集的最大尺寸,單位支持 Bytes 、KB、MB、GB,默認值是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新增的參數 (PPT-II-104-106), 壓縮只能是針對backup set,有兩種算法:'BZIP2'和
'ZLIB'.不要將RMAN的壓縮和外部壓縮實用程序混合在一起做(考點)。
第十三行:CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
對于歸檔文件,一般來說,如果你僅是單實例的話(不是Data Guard環境),全備以前的archivelog就沒有什么用處了,可以刪除,但很多人不習慣在這里設置參數,更愿意使用腳本刪除歸檔文件。(見最后一章Oracle 一周備份計劃)
第十四行CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/oracle/dbs/snapcf_timran11g.f'; # default
rman 控制文件RMAN存儲庫與catalog做全同步的時候,需要建立一個controlfile的快照,這個參數指定快照存放位置。(PPT-II-74)
6.6 rman備份的分類:
1)backupset:不備份datafile里從未使用塊(HWM以上)、可以實現增量備份(可以備份到disk和tape)。如果只啟用一個channel,默認會把所有備份的datafile放入到一個backupset里,并且生成一個備份片backup piece。
2)image copy(映像文件):實際上和手工cp 類似的,備份datafile所有的數據塊, 不能作為增量備份的基礎(即0級增量備份),只能備份到disk ,不能備份到tape,因可以省略還原步驟,恢復數據庫速度快。
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 不顯示結果
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方式)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。