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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RMAN還原測試錯誤ORA-19571 ORA-19600 ORA-19601Oracle
- Oracle RMAN恢復測試Oracle
- [20201103]set newname for datafile.txt
- Oracle rman duplicate遷移測試Oracle
- rman備份異機恢復(原創)
- NBU異機還原oracle,使用者不同問題Oracle
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- 【Oracle19c】Oracle19c rman使用簡單測試Oracle
- RMAN備份異機恢復
- rman 還原歸檔日誌(restore archivelogRESTHive
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- rman duplicate建立異地auxiliary Database oracle_11g oracle_sid不同UXDatabaseOracle
- rman duplicate建立異地auxiliary Database oracle_11g oracle_sid相同UXDatabaseOracle
- web測試與手機app測試的異同WebAPP
- ORACLE rman與RMAN-00054&ORA-09945Oracle
- RMAN備份與恢復測試
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- 透過RMAN備份standby database成功恢復還原Database
- oracle 異機恢復Oracle
- rman oracle11g_單機實用配置Oracle
- 【RMAN】Oracle rman 常用命令參考Oracle
- 訓練集(train set),驗證集(validation set)和測試集(test set)AI
- 【DG】備庫RMAN還原方式搭建DG(不使用duplicate命令)
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(1)Oracle 10g
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(2)Oracle 10g
- 【異常解決】springBoot單元測試es報錯availableProcessors is already set to [12], rejecting [12]Spring BootAI
- Python異常處理機制、除錯、測試Python除錯
- 通過rman為客戶實現linux下oracle11.2.0.4到windows下oracle同版本資料庫的異機恢復。LinuxOracleWindows資料庫
- 【PDB】pdb閃回,Oracle還原點Oracle
- Oracle replayc測試Oracle
- .NET 變異測試
- RMAN備份恢復典型案例——異機恢復未知DBID
- Oracle RMAN備份實戰Oracle
- Oracle OCP(60):RMAN 備份Oracle
- Oracle 11G RAC複製備庫RMAN-03002 RMAN-05501 RMAN-03015 RMAN-03009 RMAN-10038Oracle
- Oracle匯出資料庫與還原Oracle資料庫
- oracle 還原 .dmp 格式備份檔案Oracle
- ORACLE壓力測試Oracle
- Oracle TDE加密測試Oracle加密