經驗總結:一次Oracle數據庫冷備份恢複過程

  近日,我想把oracle數據庫從我的電腦上遷移到機房的電腦上,一開始采用dmp/imp方式,但是發現需要導出很多用戶,太麻煩。所以決定采用冷備份/冷恢複的方式。
  過程如下:
  通過v$controlfile查看控制文件,通過v$logfile查看重做日志文件,通過V$DATAFILE查看數據文件,發現他們都處于同一文件夾中i:\oracle\oradata\test中,索性都複制到另一台機器的e:\oracle\oradata\test中,複制之前shutdown系統。還複制了inittest.ora後來發現他指向另一個init.ora,又複制了這個init.ora,還複制了一個口令文件PWDtest.ora到機房電腦的相應位置。startup後,發現無法運行,我想應該是兩個oracle安裝路徑不同的原因,首先修改了init.ora中的控制文件的路徑,還是不行,我想應該修改控制文件中的數據文件路徑信息,如何修改呢?網上一頓查找,終于找到了如下方法:
  首先,在原電腦上:
  1. 備份數據庫中的數據,以防不測。
  2. svrmgrl
  3. svrmgrl>connect internal/oracle
  4. svrmgrl>alter database backup controlfile to trace; 備份控制文件
  5. 在/home/oracle//admin/ora7/udump下可找到最新生成的TRACE文件,假設爲ora_15269.trc,此文件就包含了當前控制文件的參數及生成語法。
  6. 提取ora_15269.trc中有關控制文件生成的語句另存爲creatctl.sql。7. 修改creatctl.sql中的路徑信息;8.然後,複制到目標電腦上,並且在目標電腦上9. svrmgrl
  10. svrmgrl>connect internal
  11. svrmgrl>shutdown immediate
  12. svrmgrl>@creatctl.sql
  13. svrmgrl>alter database open;數據庫遷移成功.]
  總結:
  冷備份需要在oracle shutdown的情況下,拷貝如下文件:1.數據文件;2.控制文件;3。日志文件;4。init數據庫實例名.ora文件,及其內部指向的init.ora文件;5 口令文件PWD數據庫實例名.ora;然後,安裝oracle,實例名和以前相同,安裝路徑等最好也相同,shutdown,拷貝上述文件到相應位置,如果安裝位置和以前不同,需要修改init*.ora,和控制文件中的路徑信息。