首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle 資料庫異機手動遷移完整操作步驟 (冷備份法)

     編輯:關於SqlServer

大型 Oracle 資料庫跨平台/跨目錄冷備份遷移實戰

適用於資料量大 (TB 級)、無法容忍長時間匯出匯入、目標機器目錄結構不同 (如 /oracle → /u01/oracle) 的場景。

環境假設

  • 來源 (Server A):$ORACLE_BASE=/oracle, $ORACLE_HOME=/oracle/product/9.2.0, SID=oraLinux
  • 目標 (Server B):$ORACLE_BASE=/u01/oracle, $ORACLE_HOME=/u01/oracle/product/9.2.0, 同 SID
  • OS:RedHat Fedora Core 1 / Oracle 9.2.0.1 (原理通用於所有版本)

操作步驟

  1. 目標機預裝 Oracle 軟體:僅安裝軟體,不建立資料庫。複製來源 $ORACLE_HOME/dbs/init<SID>.ora (或 spfile) 至目標同路徑,修改路徑參數。
  2. 來源端轉換參數檔 (若使用 SPFILE):
    SQL> CREATE PFILE FROM SPFILE; 生成 init<SID>.ora。
  3. 來源端正常關閉:
    SQL> SHUTDOWN IMMEDIATE;
    ※ 若不可停機,需改用熱備份 (ARCHIVELOG 模式),本文不詳述。
  4. 複製所有關鍵檔案 (OS 層面 cp/rsync/ftp):
    檔案類型來源範例路徑備註
    Datafiles/oracle/oradata/oraLinux/*.dbf含 SYSTEM, SYSAUX, USERS, UNDO... 排除暫存檔 (temp*.dbf)
    Online Redo Logs/oracle/oradata/oraLinux/redo*.log必須複製
    Archived Redo Logs/oracle/oradata/oraLinux/archive/*.arc若啟用歸檔模式
    Control Files/oracle/oradata/oraLinux/control*.ctl所有控制檔
    Parameter File$ORACLE_HOME/dbs/init<SID>.ora步驟 2 產生
    Password File$ORACLE_HOME/dbs/orapw<SID>若使用密碼檔驗證
    Listener.ora$ORACLE_HOME/network/admin/listener.ora可選,目標重建亦可
    Admin 目錄$ORACLE_BASE/admin/oraLinux/*bdump, udump, cdump, pfile... 可選,目標手建亦可
  5. 傳輸至目標機對應路徑:邏輯目錄結構保持一致,物理路徑自動對應新 $ORACLE_BASE。
  6. 修改目標端 Parameter File:將 init<SID>.ora 內所有舊路徑 (/oracle) 批次替換為新路徑 (/u01/oracle)。
  7. 目標端啟動至 MOUNT:
    SQL> STARTUP MOUNT PFILE='/u01/oracle/product/9.2.0/dbs/init<SID>.ora';
    -- 或 CREATE SPFILE FROM PFILE; 後 STARTUP MOUNT;
    
  8. 修正 Control File 內資料檔路徑 (關鍵步驟):
    SQL> ALTER DATABASE RENAME FILE '/oracle/oradata/oraLinux/system01.dbf' TO '/u01/oracle/oradata/oraLinux/system01.dbf';
    -- 對所有 datafile, redo log 逐一執行,建議用 SPOOL 產生腳本
    
  9. 開啟資料庫:SQL> ALTER DATABASE OPEN;
  10. 重建暫存表空間:
    SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oracle/oradata/oraLinux/temp01.dbf' SIZE 20M;
  11. 後續收尾:更新 listener.ora、/etc/oratab、驗證服務自動註冊、備份新控制檔。

關鍵風險控制

  • 路徑替換務必精確:Control File 內路徑必須與實體檔案完全一致,大小寫敏感 (Linux/Unix)。
  • 檔案權限/擁有者:目標檔案擁有者必須為 oracle:dba,權限 640/660。
  • 版本/補丁一致:來源與目標 Oracle 版本、Platform (32/64-bit)、Patchset 必須完全相同。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved