一裕循、數(shù)據(jù)庫備份與RMAN備份的概念
? ? 1.數(shù)據(jù)庫完全備份:按歸檔模式分為歸檔和非歸檔
? ? ? ? 歸檔模式
? ? ? ? ? ? 打開狀態(tài)眶痰,屬于非一致性備份
? ? ? ? ? ? 關(guān)閉狀態(tài),一致性備份沧卢,非一致性
? ? ? ? 非歸檔模式
? ? ? ? ? ? 打開狀態(tài)肠虽,非一致性備份無效
? ? ? ? ? ? 關(guān)閉狀態(tài),一致性備份啼器,
? ? 2.RMAN備份? ?
? ? ? ? RMAN使用服務(wù)器會(huì)話來完成備份操作旬渠,從RMAN客戶端連接到服務(wù)器將產(chǎn)生一個(gè)服務(wù)器會(huì)話
? ? ? ? RMAN備份內(nèi)容包括:整個(gè)數(shù)據(jù)庫,表空間,數(shù)據(jù)文件,指定的數(shù)據(jù)文件,控制文件,歸檔日志文件,參數(shù)文件等
? ? 3.RMAN備份的類型
? ? ? ? 完整備份(full) 或增量備份(incremental)
? ? ? ? 一致性備份(consistent)或不一致性備份(inconsistent)
? ? ? ? 熱備(open)或冷備(closed),冷備時(shí)數(shù)據(jù)庫必須處于mount狀態(tài)端壳,冷備可以為一致性備份或非一致性備份
? ? ? ? 完整備份
? ? ? ? ? ? 一個(gè)或多個(gè)數(shù)據(jù)文件的一個(gè)完整副本,包含從備份開始處所有的數(shù)據(jù)塊.完整備份不能作為增量的基礎(chǔ)
? ? ? ? 增量備份
? ? ? ? ? ? 包含從最近一次備份以來被修改或添加的數(shù)據(jù)塊.可以分為差異增量備份和累計(jì)增量備份
? ? ? ? ? ? 差異增量備份自上次增量備份以來的更改告丢,備份數(shù)據(jù)量小,恢復(fù)時(shí)間長损谦。
? ? ? ? ? ? 累計(jì)自上次0級(jí)備份以來的更改岖免。備份數(shù)據(jù)量大岳颇,恢復(fù)時(shí)間短。
? ? ? ? ? ? 0級(jí)增量備份相當(dāng)于一個(gè)完整備份,該備份包含所有已用的數(shù)據(jù)塊文件,與完整備份的差異是完整備份不能用作級(jí)增量備份的基礎(chǔ)
? ? ? ? 一致性備份
? ? ? ? ? ? 備份所包含的各個(gè)文件中的所有修改都具備相同的系統(tǒng)變化編號(hào)(system change number颅湘,SCN)话侧。
? ? ? ? ? ? 也就是說,備份所包含的各個(gè)文件中的所有數(shù)據(jù)均來自同一時(shí)間點(diǎn)闯参。
? ? ? ? ? ? 一致性數(shù)據(jù)庫完全備份(consis-tent whole database backup)進(jìn)行還原(restore)后瞻鹏,不需要執(zhí)行恢復(fù)操作(recovery)
? ? ? ? 非一致性備份
? ? ? ? ? ? 在數(shù)據(jù)庫處于打開(open)狀態(tài)時(shí),或數(shù)據(jù)庫異常關(guān)閉(shut down abnormally)后鹿寨,對(duì)一個(gè)或多個(gè)數(shù)據(jù)
? ? ? ? ? ? 庫文件進(jìn)行的備份新博。非一致性備份需要在還原之后進(jìn)行恢復(fù)操作
? ? 4.備份集與鏡像副本
? ? ? ? 備份集
? ? ? ? ? ? 是包含一個(gè)或多個(gè)數(shù)據(jù)文件,歸檔日志文件的二進(jìn)制文件的集合.備份集由備份片組成,一個(gè)備份集中可以包含一個(gè)或多個(gè)備份片
? ? ? ? ? ? 可以通過filesperset參數(shù)來設(shè)置備份集中可包含的備份片數(shù),
? ? ? ? ? ? 也可以設(shè)定參數(shù)maxpiecesize來制定每個(gè)備份片的大小脚草。
? ? ? ? ? ? 備份集中空閑的數(shù)據(jù)塊將不會(huì)被備份赫悄,因此備份集可以支持壓縮。備份集支持增量備份馏慨,可以備份到磁盤或磁帶埂淮。
? ? ? ? 鏡像副本
? ? ? ? ? ? 是數(shù)據(jù)文件或歸檔日志文件等的完整拷貝,未經(jīng)過任何壓縮等處理,不能備份到磁帶,也不支持增量備份
? ? ? ? ? ? 恢復(fù)時(shí)可以立即使用實(shí)現(xiàn)快速恢復(fù)
? ? ? ? ? ? 等同于操作系統(tǒng)的復(fù)制命令
? ? 5.備份路徑
? ? ? ? 可以備份到磁盤目錄
? ? ? ? 可以備份到磁帶
? ? ? ? 閃回區(qū)
? ? 6.備份限制
? ? ? ? 數(shù)據(jù)庫必須處于mount或open狀態(tài)
? ? ? ? 不能備份聯(lián)機(jī)日志
二、使用RMAN進(jìn)行備份
? ? ? ? ? 恢復(fù)區(qū):恢復(fù)區(qū)提供了一個(gè)集中化的存儲(chǔ)區(qū)域熏纯,很大程度上減小了管理開銷同诫。
? ? ? ? ? ? ? ? 默認(rèn)RMAN備份數(shù)據(jù)存儲(chǔ)在恢復(fù)區(qū)? ? ? ? ? ? ? ? ? ?
? ? ? ? ? show parameter recovery
? ? ? ? ? alter system set db_recovery_file_dest_size=4G ;
? ? ? ? ? alter system set db_recovery_file_dest='/opt/soft/recover';
? ? ? ? RMAN> show all;
? ? ? 使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
? ? ? db_unique_name 為 ORCL 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
? ? ? 1CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
? ? ? 2CONFIGURE BACKUP OPTIMIZATION OFF; # default
? ? ? 3CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
? ? ? 4CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
? ? ? 5CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
? ? ? 6CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
? ? ? 7CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
? ? ? 8CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
? ? ? 9CONFIGURE MAXSETSIZE TO UNLIMITED; # default
? ? ? 10CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
? ? ? 11CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
? ? ? 12CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
? ? ? 13CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
? ? ? 14CONFIGURE SNAPSHOT CONTROLFILE NAME TO ''/opt/oracle/product/11.2.0/dbhome/dbs/snapcf_ORCL.f'; # default
? ? ? 1.1)configure retention policy to redundancy 1:
? ? ? 是用來決定那些備份不再需要了粤策,它一共有三種可選項(xiàng)樟澜,分別是
? ? ? CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
? ? ? CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
? ? ? CONFIGURE RETENTION POLICY TO NONE;
? ? ? 第一種recover window是保持所有足夠的備份,可以將數(shù)據(jù)庫系統(tǒng)恢復(fù)到最近七天內(nèi)的任意時(shí)刻叮盘。
? ? ? 任何超過最近七天的數(shù)據(jù)庫備份將被標(biāo)記為obsolete秩贰。
? ? ? 第二種redundancy 是為了保持可以恢復(fù)的最新的5份數(shù)據(jù)庫備份,任何超過最新5份的備份都將被標(biāo)記為obsolete柔吼。它的默認(rèn)值是1份毒费。
? ? ? 第三種不需要保持策略,clear將恢復(fù)回默認(rèn)的保持策略愈魏。
? ? ? 最安全的方法是采用第二種保持策略觅玻。
? ? ? 2.CONFIGURE BACKUP OPTIMIZATION OFF
? ? ? ? ? 默認(rèn)值為關(guān)閉,如果打開培漏,rman將對(duì)備份的數(shù)據(jù)文件及歸檔等文件進(jìn)行一種優(yōu)化的算法溪厘。
? ? ? 1.3)Configure default device type to disk:
? ? ? 是指定所有I/O操作的設(shè)備類型是硬盤或者磁帶,默認(rèn)值是硬盤
? ? ? 磁帶的設(shè)置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;
? ? ? 1.4)CONFIGURE CONTROLFILE AUTOBACKUP OFF
? ? ? 強(qiáng)制數(shù)據(jù)庫在備份文件或者執(zhí)行改變數(shù)據(jù)庫結(jié)構(gòu)的命令之后將控制文件自動(dòng)備份牌柄,
? ? ? 默認(rèn)值為關(guān)閉畸悬。這樣可以避免控制文件和catalog丟失后,控制文件仍然可以恢復(fù)珊佣。
? ? ? 1.5)CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'
? ? ? ? 是配置控制文件的備份路徑和備份格式
? ? ? 1.6)CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
? ? ? 是配置數(shù)據(jù)庫設(shè)備類型的并行度蹋宦。
? ? ? 1.7)CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
? ? ? 是配置數(shù)據(jù)庫的每次備份的copy數(shù)量披粟,oracle的每一次備份都可以有多份完全相同的拷貝。
? ? ? 1.8)CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1
? ? ? 是設(shè)置數(shù)據(jù)庫的歸檔日志的存放設(shè)備類型
? ? ? CONFIGURE RETENTION POLICY TO REDUNDANCY 2冷冗;
? ? ? show all;
? ? ? CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK CLEAR;
? ? ? show all;
? ? ? CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD false;
? ? ? show all;
? ? ? CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;? ?
1.備份數(shù)據(jù)庫
? ? ? ? RMAN> backup database format '/opt/soft/oracle/rmanbak/whole_%d_%U';? --備份整個(gè)數(shù)據(jù)庫
? ? ? ? SQL>? select * from V$Session_Longops;? --查詢備份情況
? ? ? ? ? ? ? select * from v$session s where upper(s.client_info)? like '%RMAN%'
? ? ? ? ? ? ? v$session_longops顯示運(yùn)行超過6秒的操作的狀態(tài)守屉。
? ? ? ? ? ? ? 包括備份,恢復(fù)蒿辙,統(tǒng)計(jì)信息收集胸梆,查詢等等。
? ? ? ? ? ? ? 數(shù)據(jù)庫重啟后须板,無法查到
? ? ? ? ? ? ? list backupset;
? ? ? ? ? ? ? list backupset tag=TAG20160416T233240;
? ? ? ? ? ? ? delete backupset ;
? ? ? ? RMAN> backup as compressed backupset database format ''/opt/soft/oracle/rmanbak/whole_%d_%U';
? ? ? ? ? ? ? --備份整個(gè)數(shù)據(jù)庫并壓縮備份集
? ? ? ? run{
? ? ? ? allocate channel ch2 type disk? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? maxpiecesize=2g;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? backup as compressed backupset? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? format? '/opt/soft/oracle/rmanbak/whole_%d_%U'?
? ? ? ? ? ? ? ? database filesperset=3 ;
? ? ? ? ? ? ? ? }?
--手動(dòng)分配一個(gè)通道? ? ? ? ? ? ? ? ?
--指定備份片的大小為2g? ? ? ? ? ? ?
--壓縮備份集? ? ? ? ? ? ? ? ? ? ? ?
--指定備份集中允許容納的文件數(shù)為個(gè)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
--釋放通道? ?
run{
? ? ? ? ? allocate channel ch1 type disk? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? maxpiecesize=1g;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? backup? format? '/opt/soft/oracle/rmanbak/whole_%d_%U'? database;
? ? ? ? ? release channel ch1;
? ? ? ? ? }? ? ? ? ? ? ? ? ? ? ? ?
? ? ? RMAN> list backupset tag=TAG20101014T171115;
? ? 2.備份數(shù)據(jù)文件
? ? ? ? RMAN> backup as copy datafile 4? format '/opt/soft/oracle/rmanbak/df_%d_%U';? ? ? ? --備份類型為鏡像備份
? ? ? ? ? ? ? list backup;
? ? ? ? RMAN> list copy;?
? ? ? ? RMAN> backup datafile 4 format '/opt/soft/oracle/rmanbak/df_%d_%U';? ? ? --備份類型為備份集
? ? 3.備份表空間
? ? ? ? RMAN>? backup tablespace users format '/opt/soft/oracle/rmanbak/tb_%d_%U';
? ? ? ? RMAN> backup tablespace temp;? --臨時(shí)表空間不需要備份
? ? 4.備份控制文件
? ? ? ? RMAN> configure controlfile autobackup on;--自動(dòng)備份控制文件置為on狀態(tài),
? ? ? ? 將自動(dòng)備份控制文件和參數(shù)文件(強(qiáng)烈建議開啟)
? ? ? ? CONFIGURE CONTROLFILE AUTOBACKUP OFF;
? ? ? ? 自動(dòng)備份控制文件:自動(dòng)備份打開時(shí)碰镜,會(huì)在把數(shù)據(jù)文件,日志文件习瑰,控制文件绪颖,SPfile等等都備份完了后,再自動(dòng)備份一遍當(dāng)前的控制文件甜奄。
? ? ? ? ? ? ? ? ? ? ? ? 因?yàn)槟阍谏厦娴膫浞萃瓿珊竽幔刂莆募锩嬗涊d的信息就發(fā)生了變化的,自動(dòng)備份就會(huì)把它備一遍课兄。
? ? ? ? ? ? ? ? ? ? ? ? 自動(dòng)備份關(guān)閉時(shí)牍氛,就不會(huì)最后再備一遍了。
? ? ? ? 4.1) 對(duì)比 on? off
? ? ? ? CONFIGURE CONTROLFILE AUTOBACKUP OFF;
? ? ? ? show all;
? ? ? ? backup tablespace users;? ? ?
? ? ? ? CONFIGURE CONTROLFILE AUTOBACKUP ON;
? ? ? ? show all;
? ? ? ? backup tablespace users;? ? ?
? ? ? ? 注:在備份system表空間時(shí)將會(huì)自動(dòng)備份控制文件和參數(shù)文件烟阐,即使自動(dòng)備份控制文件參數(shù)為off
? ? ? ? --單獨(dú)備份控制文件及參數(shù)文件
? ? ? ? RMAN> backup current controlfile;
? ? ? ? --備份數(shù)據(jù)文件時(shí)包含控制文件
? ? ? ? RMAN> backup datafile 4 include current controlfile;
? ? ? ? RMAN> sql "alter database backup controlfile to '/opt/soft/oracle/rmanbak/orclcontrol01.bak'";
? ? ? ? RMAN> sql "alter database backup controlfile to trace as '/opt/soft/oracle/rmanbak/orclcontrol02.sql'";
? ? ? ? --單獨(dú)備份spfile
? ? ? ? RMAN> backup spfile format ''/opt/soft/oracle/rmanbak/sp_%d_%U';
? ? ? ? RMAN> backup copies 2 device type disk spfile;
? ? 5.備份歸檔日志文件
? ? ? ? 備份歸檔日志時(shí)僅僅備份歸檔過的文件(不備份聯(lián)機(jī)重做日志文件)
? ? ? ? RMAN對(duì)歸檔日志備份前會(huì)自動(dòng)做一次日志切換搬俊,
? ? ? ? RMAN> backup format '/opt/soft/oracle/rmanbak/lf_%d_%U' archivelog all delete input;?
? ? ? ? ? ? ? --delete input 刪除所有已經(jīng)備份過的歸檔日志
? ? ? ? RMAN> backup? archivelog all delete input? format ''/opt/soft/oracle/rmanbak/lf_%d_%U';
? ? ? ? ? ? ? --delete input 刪除所有已經(jīng)備份過的歸檔日志
? ? ? ? RMAN>? backup archivelog sequence between 50 and 120 thread 1 delete input;
? ? ? ? RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";
? ? ? ? 使用plus archivelog時(shí)備份數(shù)據(jù)庫完成的動(dòng)作(backup database plus archivelog)
? ? ? ? ? ? 1.首先執(zhí)行alter system archive log current 命令(對(duì)當(dāng)前日志歸檔)
? ? ? ? ? ? 2.執(zhí)行backup archivelog all 命令(對(duì)所有歸檔日志進(jìn)行備份)
? ? ? ? ? ? 3.執(zhí)行backup database命令中指定的數(shù)據(jù)文件、表空間等
? ? ? ? ? ? 4.再次執(zhí)行alter system archive log current
? ? ? ? ? ? 5.備份在備份操作期間產(chǎn)生的新的歸檔日志
? ? ? ? RMAN> backup database plus archivelog format '/opt/soft/oracle/rmanbak/lg_%d_%U' delete input;
? ? ? ? backup database plus archivelog delete input;
? ? 6.備份閃回區(qū)
? ? ? ? RMAN> backup recovery area;
? ? 7.增量備份
? ? ? ? 增量備份與完全備份一致蜒茄,以增量備份為基礎(chǔ)唉擂,可執(zhí)行差異增量備份、累積增量備份檀葛。
? ? ? ? 差異備份:是RMAN生成的增量備份的默認(rèn)類型玩祟。對(duì)于差異備份來說,RMAN會(huì)備份自上一次同級(jí)或低級(jí)差異增量備份以來所有發(fā)生變化的數(shù)據(jù)塊屿聋。
? ? ? ? 累積增量:是備份上級(jí)備份以來所有變化的塊
? ? ? ? ? Oracle 9i 共有五種級(jí)別 0 1 2 3 4空扎,0級(jí)最高-4級(jí)最低,0級(jí)是1級(jí)的基礎(chǔ)以此類推润讥。
Oracle 10g官方文檔明確指出增量備份只有0和1兩種級(jí)別(太多增量級(jí)別其實(shí)沒有太大的意義)转锈,不過實(shí)際執(zhí)行增量操作時(shí),
? ? ? 仍然能夠指定多個(gè)級(jí)別象对,最大能夠支持4級(jí)增量備份黑忱。
Oracle 11g 增量備份只有0和1兩種級(jí)別。
Level 0級(jí)就是對(duì)數(shù)據(jù)庫一個(gè)全庫備份,增量備份必須從0級(jí)開始甫煞,也就是說必須要有一個(gè)全庫備份當(dāng)基礎(chǔ)菇曲。
如果你做全庫備份oracle也不認(rèn)為這是level 0的全庫備份,盡管是一樣的也要單獨(dú)做一次level 0抚吠。
有了level 0當(dāng)基礎(chǔ)才能有后面的 level 1 level 2 level 3 level 4常潮。。
? ? ? ? --0級(jí)增量備份
? ? ? ? RMAN> run{
? ? ? ? allocate channel ch1 type disk;
? ? ? ? backup incremental level 0 database format '/opt/soft/oracle/rmanbak/db_%d_%U';
? ? ? ? release channel ch1;
? ? ? ? }
? ? ? ? --下面啟用1級(jí)差異增量備份
? ? ? ? RMAN> run{
? ? ? allocate channel ch1 type disk;
? ? ? ? backup incremental level 1 database
? ? ? ? format '/opt/soft/oracle/rmanbak/db1_%d_%U';
release channel ch1;
? ? ? }
? ? ? run{
? ? ? allocate channel ch1 type disk;
? ? ? ? backup incremental level 1 database;
release channel ch1;
? ? ? }
? ? ? ? --下面啟用1級(jí)累積增量備份
? ? ? ? RMAN> run{
allocate channel ch1 type disk;
? ? ? backup incremental level 1 cumulative database format '/opt/soft/oracle/rmanbak/dbc_%d_%U'
? ? ? tag=db_inc_c_1;
? ? ? ? ? ? ? release channel ch1;
? ? ? ? ? ? ? }
三楷力、備份的其它特性
? ? 3.1)并發(fā):主要用于提高備份的速度喊式,可以分為手動(dòng)并發(fā)或自動(dòng)并發(fā)
? ? ? ? 手動(dòng)并發(fā):通過分配多個(gè)通道并將文件指定到特定的通道
? ? ? ? ? ? RMAN> run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
backup database
? format '/opt/soft/oracle/rmanbak/df_%d_%U';
release channel ch1;
release channel ch2;
release channel ch3;
}?
? ? ? ? 自動(dòng)并發(fā):使用configure配置并發(fā)度即可
? ? ? ? ? ? RMAN> configure device type disk parallelism 3 backup type to backupset;
? ? ? ? ? ? --下面的備份將自動(dòng)啟用個(gè)通道執(zhí)行并發(fā)
? ? ? ? ? ? RMAN>? backup database format '/opt/soft/oracle/rmanbak/p3_%U';
? ? 3.2 復(fù)用備份
? ? ? ? 即將一個(gè)備份集復(fù)制多份,同一備份集
? ? ? ? 手工指定:
? ? ? ? ? ? RMAN> backup copies 2 datafile 4 format '/opt/soft/oracle/rmanbak/df_%U';
? ? ? ? ? ? ? ? ? backup copies 2 tablespace users format '/opt/soft/oracle/rmanbak/df_%U';
? ? ? ? 自動(dòng)指定:配置下列參數(shù)
? ? ? ? ? ? RMAN> configure datafile backup copies for device type disk to 2;? --指定備份數(shù)據(jù)文件副本數(shù)
? ? ? ? ? ? RMAN> configure archivelog backup copies for device type disk to 2;--指定備份日志文件副本數(shù)
? ? 3.3 鏡像備份
? ? ? ? RMAN> backup as copy datafile 4 format ''/opt/soft/oracle/rmanbak/users.dbf' tag='users'
? ? ? ? OR
? ? ? ? RMAN> copy datafile 4 to ''/opt/soft/oracle/rmanbak/user01.dbf';
? ? ? ? --使用下面的configure命令將backup type設(shè)置為copy之后萧朝,則缺省的備份為鏡像副本
? ? ? ? RMAN> configure device type disk parallelism 1 backup type to copy;
? ? ? ? RMAN> backup datafile 4? format ''/opt/soft/oracle/rmanbak/users.dbf.bak'' tag=users;? ?
? ? ? --由于上面的設(shè)置岔留,則此命令備份的將是鏡像副本
? ? 3.4 壓縮備份集? ?
? ? ? ? --下面的命令使用了參數(shù)as compressed來實(shí)現(xiàn)手動(dòng)壓縮
? ? ? ? RMAN> backup as compressed backupset database;?
? ? ? ? --下面使用configure命令配置自動(dòng)壓縮備份集功能,則后續(xù)的備份會(huì)自動(dòng)使用壓縮功能
? ? ? ? RMAN> configure device type disk parallelism 4 backup type to compressed backupset;
? ? ? ? --由于設(shè)置了自動(dòng)壓縮检柬,則下面的命令將壓縮備份的system表空間及控制文件献联、參數(shù)文件
? ? ? ? RMAN> backup tablespace users;
? ? 3.5.使用tag標(biāo)記
? ? ? ? tag標(biāo)記可以為備份集或映像副本指定一個(gè)有意義的名字,以備后續(xù)使用何址,其優(yōu)點(diǎn)如下
? ? ? ? ? ? 為備份集或映像副本提供描述信息
? ? ? ? ? ? 能夠在list 命令中使用更好的定位備份文件
? ? ? ? ? ? 能夠在restore和switch命令中使用
? ? ? ? ? ? 同一個(gè)tag在多個(gè)備份集或多個(gè)映像副本中使用
? ? ? ? ? ? 當(dāng)未指定tag標(biāo)記時(shí)里逆,則系統(tǒng)產(chǎn)生缺省的tag標(biāo)記,其格式為:TAGYYYYMMDDTHHMMSS
? ? ? ? RMAN> backup as compressed backupset datafile 4 tag='Monthly_full_bak';
? ? ? ? RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';
? ? ? ? RMAN> list backupset tag=monthly_full_bak;?
? ? ? ? 3.6.備份保留策略
? ? ? ? 保留策略主要是保留備份副本的一些規(guī)則,通常用于滿足恢復(fù)或其他的需要(比如磁盤空間或磁帶空間大小限制)
? ? ? ? 備份保留策略分為冗余和恢復(fù)窗口用爪,這兩種保留策略互不兼容原押,要么使用前者,要么使用后者
? ? ? ? 備份冗余
? ? ? ? ? ? 默認(rèn)為偎血,可以通過 RMAN> configure retention policy to redundancy 2;
? ? ? ? ? ? ? ? ? ? ? ? ? ? RMAN> backup tablespace users;
? ? ? ? ? ? ? ? ? ? ? ? ? ? RMAN> backup tablespace users;
? ? ? ? ? ? ? ? ? ? ? ? ? ? RMAN> backup tablespace users;
? ? ? ? ? ? ? ? ? ? ? ? ? ? RMAN> list backup;
? ? ? ? ? ? ? 可以使用report obsolete命令查看備份數(shù)多于的備份
? ? ? ? ? ? ? RMAN> report obsolete;
? ? ? ? ? ? ? 并使用delete obsolete來刪除過時(shí)的備份
? ? ? ? ? ? ? RMAN> delete obsolete;
? ? ? ? ? ? ? 可以使用crosscheck backup;命令查看備份數(shù)多于的備份
? ? ? ? ? ? ? RMAN> crosscheck backup;
? ? ? ? ? ? ? 并使用delete expired backup來刪除過時(shí)的備份
? ? ? ? ? ? ? RMAN> delete expired backup;
? ? ? ? obsolete 和 expired 區(qū)別? ?
? ? ? ? obsolete出現(xiàn)主要是由于違背備份的保留策略【廢棄】而導(dǎo)致的诸衔,刪除需用delete obsolete,
? ? ? ? 而expired是在crosscheck檢查備份集是否有效烁巫,主要表現(xiàn)在只是系統(tǒng)層面上刪了備份署隘,而沒有刪除備份信息宠能,刪除需用delete expired亚隙。
? ? ? ? 操作系統(tǒng):
? ? ? ? mv /opt/soft/recover/ORCL/backupset/2016_04_20/o1_mf_nnndf_TAG20160420T122818_ckg1c2g7_.bkp? 1.bkp
? ? ? ? rman target /
? ? ? ? RMAN> list backup;
? ? ? ? RMAN> list expired backup;
? ? ? ? RMAN> report obsolete;
? ? ? ? RMAN> crosscheck backup;
? ? ? ? RMAN> list backup;
? ? ? ? RMAN> list expired backup;
? ? ? ? RMAN> report obsolete;
? ? ? ? 恢復(fù)窗口? ? ? ?
? ? ? ? ? ? 恢復(fù)窗口允許完成恢復(fù)到過去某個(gè)時(shí)間點(diǎn)的時(shí)點(diǎn)恢復(fù),通常設(shè)定為多少天
? ? ? ? ? ? 使用命令RMAN> configure retention policy to recovery window of 7 days
? ? ? ? ? ? 該命令將確保具有足夠的數(shù)據(jù)文件和歸檔日志來執(zhí)行能夠返回一個(gè)星期中任意時(shí)間點(diǎn)的不完全恢復(fù)违崇,且允許刪除隨著時(shí)間推移
? ? ? ? ? ? ? ? 而變?yōu)閺U棄的備份阿弃,即應(yīng)當(dāng)滿足該條件:SYSDATE - BACKUP CHECKPOINT TIME >= 7
? ? ? ? ? ? 對(duì)于大于天但是是恢復(fù)所需要的備份依然會(huì)被保留
? ? ? ? 清除備份保留策略
? ? ? ? ? ? RMAN> configure retention policy clear;
? ? ? 3.7.使用BACKUP ... VALIDATE驗(yàn)證數(shù)據(jù)文件邏輯壞塊,
? ? ? ? ? 損壞的壞塊將被記錄到v$database_block_corruption視圖
? ? ? ? ? ? ? RMAN> BACKUP VALIDATE CHECK LOGICAL tablespace users;
? ? ? ? ? ? ? SQL>? select * from v$database_block_corruption
四羞延、啟用塊變化跟蹤:快速增量備份
? 原理:未啟動(dòng)快速增量備份渣淳,RMAN備份必須檢查數(shù)據(jù)文件中所有塊的變化(SCN),
? 即掃描所有的數(shù)據(jù)庫伴箩,導(dǎo)致備份慢入愧,
? ? ? ? ? 啟動(dòng)快速增量備份,塊的改變被記錄在一個(gè)文件中,RMAN只需讀取備份記錄文件中的塊棺蛛,
? ? ? ? ? 加快備份速度怔蚌。
? 1)查看數(shù)據(jù)庫是否啟動(dòng)快速增量備份(11G默認(rèn)不啟動(dòng))
? ? SQL> select filename from v$block_change_tracking;
? 2)啟動(dòng)快速增量備份
? ? ? alter database enable block change tracking;
? ? ? 2.1) 以O(shè)MF方式創(chuàng)建存儲(chǔ)塊改變信息的文件
? ? ? ? ? SQL> alter system set db_create_file_dest='/opt/soft/rman';
? ? ? ? ? SQL> alter database enable block change tracking;
? ? ? 2.2) 直接指定路徑
? ? ? ? ? SQL> alter database enable block change tracking using file '/opt/oracle/fast_back';
? ? ? 2.3) 查看塊更改的后臺(tái)進(jìn)程
? ? ? ? ? ? ? ps -ef | grep ctwr
? ? ? 2.4) 執(zhí)行增量備份
? ? ? ? ? ? rman target /
? ? ? ? ? ? backup incremental level=0 database;
? ? ? ? ? ? backup incremental level=1 database;
? ? ? ? ? ? --監(jiān)視塊跟蹤
? ? ? ? ? ? select * from v$backup_datafile order by file#;
? ? ? ? ? ? ? select file#,avg(datafile_blocks),avg(blocks_read),avg(blocks_read/datafile_blocks)*100 as pct_read_for_backup, avg(blocks)
? ? ? ? ? ? ? ? from v$backup_datafile
? ? ? ? ? ? ? where used_change_tracking = 'YES'
? ? ? ? ? ? ? and incremental_level > 0
? ? ? ? ? ? ? group by file#;
? 3) 關(guān)閉快速增量備份
? ? ? alter database disable block change tracking;? ?
五、備份相關(guān)的動(dòng)態(tài)性能視圖及監(jiān)控
? ? 1.相關(guān)視圖
? ? ? ? v$backup_files
? ? ? ? v$backup_set
? ? ? ? v$backup_piece
? ? ? ? v$backup_redolog
? ? ? ? v$backup_spfile
? ? ? ? v$backup_device
? ? ? ? v$rman_configuration
? ? ? ? v$archived_log
? ? ? ? v$backup_corruption
? ? ? ? v$copy_corruption
? ? ? ? v$database_block_corruption
? ? ? ? v$backup_datafile
? ? 2.查看channel對(duì)應(yīng)的server sessions
? ? ? 使用set command id命令
? ? ? 查詢v$process和v$session判斷哪一個(gè)會(huì)話與之對(duì)應(yīng)的RMAN通道
? ? ? ? SQL> select sid,username,client_info from v$session? where client_info is not null;
? ? ? ? --下面使用了set command id命令
? ? ? ? RMAN> run{
? ? ? ? allocate channel ch1 type disk;
? ? ? ? allocate channel ch2 type disk;
? ? ? ? set command id to 'rman';
? ? ? ? backup database
? ? ? ? format '/opt/soft/oracle/rmanbak/dd_%U';
? ? ? ? }
? ? ? ? RMAN> run{
? ? ? ? allocate channel ch1 type disk;
? ? ? ? set command id to 'rman';
? ? ? ? backup database
? ? ? ? format '/opt/soft/oracle/rmanbak/dd_%U';
? ? ? ? }
? ? ? ? SQL> select sid,username,client_info from v$session? where client_info is not null;
? ? ? ? SQL> select s.sid,s.serial#,spid,client_info from v$process p ,v$session s
? ? ? ? ? ? where p.addr = s.paddr and client_info like '%id=%'
? ? ? ? --查看rman完整的進(jìn)度? ? ?
? ? ? ? SQL>
? ? ? ? ? ? select s.sid,s.serial#,s.context,s.sofar,s.totalwork,s.start_time,s.last_update_time,
? ? ? ? ? ? round(s.sofar/s.totalwork*100,2) "% Complete"
? ? ? ? ? ? from v$session_longops s
? ? ? ? ? ? left join (select s.sid,s.serial#,spid,client_info from v$process p ,v$session s
? ? ? ? ? ? where p.addr = s.paddr and client_info like '%id=%') p
? ? ? ? ? ? on s.sid=p.sid and s.serial#=p.serial#
? ? ? ? ? ? where s.opname like 'RMAN:%'
? ? ? ? ? ? and s.totalwork!=0?
? ? ? ? ? select s.sofar/s.totalwork ,s.* from? v$session_longops s
? ? ? where s.opname like 'RMAN:%'
? ? ? and s.totalwork!=0? order by start_time desc
? ? ? ? ? v$session_longops顯示運(yùn)行超過6秒的操作的狀態(tài)旁赊。包括備份桦踊,恢復(fù),統(tǒng)計(jì)信息收集终畅,查詢等等籍胯。
? ? ? ? ? 數(shù)據(jù)庫重啟后,無法查到
六:RMAN 調(diào)優(yōu)
? ? 1:配置RMAN多路技術(shù):RMAN可以同時(shí)讀取多個(gè)文件离福,然后將數(shù)據(jù)塊寫入到同一個(gè)備份片中杖狼。
? ? FILESPERSET和MAXOPENFILES默認(rèn)值分別是63 和 8
? ? run{
? ? ? ? allocate channel ch1 type disk;
? ? ? ? allocate channel ch2 type disk;
? ? ? ? backup database? FILESPERSET 4;
? ? ? ? release channel ch1 ;
? ? ? ? release channel ch2 ;? ? ?
? ? ? ? }
? ? 2:配置RMAN使用異步I/O
? ? ? ? 啟用異步IO(參考啟用異步IO)
? ? 3.監(jiān)視異步I/O
為了監(jiān)視異步I/O操作,使用動(dòng)態(tài)性能視圖V$BACKUP_ASYNC_IO妖爷。重要的監(jiān)視列如下:
IO_COUNT:在文件中執(zhí)行的I/O數(shù)量本刽。
LONG_WAITS:備份或還原進(jìn)程必須告知OS等待I/O完成的次數(shù)。
SHORT_WAIT_TlME_TOTAL:非阻塞輪詢I/O完成占用的總時(shí)間(以0.01秒為單位)
LONG_WAIT_TIME_TOTAL:阻塞等待I/O完成占用的總時(shí)間(以0.01秒為單位)
? ? 如果LONG_WAITS與IO_COUNT的比率達(dá)到最大赠涮,這很可能是備份過程中的瓶頸子寓。如果SHORT_WAIT_TIME_TOTAL 和 LONG_WAlT_TIME_TOTAL 是非零值,則也指示出現(xiàn)了瓶頸笋除。此示例確定兩個(gè)包含非零比率的輸入文件:
SQL> select long_waits / io_count waitcountratio, filename from v$backup_async_io where? io_count > 0 order by long_waits / io_count desc;
? ? ? ? 對(duì)于這個(gè)文件而言斜友,可以考慮增加多路復(fù)用程度,以便減少或消除備份時(shí)的等待時(shí)間
4.監(jiān)視同步I/O
動(dòng)態(tài)性能視圖V$BACKUP_SYNC_IO將幫助確定同步I/O操作中的瓶頸以及備份作業(yè)的進(jìn)度垃它。
使用DISCRETE_BYTES_PER_SECOND列來查看操作的I/O比率鲜屏。
此后將此比率與輸出設(shè)備(例如磁帶設(shè)備)的最大比率做比較。如果比率低得多国拇,則可以調(diào)整進(jìn)程洛史,
通過使用并行化或增加通道多路復(fù)用級(jí)別來提高備份操作的吞吐最
RMAN特點(diǎn):
1、備份數(shù)據(jù)庫酱吝、表空間也殖、數(shù)據(jù)文件、控制文件务热、歸檔日志和SPFILE忆嗜。目標(biāo)庫必須處于MOUNT狀態(tài)或OPEN狀態(tài)。
2崎岂、存儲(chǔ)頻繁執(zhí)行的備份和恢復(fù)操作捆毫。放到腳本中執(zhí)行
3、跳過未用塊冲甘。
4绩卤、執(zhí)行增量塊級(jí)備份
5途样、指定備份限制
6、在備份時(shí)檢測損壞塊濒憋。用DBVERIFY工具進(jìn)行檢查
7娘纷、自動(dòng)使用并行化特征提高備份和恢復(fù)性能。分配多個(gè)CPU跋炕、多個(gè)通道赖晶。? ? ? ?
名字參數(shù)意義:
/opt/soft/oracle/rmanbak/dd_%U';? ? ?
常用:_%d_%U
%a:Oracle數(shù)據(jù)庫的activation ID即RESETLOG_ID。
%c:備份片段的復(fù)制數(shù)(從1開始編號(hào)辐烂,最大不超過256)遏插。
%d:Oracle數(shù)據(jù)庫名稱。
%D:當(dāng)前時(shí)間中的日纠修,格式為DD胳嘲。
%e:歸檔序號(hào)。
%f:絕對(duì)文件編號(hào)扣草。
%F:基于"DBID+時(shí)間"確定的唯一名稱了牛,格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該數(shù)據(jù)庫的DBID,YYYYMMDD為日期辰妙,QQ是一個(gè)1~256的序列鹰祸。
%h:歸檔日志線程號(hào)。
%I:Oracle數(shù)據(jù)庫的DBID密浑。
%M:當(dāng)前時(shí)間中的月蛙婴,格式為MM。
%N:表空間名稱尔破。
%n:數(shù)據(jù)庫名稱街图,并且會(huì)在右側(cè)用x字符進(jìn)行填充,使其保持長度為8懒构。比如數(shù)據(jù)庫名JSSBOOK餐济,則生成的名稱則是JSSBOOKx。
%p:備份集中備份片段的編號(hào)胆剧,從1開始絮姆。
%s:備份集號(hào)。
%t:備份集時(shí)間戳赞赖。
%T:當(dāng)前時(shí)間的年月日格式(YYYYMMDD)滚朵。
%u:是一個(gè)由備份集編號(hào)和建立時(shí)間壓縮后組成的8字符名稱。利用%u可以為每個(gè)備份集生成一個(gè)唯一的名稱前域。
%U:默認(rèn)是%u_%p_%c的簡寫形式,利用它可以為每一個(gè)備份片段(即磁盤文件)生成一個(gè)唯一名稱韵吨,這是最常用的命名方式匿垄,執(zhí)行不同備份操作時(shí),生成的規(guī)則也不同,如下所示:
生成備份片段時(shí)椿疗,%U=%u_%p_%c漏峰;
生成數(shù)據(jù)文件鏡像復(fù)制時(shí),%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u届榄;
生成歸檔文件鏡像復(fù)制時(shí)浅乔,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;
生成控制文件鏡像復(fù)制時(shí)铝条,%U=cf-D_%d-id-%I_%u靖苇。
%Y:當(dāng)前時(shí)間中的年,格式為YYYY班缰。
注:如果在BACKUP命令中沒有指定FORMAT選項(xiàng)贤壁,則RMAN默認(rèn)使用%U為備份片段命名。
? ? 零級(jí)備份腳本?
run{
? ? allocate channel c1 type disk;
? ? allocate channel c2 type disk;
? ? backup incremental level 0 tag 'db0' format '/opt/soft/oracle/rmanbak/db0%u_%s_%p' database;
? ? release channel c1;
? ? release channel c2;
? ? }
? ? 一級(jí)備份腳本?
? ? run{
? ? allocate channel c1 type disk;
? ? allocate channel c2 type disk;
? ? backup incremental level 1 tag 'db1' format '/opt/soft/oracle/rmanbak/db1%u_%s_%p'database ;
? ? release channel c1;
? ? release channel c2;
? ? }
PARALLELISM ---
我們還可以通過parallelism參數(shù)來指定同時(shí)"自動(dòng)"創(chuàng)建多少個(gè)通道:
RMAN > configure device type disk parallelism 3 ;
表示啟動(dòng)三個(gè)通道埠忘,可以加快備份恢復(fù)的速度脾拆。
-----? 并行定義通道個(gè)數(shù), 通道定義了通道屬性。
例子1 :
RMAN> configure device type disk parallelism 4;
RMAN> configure channel 1 device type disk;
RMAN> configure channel 2 device type disk;
注意: 在上面的配置中邑闲,將開啟四個(gè)通道幔虏, 通道1,2采用用戶的配置包帚,3,4采用默認(rèn)配置 运吓。
例子2 :
RMAN> configure device type disk parallelism 3;
RMAN> configure channel 1 device type disk;
RMAN> configure channel 2 device type disk;
RMAN> configure channel 3 device type disk;
RMAN> configure channel 4 device type disk;
注意: 這時(shí)渴邦,RMAN將忽略parallelism 的設(shè)置,而以用戶設(shè)置的通道為準(zhǔn)拘哨。
maxpiecesize 用于設(shè)置備份片的大小 谋梭。比如備份片最大大小為2000M, 那么一個(gè)5G 的數(shù)據(jù)文件必須跨備份片進(jìn)行備份,
但是一個(gè)數(shù)據(jù)文件不能跨多個(gè)備份集倦青。? 通常一個(gè)通道對(duì)應(yīng)一個(gè)備份集瓮床。
用filesperset控制備份集的尺寸
當(dāng)指定filesperset參數(shù)時(shí),rman比較filesperset與自動(dòng)計(jì)算出來的值(對(duì)每個(gè)已分配通道的文件數(shù)目)
并取其中較小的那個(gè)值來保證所有的通道被使用产镐。
如果指定或者通過組合backupSpec語句暗示的文件數(shù)目比filesperset要大隘庄,
那么rman創(chuàng)建多個(gè)備份集來維護(hù)正確的速率(ratio);
如果沒有指定filesperset癣亚,rman比較計(jì)算出來的值(文件數(shù)目除以已分配的通道)和默認(rèn)值64丑掺,
并取其中較小的那個(gè)值來保證所有通道可用。
Rman通常嘗試創(chuàng)建足夠的備份集以使所有已分配的通道有事可做述雾。
一個(gè)例外是通道比要備份的文件還要多
例如:
A. filesperset設(shè)置為6街州,數(shù)據(jù)文件數(shù)目為30兼丰,通道數(shù)據(jù)為4,通過30/4可以得出每個(gè)
備份集可含有8個(gè)文件唆缴,取6和8中較小的值6鳍征,那么30/6=5個(gè)備份集,那么4個(gè)通道肯定都有任務(wù)面徽。
B. 如果不指定filesperset艳丛,假設(shè)數(shù)據(jù)文件數(shù)目為30,通道數(shù)據(jù)為4趟紊,通過30/4可以
得出每個(gè)備份集可含有8個(gè)文件氮双,比較8和默認(rèn)值64,我們?nèi)∑渲休^小的8织阳,那么也可以保證4個(gè)通道都有事情可做
--maxpiecesize
run{
? ? ? ? ? allocate channel ch1 type disk;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? maxpiecesize=2g;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? backup? format? '/opt/soft/oracle/rmanbak/whole_%d_%U'? database;
? ? ? ? ? release channel ch1;
? ? ? ? ? }?
--filesperset
? ? ? ? ? run{
? ? ? ? ? allocate channel ch1 type disk ;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? backup? format? '/opt/soft/oracle/rmanbak/whole_%d_%U'? database
? ? ? ? ? ? filesperset=2;? ?
? ? ? ? ? release channel ch1;
? ? ? ? ? }?
恢復(fù)指導(dǎo):
? RMAN>
? 1:list failure;
? 2: advise failure;
? 3: repair failure;
? 4: change failure;