如何透過.dbf檔案還原資料庫

ocpDBAboy發表於2018-03-15
一切從實際需求出發!!!
需求:
我方(乙方)需要一套完善的測試環境,基於甲方提供的his測試庫來搭建自己的環境
現有資源:
一臺作業系統是Windows Server2008R2_enterprise_64bit的伺服器
甲方提供資源:
測試伺服器作業系統是WindowsServer2003_64bit
資料庫是10g(Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod)
資料庫字符集US7ASCII
資料庫檔案.dbf總大小178G(rar壓縮包是22.9G,rar對於.dbf檔案壓縮率是:n=22.9/178=0.129=13%)

初步執行計劃如下:
方案1(保守):
1.建立虛擬機器(建必要的快照),在虛擬機器上搭建WindowsServer2003,安裝Oracle10g(安裝軟體找資訊科索取,要求安裝包的版本與測試環境一致)
2.冷備測試庫還原10g

方案2(沒試過,試一次的時間週期也挺長的1-2天):
上述若失敗,則
1.建立虛擬機器(建必要的快照),在虛擬機器上搭建WindowsServer2008r2
2.expdp 10g全庫到11g(按schema導不現實,dba_users有7352個)

方案3(pride連線報錯):
上述若失敗,則
1.expdp 10g34個schema(透過dba_objects.owner篩選的來)到11g,然後pride連線報錯跟蹤!

方案4(至今未測試過):
上述若失敗,則
1.sqldeveloper 資料庫複製

方案5(死馬當活馬醫):
上述若失敗,則
1.在windows2008r2,11g上還原冷備10g

若上述5種都失敗,那就game over了!

結果第一種方案是最佳的,時間週期最少。
給.dbf檔案打壓縮包和複製移動到恢復的機器上消耗時間太長(大多時候白天覆雜,晚上接著幹)。

一定要知曉原理(Oracle的體系結構)!!!
如,Oracle的三個狀態分別讀取什麼檔案,這些檔案用來幹嘛?

好了,言歸正傳,講講方案1的成功實踐。

1.首先打包測試庫的.dbf檔案(178G,壓縮之後傳快且不容易丟包)
2.建立Windows Server2003_64Bit虛擬機器
3.安裝oracle10g軟體(僅安裝資料庫軟體),ORACLE_HOME目錄(他這裡是C:\oracle\product\10.2.0\db_2)與提供的測試庫一致。
4.將複製的.dbf解壓到oradata檔案路徑下。
5.將測試庫的pfile檔案複製到C:\oracle\product\10.2.0\db_2\database\initorcl.ora目錄下
在測試庫需要執行的語句:
create pfile from spfile;
6.獲取測試庫的控制檔案建立語句
在測試庫需要執行的語句:
alter database backup controlfile to trace;
show parameter dump
得到user_dump_dest=路徑(在該路徑下找到最新生成.trc<生成2個檔案.trc,相對大些的是要找的>,更改控制檔案<改一下對應的.dbf現在的路徑>)

7.建立例項
oradim -new -sid orcl
set oracle_sid=orcl
sqlplus / as sysdba
startup 

注意,提供的C:\oracle\product\10.2.0\db_2\下的幾個資料夾:admin、flash_recovery_area最好也複製過來。
參考連結:

dbtiger  2018,3,15
good luck!

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

相關文章