SQL>conn /as sysdba
SQL>create user rman identified by rman;
SQL>grant connect,resource to rman;
SQL>grant recovery_catalog_owner to rman;
c:\>rman
#進(jìn)入rman,并以rman用戶(hù)登錄
rman>connect catalog rman/rman
#創(chuàng )建恢復目錄
rman>create catalog;
#或者
c:\>rman target sys/sys@resorce_dtzx catalog rman/rman
#注冊目標數據庫
rman>register database
#將目標數據庫與恢復目錄進(jìn)行同步化
#該操作保證目標庫與恢復目錄的控制文件的同步化。系統莫認7天左右同步一次.
rman>resync catalog;
2.RMAN命令分類(lèi)
#啟動(dòng)關(guān)閉數據庫
rman>shutdown immediate
rman>startup
rman>startup force
rman>startup mount force
rman>startup mount pfile=/$ORACLE_HOME/.../initora9i.ora
rman>alter database open
#數據庫備份與恢復命令
rman>copy datefile 2 to ‘d:\backup\undotbs.dbf‘
rman>backup database;
rman>backup tablespace tools;
rman>restore database;
rman>recover database;
rman>restore tablespace tools;
rman>recover tablespace tools;
#恢復目錄維護命令
rman>report schema;
rman>list copy;
rman>change datafilecopy ‘d:\backup\undotbs.dbf‘ delete
rman>backup tablespace users;
rman>list backup;
rman>delete backup;
#
#使用copy命令備份數據庫
#
#使用自動(dòng)通道備份數據文件以及控制文件
RMAN> copy
2> DATAFILE 1 TO ‘/oracle/copy_data/datafile_1.dbf‘,
3> DATAFILE 2 TO ‘/oracle/copy_data/datafile_2.dbf‘,
4> DATAFILE 3 TO ‘/oracle/copy_data/datafile_3.dbf‘,
5> DATAFILE 4 TO ‘/oracle/copy_data/datafile_4.dbf‘,
6> CURRENT CONTROLFILE TO ‘/oracle/copy_data/control_cp.ctl‘;
#
#使用backup命令備份數據庫
#
#備份數據庫,忽略只讀表空間
rman>backup database skip readnoly;
#備份數據庫,而不備份所有離線(xiàn)表空間
rman>bakcup database skip offline
#備份數據庫,忽略只讀以及離線(xiàn)的表空間
rman>backup database skip offline skip readonly;
#制定備份文件格式
#默認情況下,數據庫備份方式是全備份方式?
rman>backup database format ‘/oracle/bakcup/%U‘;
#backup增量備份
rman>backup incremental level= <0,1,2,3> DATABASE;
rman>backup incremental level =0 database;
#僅備份系統表空間system自最近一次1級增量備份以后改變的數據塊
rman>backup incremental level =1 tablespace system;
#僅備份表空間sales自最近一次1級或0級以后改變的數據塊
rman>backup incremental levle = 2 cumulative tablespace sales;
8.使用Rman恢復數據庫
.RESTORE:將備份數據復制到指定目錄
.RECOVER:對數據庫實(shí)施同步恢復.
#語(yǔ)法格式
rman>restore <Object> <Option>;
<Object>包括:datafile,tablespace,database,cotrolfile to,Archivelog All
<Option>包括:....
#
#1.恢復數據庫的一個(gè)實(shí)例
#
#將數據庫啟動(dòng)到MOUNT狀態(tài)下
SQL>startup mount;
rman>restore database;
#delete archivelog:可選,恢復結束時(shí)自動(dòng)顯示已經(jīng)使用過(guò)的歸檔日志;
#skip tablespace temp:恢復時(shí)跳過(guò)temp表空間.
rman>recover database delete archivelog skip tablespace temp;
SQL>alert database open;
#
#2.恢復表空間
#
#恢復表空間時(shí),數據庫必須在運行狀態(tài)下,數據庫在關(guān)閉狀態(tài)時(shí)表空間是不能操作的.
#在恢復表空間之前,先把要恢復的表空間離線(xiàn),然后實(shí)施表空間恢復,恢復之后再將
#表空間聯(lián)機.tax_data為表空間名
#
rman>sql ‘a(chǎn)lter tablespace tax_data offline‘;
rman>restore tablespace tax_data;
rman>recover tablespace tax_data;
rman>sql ‘a(chǎn)lter tablespace tax_data online‘;
#
#3.恢復控制文件
#
#恢復控制文件,數據庫只能啟動(dòng)到nomount狀態(tài).
#
SQL>startup nomount
#復制控制文件的備份文件
rman>restore controlfile;
#將數據庫修改到mount狀態(tài)下,恢復數據庫.
rman>alter database mount;
rman>restore database;
rman>recover database;
SQL>alter database open resetlogs;
#
#4.恢復一個(gè)沒(méi)有備份的數據文件
#
#數據文件沒(méi)有備份時(shí),不能使用resotre命令,必須在物理上創(chuàng )建一個(gè)新的數據文件,通過(guò)
#日志對新數據文件進(jìn)行恢復.
#將破壞的數據文件離線(xiàn)
rman>sql "alter database datafile ‘‘/u01/oracle/sales01.dbf‘‘ offline";
#創(chuàng )建一個(gè)新的,空的數據文件
rman>sql "alter database create datafile ‘‘/u01/oracle/sales01.dbf‘‘";
#通過(guò)日志恢復數據文件
rman>recover datafile ‘/u01/oracle/sales01.dbf‘;
#將數據文件聯(lián)機
rman>sql "alter database datafile ‘‘/u01/oracle/sales01.dbf‘‘ online";
#
#5.將數據文件恢復到一個(gè)新的目錄中
#
#在磁盤(pán)損壞時(shí),需要將數據文件恢復到另一個(gè)目錄中。這樣可使用set newname命令將
#數據文件路徑修改為新路徑。
#語(yǔ)法:
#set newname for datafile ‘原數據文件名稱(chēng)及路徑‘
# to‘目標數據文件名稱(chēng)及路徑‘
#switch datafile ‘原數據文件名稱(chēng)及路徑‘;
rman>run
{
set newname for datafile ‘disk1/oracle/tbs_1.f‘ to ‘/disk2/oracle/tbs_1.f‘;
sql ‘a(chǎn)lter database datafile ‘/disk1/oracle/tbs_1.f‘ offline‘;
restore datafile ‘/disk1/oracle/tbs_1.f‘;
switch datafile ‘/disk1/oracle/tbs_1.f‘;
recover datafile ‘/disk1/oracle/tbs_1.f‘;
sql ‘a(chǎn)lter datbase datafile ‘disk1/oracle/tbs_1.f‘ online‘;
}
#一次恢復多個(gè)文件
rman>run
{
sql ‘a(chǎn)lter tablespace cust_data offline immediate‘;
sql ‘a(chǎn)lter tablespace emp_data offline immediate‘;
#將數據文件恢復到新目錄
set newname for datafile ‘disk1/oracle/tbs_1.f‘ to ‘/disk2/oracle/tbs_1.f‘;
set newname for datafile ‘disk1/oracle/tbs_2.f‘ to ‘/disk2/oracle/tbs_2.f‘;
set newname for datafile ‘disk1/oracle/tbs_3.f‘ to ‘/disk2/oracle/tbs_3.f‘;
restore tablespace cust_data,emp_data;
#修改控制文件中數據文件路徑
switch datafile all;
recover tablespace cust_data,emp_data;
sql ‘a(chǎn)lter tablespace cust_data online‘;
sql ‘a(chǎn)lter tablespace emp_data online‘;
}
#
#6.不完全恢復
#
$NLS_LANG = "simplified chinese"_china.zhs16gbk
$export NLS_LANG
$NLS_DATE_PROMAT = "YYYY-MM-DD HH24:MI:SS"
RUN
{
SET UNTILL TIME ‘2002-10-15 09:00:00‘;
restore database;
recover database;
sql ‘a(chǎn)lter database open resetlogs‘;
}
#
#7.多通道恢復
#
#
#8.非歸檔方式下恢復
#
rman>restore database;
rman>recover database noredo;
SQL>alter database open resetlogs;
聯(lián)系客服