Oracle異地資料庫恢復

yepkeepmoving發表於2016-11-07
最近一臺DB伺服器硬體故障,經過各種嘗試無法啟動伺服器,那麼要想做DB恢復一般有兩種常用方式:
1、做硬碟冷遷移(前提不是硬碟損壞)
2、做異地資料恢復
如果對資料要求較高,那麼我們推薦使用第一種方式,即硬碟冷遷移(將損壞伺服器的硬碟插拔到無硬體故障的伺服器上)。
如果想盡快恢復,又無法到機房及時完成更換硬體,則透過異地資料恢復的方式。(這種方式有幾種缺點:只是將每天的rman全備同步到備份伺服器,如果備機沒有做系統初始化、資料庫軟體安裝,需要重灌系統、資料庫等,另外就是有異地、異機備份的資料、防火牆配置、hosts配置、tnsnames.ora、listener.ora、rman全備、spfile/pfile、controlfile備份等)
鑑於我恰好有兩臺伺服器安裝了資料庫、系統也做了初始化,因此我採用的異地備份資料還原的方式,具體步驟如下:
1)系統、資料庫初始化
2)將異地備份檔案cp到備機,主要包括rman全備(歸檔、全備、控制檔案、spfile檔案備份)、hosts、iptables、tnsnames.ora、listener.ora、.bash_profile
3)將系統備份檔案還原、主機名、網路修改、環境變數檔案還原等,重啟伺服器
4)將spfile透過strings生成pfile,並調整裡面的相應的檔案路徑為新伺服器的路徑
5)透過pfile啟動資料到nomount,然後透過create spfile from pfile生成spfile,關閉資料並在此啟動到nomount
6)透過rman target /連線到資料庫,restore controlfile from '/U01/app/oracle/tools/20161104/full_ORCL_20161104_3842';還原控制檔案,然後alter database mount ;啟動到mount狀態
7)透過下面命令獲取到所有資料檔案重新命名語句
col name for a100;
set line 200;
set pagesize 20000;
select file#,name from v$database;
cat aa |while read line;do  num=`echo $line |awk '{print $1}'`; name=`echo $line |awk '{print $2}'|awk -F'/' '{print $8}'`; echo "set newname for datafile ${num} to '/U01/app/oracle/oradata/orcl11g/${name}' ;"; done
8)透過下面命令在rman中完成資料庫的資料檔案restore
run
{
set newname for datafile 1 to '/U01/app/oracle/oradata/orcl11g/system01.dbf' ;
set newname for datafile 2 to '/U01/app/oracle/oradata/orcl11g/sysaux01.dbf' ;
set newname for datafile 3 to '/U01/app/oracle/oradata/orcl11g/undotbs01.dbf' ;
set newname for datafile 4 to '/U01/app/oracle/oradata/orcl11g/users01.dbf' ;
......
set newname for datafile 25 to '/U01/app/oracle/oradata/orcl11g/XXX.dbf' ;
restore database;
switch datafile all;
} ;
9)透過下面命令做資料庫恢復
recover database until scn 2299;
10)由於異地恢復,redo日誌需要重建,因此做介質恢復後開啟資料庫需要透過resetlogs方式開啟。
alter database open resetlogs;

備註:alter database clear logfile group 2; 清空日誌 ,如果有ORA-00392: log 3 of thread 1 is being cleared, operation not allowed,需要清理。
         alter  system swith logfile ;
         alter database add logfile member '' to group 1;
         alter database drop logfile member 'xxxx';








來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27067062/viewspace-2127956/,如需轉載,請註明出處,否則將追究法律責任。

相關文章