ORACLE10G非歸檔模式下異機遷庫(文件遷移)

環境信息:

源庫 目標庫
操做系統 WIN7 WIN SVR 2012 R2
系統盤符 C,D,E,F C,D
IP x.x.x.216 x.x.x.112
數據庫版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 64bi
存儲方式 單實例 單實例
ORACLE_HOME D:\oracle\product\10.2.0\db_1 D:\oracle\product\10.2.0\db_1
ORACLE_SID ORCL ORCL

數據庫遷移思路:

  • 目標系統建立新的數據庫
  • 將源庫中全部控制文件,數據文件複製到目標庫中
  • 重建控制文件修改相應路徑(若是文件路徑有變動)
  • 介質恢復全部數據文件
  • 啓動數據庫

具體恢復步驟:

  1. 源庫中查詢控制文件、REDO 文件、數據文件位置而且記錄下來,而且查詢數據庫 DBID 記錄下來
select name from v$datafile; 
select name from v$controlfile; 
select * from v$logfile; 
select dbid from v$database;
  1. 進行切換日誌組,觸發檢查點,確保數據由髒塊進入數據文件中。
alter system switch logfile;
alter system checkpoint; 
shutdown immediate;//可選[取決因而否停機遷庫]
  1. 關閉目標數據庫 (如下皆在目標數據庫進行操做)
shutdown immediate;
  1. 以 notmount 模式啓動,而且設置數據庫 DBID 後關閉數據庫
startup nomount; 
set dbid=1526707455;//(源庫DBID) 
shutdown immediate;
  1. 將全部控制文件、REDO 文件及數據庫文件複製到新的系統環境中(由於 216 系統盤與 112 系統盤不一致,故移動到目標庫 D 盤某一固定文件夾中)
    由於本次複製並沒有參數文件故控制文件(3 個)需放在 ORACLE10G 默認控制文件的路徑下 D:\oracle\product\10.2.0\oradata\orcl
  2. 啓動 mount 模式啓動目標數據庫
startup mount;
  1. 導出控制文件重建語句
alter database backup controlfile to trace as 'c:\REBUILDCTL.SQL';
  1. 編輯 REBUILDCTL.SQL 文件夾,將數據文件,REDO 文件,臨時文件等替換爲放置到目標系統後的相對文件路徑。
    html

    (需修改的路徑不止途中圈出的,需修改全部路徑爲目標系統規劃路徑)
  2. 關閉數據庫,而且運行 REBUILDCTL.SQL 文件數據庫

shutdown immediate; 
@c:\REBUILDCTL.SQL;
  1. 以 mount 模式進行啓動,而且對全部數據文件進行介質恢復(由於重建控制文件會致使 scn 更新,致使與數據文件中不統一)
recover database;
  1. 清除重作日誌打開數據庫
alter database open resetlogs;
  1. 驗證數據庫(驗證源數據庫中的數據是否到目標數據庫中)

PSwindows

  1. 以前想經過 windows 命令建立虛擬盤符 E,F 來避免爲了修改數據文件的路徑而去對控制文件進行重建,然而發現 oracle 識別不到虛擬盤符的路徑,因此仍是得老老實實得去重建修改掉相對路徑。
  2. 其餘參考地址:
  3. https://jingyan.baidu.com/article/ca00d56c6d0d9de99eebcf82.html
  4. https://www.cnblogs.com/Snowfun/articles/4805048.html
相關文章
相關標籤/搜索