一、backup操作

 

備機集

 

1.設置備份標記

 

backup database tag=’full_bak1′;

 

注:每個標記必須唯一,相同的標記可以用於多個備份只還原最新的備份。

 

2.設置備份組大小(一次備份的所有結果為一個備份組,要注意備份組大小)

 

backup database maxsetsize=100m tag=’datafile1′;

 

注:maxsetsize限定備份組的大小。所以必須大於資料庫總資料檔案的大小,否則會報錯。

 

RMAN-06183: datafile or datafile copy larger than MAXSETSIZE: file# 1 /data/oradata/system01.dbf

 

3.設置備份片大小(磁帶或檔案系統限制)

 

run {

 

allocate channel c1 type disk maxpicecsize 100m format ‘/data/backup/full_0_%U_%T’;

 

backup database tag=’full_0′;

 

release channel c1;

 

}

 

可以在allocate子句中設定每個備份片的大小,以達到磁帶或系統限制。

 

也可以在configure中設置備份片大小。

 

Configure channel device type disk maxpiecesize 100 m;

 

configure channel device type disk clear;

 

4.備份組的保存策略

 

backup database keep forever; –永久保留備份檔案

 

backup database keep until time=’sysdate+30′; –保存備份30天

 

5.重寫configure exclude命令

 

backup databas noexclude keep forever tag=’test backup’;

 

6.檢查資料庫錯誤

 

backup validate database;

 

使用RMAN來掃描資料庫的物理/邏輯錯誤,並不執行實際備份。

 

7.跳過離線,不可存取或唯讀檔案

 

backup database skip readonly;

 

backup database skip offline;

 

backup database skip inaccessible;

 

backup database ship readonly skip offline ship inaccessible;

 

8.強制備份

 

backup database force;

 

9.基於上次備份時間備份資料檔案

 

1>只備份添加的新資料檔案

 

backup database not backed up;

 

2>備份」在限定時間週期內」沒有被備份的資料檔案

 

backup database not backed up since time=’sysdate-2′;

 

10.備份操作期間檢查邏輯錯誤

 

backup check logical database;

 

backup validate check logical database;

 

11.生成備份副本

 

backup database copies=2;

 

12.備份控制檔

 

backup database device type disk includ current controlfile;

 

建立映射副本

 

1、建立資料檔案映射副本

 

RMAN>backup as copy format=’c:\df_5.dbf’ datafile 5; 或者

 

RMAN>copy datafile 5 to ‘c:\df_5.dbf’ ;

 

2、建立控制檔映射副本

 

RMAN>backup as copy format=’c:\demo.ctl’ current controlfile; 或者

 

RMAN>copy current controlfile to ‘c:\demo.ctl’;

 

3、建立歸檔日誌映射副本

 

RMAN>backup as copy format=’c:\arc10.log’ archivelog sequence 10; 或者

 

RMAN>copy archivelog ‘c:\demo\archive\arc00020_012345.001′ to ‘c:\arc20.log’;

 

4、並行化建立映射副本

 

RMAN>configure device type disk parallelism 3;

 

RMAN>backup as copy format =’c:\df_%f.dbf’ datafile 5,6,7 ;

 

RMAN>configure device type disk clear;

 

5、指定映射副本標記

 

RMAN>backup as copy format=’c:\df_%f.dbf’ datafile 5 tag=df_5; 或者

 

RMAN>copy datafile 5 to ‘c:\df_%f.dbf’ tag=df_5;

 

二、RMAN恢復操作

 

RMAN完全恢復

 

1、恢復資料庫

 

1)、所有資料檔案被刪除

 

c:\rman target sys/oracel@test nocatalog

 

RMAN>startup force mount

 

RMAN> run {

 

restore databse ;

 

recover database;

 

sql ‘alter database open’ ;

 

}

 

2)、資料檔案所在磁片出現硬體故障

 

RMAN> run {

 

startup force mount;

 

set newname for datafile 1 to ‘c:\demo\system01.dbf’;

 

set newname for datafile 2 to ‘c:\demo\dundotbs01.dbf’;

 

set newname for datafile 3 to ‘c:\demo\sysaux01.dbf’;

 

set newname for datafile 4 to ‘c:\demo\users01.dbf’;

 

set newname for datafile 5 to ‘c:\demo\example01.dbf’;

 

set newname for datafile 6 to ‘c:\demo\test0.dbf’;

 

restore database;

 

switch datafile all;

 

recover database;

 

sql ‘alter database open ‘;

 

}

 

2、恢復SYSTEM表空間的資料檔案

 

1)、SYSTEM表空間的資料檔案被誤刪除

 

