您好,登錄后才能下訂單哦!
本篇文章為大家展示了RMAN具體的使用方法是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Recovery
manager(RMAN)是ORACLE提供的DBA工具,用語管理備份和恢復(fù)操作。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個數(shù)據(jù)庫或數(shù)據(jù)庫部件,其中包括表空間、數(shù)據(jù)文件,控制文件和歸檔文件。RMAN可以按要求存取和執(zhí)行備份和恢復(fù)。
RMAN備份有如下優(yōu)點
☆支持在線熱備份
☆支持多級增量備份
☆支持并行備份、恢復(fù)
☆減少所需要備份量
☆備份、恢復(fù)使用簡單
[$nbsp][$nbsp][$nbsp]重要的是,使用恢復(fù)管理器允許您進行增量數(shù)據(jù)塊級的備份(這個與導(dǎo)出/導(dǎo)入的增量截然不同)。增量RMAN備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些數(shù)據(jù)塊。另一個空間有效的RMAN特性是它只備份數(shù)據(jù)文件中使用的數(shù)據(jù)塊,忽略空的,未用的數(shù)據(jù)塊,這個對于預(yù)分配空間的表空間有很大的好處。
[$nbsp][$nbsp]從9i開始,還增加了RMAN的數(shù)據(jù)塊級別的恢復(fù),可以進一步減少數(shù)據(jù)庫恢復(fù)時間。
RMAN支持以下不同類型的備份
FULL 數(shù)據(jù)庫全備份,包括所有的數(shù)據(jù)塊
INCREMENTAL
增量備份,只備份自上次增量備份以來修改過的數(shù)據(jù)塊。需要一個0級的增量作為增量的基礎(chǔ),可以支持5級增量。
OPEN 在數(shù)據(jù)庫打開的時候使用
CLOSED 在數(shù)據(jù)庫安裝(MOUNT)但不打開的時候備份,關(guān)閉備份可以是CONSISTENT或IN CONSISTENT類型的。
CONSISTENT
在數(shù)據(jù)庫安裝,單不打開,并且在安裝之前數(shù)據(jù)庫被徹底關(guān)閉(而不是被破壞或異常退出)時使用。CONSISTENT備份可以簡單的進行復(fù)原(RESTORE)而不是恢復(fù)(RECOVER)
INCONSISTENT 在數(shù)據(jù)庫打開或安裝(但不打開)時使用。在該數(shù)據(jù)庫正常關(guān)閉或崩潰后,INCONSISTENT備份需要恢復(fù)。
理解BACKUP,RESTORE,RECOVER命令,這是RMAN最基本的三個命令,可以進行數(shù)據(jù)庫的備份,復(fù)原以及恢復(fù)操作。
[$nbsp][$nbsp][$nbsp]理解恢復(fù)目錄,RMAN可以在沒有恢復(fù)目錄(NOCATALOG)下運行,這個時候備份信息保存在控制文件。保存在控制文件的備份信息是很危險的,如果控制文件的破壞將導(dǎo)致備份信息的丟失與恢復(fù)的失敗,而且,沒有恢復(fù)目錄,很多RMAN的命令將不被支持。所以對于重要的數(shù)據(jù)庫,建議創(chuàng)建恢復(fù)目錄,恢復(fù)目錄也是一個數(shù)據(jù)庫,只不過這個數(shù)據(jù)庫用來保存?zhèn)浞菪畔?,一個恢復(fù)目錄可以用來備份多個數(shù)據(jù)庫。
[$nbsp][$nbsp]創(chuàng)建RMAN目錄,以下步驟說明了在一個數(shù)據(jù)庫中盡力RMAN目錄的過程。
a.為目錄創(chuàng)建一個單獨的表空間
SQL>Create tablespace tools datafile ‘fielname’ size 50m;
b.創(chuàng)建RMAN用戶
SQL>Create user RMAN identified by RMAN default tablespace tools
temporary tablespace temp;
c.給RMAN授予權(quán)限
SQL>Grant connect , resource ,
recovery_catalog_owner to rman;
d.打開RMAN
$>RMAN
e.連接數(shù)據(jù)庫
RMAN>connect catalog rman/rman
f.創(chuàng)建恢復(fù)目錄
RMAN>Create catalog
tablespace rman
注冊目標數(shù)據(jù)庫,恢復(fù)目錄創(chuàng)建成功后,就可以注冊目標數(shù)據(jù)庫了,目標數(shù)據(jù)庫就是需要備份的數(shù)據(jù)庫,一個恢復(fù)目錄可以注冊多個目標數(shù)據(jù)庫,注冊目標數(shù)據(jù)庫的命令為:
[$nbsp][$nbsp][$nbsp][$nbsp]$>RMAN target internal/password catalog
rman/rman@rcdb;
RMAN>Register database;
數(shù)據(jù)庫注冊完成,就可以用RMAN來進行備份了,更多命令請參考ORACLE聯(lián)機手冊或《ORACLE8i備份與恢復(fù)手冊》。
RMAN使用腳本來備份數(shù)據(jù)庫,以下是RMAN進行備份的幾個例子。
a.備份整個數(shù)據(jù)庫
backup full tag ‘basicdb’
format ‘/bak/oradata/full_%u_%s_%p’ database;
b.備份一個表空間
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]backup tag ‘tsuser’ format
‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;
c.備份歸檔日志
backup tag
‘a(chǎn)log’ format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
ii.維護RMAN
RMAN的維護主要分為幾個方面
1、[$nbsp][$nbsp]查看RMAN的信息
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]檢查現(xiàn)有備份
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>list
backup
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]列出過期備份
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>report
obsolete
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]刪除過期的備份
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>allocate
channel for maintenance type disk;
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>change
backupset id delete;
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>release
channel;
2、[$nbsp][$nbsp]同步或重置RMAN
如果目標數(shù)據(jù)庫物理對象發(fā)生了變化,如添加了一個數(shù)據(jù)文件,需要用如下命令同步:
RMAN>resync catalog;
如果目標數(shù)據(jù)庫reset了數(shù)據(jù)庫,需要用如下命令同步
RMAN>reset database;
當手工刪除了數(shù)據(jù)庫的歸檔文件后,要執(zhí)行以下腳本同步
RMAN>allocate channel for maintenance type
disk;
RMAN> change archivelog all crosscheck;
RMAN>release
channel;
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]當手工刪除了數(shù)據(jù)庫的RMAN備份后,要執(zhí)行以下腳本來同步
[$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp][$nbsp]RMAN>allocate
channel for maintenance type disk;
RMAN>crosscheck backup;
RMAN>delete expired backup;
RMAN>release channel;
四、定制恰當?shù)膫浞莶呗?
i.定制正確的策略
正確的備份策略不僅能保證數(shù)據(jù)庫服務(wù)器的24*7的高性能的運行,還能保證備份與恢復(fù)的快速性與可靠性。我們將以RMAN的多級增量備份作為一個備份策略的例子來討論。采用多級備份就是為了減少每天備份所需要的時間,而又保證系統(tǒng)有良好的恢復(fù)性?;謴?fù)時間與備份時間要有一個權(quán)衡。比如只要進行一個數(shù)據(jù)庫的全備份,然后就只備份歸檔也可以保證能把數(shù)據(jù)庫恢復(fù)到最新的狀態(tài),但是這樣的恢復(fù)時間將是不可容忍的。多級備份也正是
為了解決這種問題,以下就是一個多級備份的例子:
每半年做一個數(shù)據(jù)庫的全備份(包括所有的數(shù)據(jù)和只讀表空間)
每一個月做一次零級備份(不包含只讀表空間)
每個星期做一次一級備份
每天做一次二級備份
任何數(shù)據(jù)庫的更改需要重新同步CATALOG目錄并重新備份(如添加數(shù)據(jù)文件)或重新備份(如修改表空間為只讀)
每次備份后都可以備份歸檔日志或定期備份歸檔日志。
如果可能,可以直接備份到磁帶上。
數(shù)據(jù)庫全備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag ‘dbfull’ format
‘/u01/oradata/backup/full%u_%s_%p’ database
include current controlfile;
sql ‘a(chǎn)lter system archive log current’;
backup fileaperset 3 format
‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input;
#備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release
channel c3;
}
零級備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup
incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’
database skip readonly;
sql ‘a(chǎn)lter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release channel c3;
}
同理,我們可以得到一級備份,二級備份的腳本,如一級備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup
incremental level 1 tag ‘db1’ format ‘/u01/oradata/backup/db1%u_%s_%p’
database skip readonly;
sql ‘a(chǎn)lter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input; #備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release channel c3;
}
如果按照以上備份策略,則每天的所需要備份的數(shù)據(jù)量只有一天的改變量。而做恢復(fù)時最多要恢復(fù)當月的一個零級備份+三個一級備份+6個二級備份+當天的歸檔文件。如果不能接受這樣的恢復(fù)時間,可以減少零級備份之間的時間間隔。
[$nbsp][$nbsp][$nbsp][$nbsp]在每次備份后,原則上在該備份點之前的歸檔日志就可以刪除掉了,但是為了進一步的安全以及日后需要(如使用LOGMNR查找所需信息),建議有條件的話,歸檔日志保存一年,可以保存在磁帶等廉價存取設(shè)備上。
ii.與RMAN備份有關(guān)的優(yōu)化
備份操作主要是完成以下三個步驟
1、從磁盤上讀取數(shù)據(jù)
2、在內(nèi)存中處理數(shù)據(jù)塊
3、寫入數(shù)據(jù)到磁盤或磁帶
以上的讀寫操作可以同步或異步的完成,在同步I/O操作中,一個時間只允許有一個IO操作,但是在異步I/O操作中,一個時間允許有多個IO操作。因此,備份與恢復(fù)的調(diào)優(yōu)主要集中在以下幾個方面:
1、[$nbsp][$nbsp]提高同步或異步I/O操作能力
在支持異步操作的操作系統(tǒng)上,可以通過設(shè)置TAPE_AYSNCH_IO,DISK_ASYNCH_IO和BACKUP_TYPE_IO_SLAVES來支持異步操作,提高寫的能力。
2、[$nbsp][$nbsp]提高磁盤讀能力
可以在backup命令后通過設(shè)置DISKRATIO來保證從多個磁盤上讀取數(shù)據(jù),保證連續(xù)的數(shù)據(jù)流。
3、[$nbsp][$nbsp]正確設(shè)置緩沖區(qū)與參數(shù)值
設(shè)置LARGE_POOL_SIZE,使備份可以使用連續(xù)的緩沖池,通過設(shè)置DB_FIL_DIRECT_IO_COUNT可以提高緩沖區(qū)的利用。如果使用磁帶備份,還可以設(shè)置BACKUP_TYPE_IO_SLAVES來提高磁帶的寫能力。
4、[$nbsp][$nbsp]采用并行備份
開辟多個通道,可以實現(xiàn)并行備份與恢復(fù)
iii.備份RMAN數(shù)據(jù)庫
RMAN自己的數(shù)據(jù)庫也需要備份,但是本身很小,而且不是經(jīng)常發(fā)生變化,所以在每次RMAN備份完成后,都可以用如下腳本對RMAN數(shù)據(jù)庫備份。
EXP
pafile =exprman.sql
exprman.sql為
USERID=RMAN/RMAN
BUFFER=32768
OWNER=RMAN
FILE=RMAN.DMP
ROWS=Y
GRANTS=Y
COMPRESS=Y
CONSISTENT=Y
iv.使自動備份數(shù)據(jù)庫
自動備份數(shù)據(jù)庫不外乎以下三種方式
[$nbsp][$nbsp][$nbsp][$nbsp]WINDOWS下的任務(wù)計劃(At命令)
[$nbsp][$nbsp][$nbsp][$nbsp]UNIX下的Crontab
[$nbsp][$nbsp][$nbsp][$nbsp]第三方工具如Viritas
在以上三種方式中Viritas屬于第三方工具,很多人可能都沒有接觸,主要說一下windows的任務(wù)計劃與unix的cron
1、生成腳本文件,如backup.rcv
假定文件內(nèi)容如下:
$>cat backup.rcv
connect
target sys/password rcvcat rman/rman@localname;
run{
allocate channel c1
type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
archivelog all delete input;
release channel c1;
release channel c2;
release channel c3;
}
[$nbsp][$nbsp]2、生成執(zhí)行文件
在windows上生成backup_archive.bat,內(nèi)容包括
rman cmdfile = backup.rcv
在unix下生成 backup_archive.sh,內(nèi)容包括
/oracle/ramn/rman cmdfile = backup.rcv
3、加入調(diào)度
在windows中用任務(wù)計劃向?qū)Ъ纯?,或使用at命令。
在unix中,在目標機器上編寫一個文件,用以啟動自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23點對數(shù)據(jù)庫備份
0
12,18 * * * backup_archive.sh
[$nbsp][$nbsp][$nbsp][$nbsp]#表示每天12點,18點備份
Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of
week,command)組成,域之間用空格或Tab分隔開來
上述內(nèi)容就是RMAN具體的使用方法是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。