oracle rman 異機還原測試--set newname
同事進行年末的異機還原測試,到快還原完成才發現空間不足.原來,原資料庫伺服器的硬碟分割槽是/u02,/u03,/u09各200G,
而還原測試是把rman的備份複製到另一臺伺服器上做的,這個伺服器的硬碟分割槽是/u02,/u03,/u09,/u10各120G,而且
實際資料庫在/u02,/u03所佔都空間都有130多G了,超過了目標資料庫的/u02,/u03的120G.同事準備對硬碟重新進行分
區再做還原.但我想到rman可以透過set newname把檔案還原到其他地方.
具體實施如下(oracle 10.2.0.4):
[oracle@srhel10g02 dbs]$ ORACLE_SID=rh10g02
[oracle@srhel10g02 dbs]$ rman target /
RMAN> startup nomount;
RMAN> restore spfile from '/u09/rman/rh10g03/control/c-3997128934-20141127-01';
RMAN> shutdown immediate;
RMAN> startup nomount; --注意nomount之前,一定要記得把spfile中指定的各dump等的目錄先建好
RMAN> restore controlfile from '/u09/rman/rh10g03/control/c-3997128934-20141127-01';
RMAN> sql 'alter database mount';
RMAN>quit
[oracle@srhel10g02 dbs]$ sqlplus / as sysdba
SQL> select name from v$datafile; --檢視控制檔案中記錄的檔案資訊,用來建對應目錄
/*產生要需要set newname的檔案指令碼,等一下rman用到,這裡是把超過100g後的檔案都移/u10,因為公司規範單檔案最大為4G,所以用100/4
取大概會超過100g之後檔案,當然具體也可以根據自己的情況*/
SQL>select rman_set from
(select 'set newname for datafile '||rfile#||' to '''||replace(name,substr(name,1,4),'/u10')||''';' rman_set,
row_number() over (partition by substr(name,1,4) order by rfile# ) rn
from v$datafile) where rn>100/4;
SQL>quit
[oracle@srhel10g02 dbs]$ rman target /
RMAN>crosscheck backup;
RMAN>delete expired backup;
RMAN>catalog start with '/u09/rman/rh10g03';
RMAN>run
{
allocate channel d1 type disk maxpiecesize 4000m;
allocate channel d2 type disk maxpiecesize 4000m;
allocate channel d3 type disk maxpiecesize 4000m;
allocate channel d4 type disk maxpiecesize 4000m;
set newname for datafile 29 to '/u10/oradata/rh10g02/user001.dbf'; --這裡的set newname是取處上面sqlplus裡產生的結果
restore database;
switch datafile all; --這步一定要有,不然控制檔案中的檔案位置資訊不會改過來
recover database;
release channel d4;
release channel d3;
release channel d2;
release channel d1;
}
RMAN>alter database open resetlogs;
而還原測試是把rman的備份複製到另一臺伺服器上做的,這個伺服器的硬碟分割槽是/u02,/u03,/u09,/u10各120G,而且
實際資料庫在/u02,/u03所佔都空間都有130多G了,超過了目標資料庫的/u02,/u03的120G.同事準備對硬碟重新進行分
區再做還原.但我想到rman可以透過set newname把檔案還原到其他地方.
具體實施如下(oracle 10.2.0.4):
[oracle@srhel10g02 dbs]$ ORACLE_SID=rh10g02
[oracle@srhel10g02 dbs]$ rman target /
RMAN> startup nomount;
RMAN> restore spfile from '/u09/rman/rh10g03/control/c-3997128934-20141127-01';
RMAN> shutdown immediate;
RMAN> startup nomount; --注意nomount之前,一定要記得把spfile中指定的各dump等的目錄先建好
RMAN> restore controlfile from '/u09/rman/rh10g03/control/c-3997128934-20141127-01';
RMAN> sql 'alter database mount';
RMAN>quit
[oracle@srhel10g02 dbs]$ sqlplus / as sysdba
SQL> select name from v$datafile; --檢視控制檔案中記錄的檔案資訊,用來建對應目錄
/*產生要需要set newname的檔案指令碼,等一下rman用到,這裡是把超過100g後的檔案都移/u10,因為公司規範單檔案最大為4G,所以用100/4
取大概會超過100g之後檔案,當然具體也可以根據自己的情況*/
SQL>select rman_set from
(select 'set newname for datafile '||rfile#||' to '''||replace(name,substr(name,1,4),'/u10')||''';' rman_set,
row_number() over (partition by substr(name,1,4) order by rfile# ) rn
from v$datafile) where rn>100/4;
SQL>quit
[oracle@srhel10g02 dbs]$ rman target /
RMAN>crosscheck backup;
RMAN>delete expired backup;
RMAN>catalog start with '/u09/rman/rh10g03';
RMAN>run
{
allocate channel d1 type disk maxpiecesize 4000m;
allocate channel d2 type disk maxpiecesize 4000m;
allocate channel d3 type disk maxpiecesize 4000m;
allocate channel d4 type disk maxpiecesize 4000m;
set newname for datafile 29 to '/u10/oradata/rh10g02/user001.dbf'; --這裡的set newname是取處上面sqlplus裡產生的結果
restore database;
switch datafile all; --這步一定要有,不然控制檔案中的檔案位置資訊不會改過來
recover database;
release channel d4;
release channel d3;
release channel d2;
release channel d1;
}
RMAN>alter database open resetlogs;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1364840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN SET NEWNAME
- rman set newname switch 用法
- RMAN : set newname for命令的一點研究
- RMAN資料庫還原測試資料庫
- 關於rman中set newname的探討
- SET NEWNAME FOR
- [20160720]rman set newname for datafile
- 使用RMAN對資料庫進行異機還原資料庫
- oracle10g_rman_syntac testing_set newname_switch tempfile_datafile_all_tagOracle
- ORACLE RMAN備份及還原Oracle
- Oracle RMAN異機恢復Oracle
- ORACLE RMAN異機異目錄恢復Oracle
- ORACLE RMAN 還原歸檔日誌Oracle
- NBU異機還原oracle,使用者不同問題Oracle
- oracle的RMAN異機恢復Oracle
- Oracle RMAN恢復測試Oracle
- Oracle RMAN還原測試錯誤ORA-19571 ORA-19600 ORA-19601Oracle
- Oracle rman duplicate遷移測試Oracle
- Oracle 12c RMAN 異機恢復Oracle
- Oracle 11g RMAN 異機恢復Oracle
- 解決set newname 極慢的問題
- 初試Oracle的RMAN異地異系統恢復…………失敗…………Oracle
- rman恢復方案和oracle異機恢復Oracle
- rman還原恢復操作
- web測試與手機app測試的異同WebAPP
- 請問RMAN備份異機還原,備份之後的歸檔日誌在RMAN中怎麼處理?
- 【備份恢復】set newname切換日誌
- rman還原控制檔案(四)
- rman還原控制檔案(三)
- rman還原控制檔案(二)
- rman還原控制檔案(一)
- oracle10g_rman_語法測試_1Oracle
- oracle10g_rman_語法測試_2Oracle
- oracle10g_rman_語法測試_3Oracle
- oracle10g_rman_語法測試_4Oracle
- oracle10g_rman_語法測試_5Oracle
- oracle10g_rman_語法測試_6Oracle
- oracle10g_rman_語法測試_7Oracle