RMAN>run {

 

startup force mount;

 

restore datafile 1;

 

recover datafile 1;

 

sql ‘alter database open’ ;

 

}

 

2)、SYSTEM表空間資料檔所在的磁片出現故障

 

RMAN> run {

 

startup force mount;

 

set newname for datafile 1 to ‘c:\demo\system01.dbf’;

 

restore datafile 1;

 

switch datafile 1;

 

recover datafile 1;

 

sql ‘alter database open’;

 

}

 

3、在OPEN狀態下恢復關閉後意外遺失資料檔

 

1)、資料檔案被刪除

 

RMAN>run {

 

startup force mount;

 

sql ‘alter database datafile 4 offline’;

 

sql ‘alter database open ‘;

 

restore datafile 4;

 

recover datafile 4;

 

sql ‘alter database datafile 4 online’;

 

}

 

2)、資料檔案所在的磁片出現損壞

 

RMAN>run {

 

startup force mount;

 

sql ‘alter database datafile 4 offline’;

 

sql ‘alter database open ‘;

 

set newname for datafile 4 to ‘c:\demo\user01.dbf’;

 

restore datafile 4;

 

switch datafile 4;

 

recover datafile 4;

 

sql ‘alter database datafile 4 online’;

 

}

 

4、在OPEN狀態下恢復打開時意外丟失的資料檔案

 

1)、資料檔案被誤刪除

 

RMAN>run {

 

sql ‘alter database datafile 4 offline’;

 

restore datafile 4;

 

recover datafile 4;

 

sql ‘alter database datafile 4 online’;

 

}

 

2)、資料檔案所在磁片出現故障

 

RMAN>run {

 

sql ‘alter database datafile 4 offline’;

 

set newname for datafile 4 to ‘c:\demo\user01.dbf’;

 

restore datafile 4;

 

switch datafile 4 ;

 

recover datafile 4;

 

sql ‘alter database datafile 4 online’;

 

}

 

5、在OPEN狀態下恢復未備份的資料檔案(創造新資料檔案後沒有進行過備份)

 

1)、資料檔案被誤

 

RMAN>run {

 

startup force mount;

 

sql ‘alter database datafile 7 offline ‘;

 

sql ‘alter database open’;

 

restore datafile 7;

 

recover datafile 7;

 

sql ‘alter database datafile 7 online’;

 

}

 

2)、資料檔案所在磁片出現故障

 

RMAN>run {

 

startup force mount;

 

sql ‘alter database datafile 7 offline ‘;

 

sql ‘alter database open’;

 

set newname for datafile 7 to ‘c:\demo\user04.dbf’;

 

restore datafile 7;

 

switch datafile 7;

 

recover datafile 7;

 

sql ‘alter database datafile 7 online’;

 

}

 

6、恢復表空間

 

1)、表空間被刪除

 

RMAN>run {

 

sql ‘alter tablespace users offline for recover’;

 

restore tablespace users;

 

recover tablespace users;

 

sql ‘alter tablespace users online’;

 

}

 

2)、表空間的資料檔案所在磁片出現故障

 

RMAN>run {

 

sql ‘alter tablespace users offline for recover’;

 

set newname for datafile 4 to ‘c:\demo\user01.dbf’;

 

restore tablespace users;

 

switch tablespace users;

recover tablespace users;

sql ‘alter tablespace users online’;

}

7、資料塊介質恢復

RMAN>blockrecover device type disk datafile 5 block 20,21,100 ;

RMAN不完全恢復

1、基本時間恢復

c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss

c:\rman target sys/dddddd@train nocatalog

RMAN>run{

startup force mount;

set until time=’2010-09-09 13:00:00′;

restore database;

recover database;

sql ‘alter database open resetlogs’;

}

2、基於SCN恢復

RMAN>run {

startup force mount;

set until scn=123456;

restore database;

recover database;

sql ‘alter database open resetlogs’;

}

3、基於日誌序號恢復

RMAN>run {

startup force mount;

set until sequence=58;

restore database;

recover database;

sql ‘alter database open resetlogs’;

}

4、基於備份控制檔案修復

c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss

c:\rman target sys/oracle@test nocatalog

RMAN>startup force nomount;

RMAN>set dbid=1113606269;

RMAN>restore controlfile from autobackup maxseq 6;

RMAN>alter database mount;

RMAN>run {

set until time=’2010-09-5 12:00:08′;

restore database;

recover database;

sql ‘alter database open resetlogs;

}

當執行了上述4種不完全恢復之後,建議刪除早期的所有備份,並重新備份資料庫

RMAN>run {

delete noprompt backup;

delete noprompt copy;

backup database format=’c:\backup\%d_%s.bak’;

sql ‘alter system archive log current’;

 

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()