使用資料庫冷備份方式進行資料庫遷移,資料庫檔案遷移到不同的目錄

djb1008發表於2011-02-24

使用資料庫冷備份方式進行資料庫遷移,可以避免在邏輯層操作帶來的錯誤,同時可以將資料庫原封不動的遷移到一個新的環境中,操作簡單,風險比較小。本文討論是在WINDOWS環境下的遷移操作。

資料庫冷備份遷移的主要步驟如下所示:

1. 在舊庫環境下,生成pfile,複製到新資料庫伺服器中,並更改檔案中控制檔案的目錄

A. 舊資料庫伺服器上生成pfile,檔案存放在$ORACLE_HOME/database目錄,檔名為init{SID}.ora,本例中檔案為initFSJK.ora

linux/unix pfile存在$ORACLE_HOME/dbs目錄下

SQLPLUS / AS SYSDBA

sql>create pfile from spfile;

[@more@]
B. 複製pfile檔案到新資料庫伺服器上
C. 修改pfile檔案中控制檔案的位置
舊:
*.control_files='C:oracleproduct10.2.0oradataFSJKcontrol01.ctl','C:oracleproduct10.2.0oradataFSJKcontrol02.ctl','C:oracleproduct10.2.0oradataFSJKcontrol03.ctl'
新:
*.control_files='C:oracleoradatacontrol01.ctl','C:oracleoradatacontrol02.ctl','C:oracleoradatacontrol03.ctl'
2.關閉舊資料庫。
SQL>SHUTDOWN IMMEDIATE;
3.複製所有檔案到新資料庫伺服器的指定目錄中(本例為c:oracleoradataFSJK).
4. 使用PFILE 檔案啟動資料庫到NOMOUNT 狀態,然後啟動到MOUNT狀態,驗證控制檔案是否有效.
SQL>startup pfile='c:oracleproduct10.2.0db_1databaseinitfsjk.ora' nomount;
SQL>alter database mount;
5. 修改資料庫檔案的目錄,包括資料檔案,REDO檔案,臨時檔案.
SQL>@renamefiles.sql ,renamefiles.sql檔案內容如下:
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKSYSTEM01.DBF' to 'd:oracleoradataFSJKSYSTEM01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKUNDOTBS01.DBF' to 'd:oracleoradataFSJKUNDOTBS01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKSYSAUX01.DBF' to 'd:oracleoradataFSJKSYSAUX01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKUSERS01.DBF' to 'd:oracleoradataFSJKUSERS01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKEXAMPLE01.DBF' to 'd:oracleoradataFSJKEXAMPLE01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKUNDOTBS02.DBF' to 'd:oracleoradataFSJKUNDOTBS02.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKYD_DATA03.ORA' to 'd:oracleoradataFSJKYD_DATA03.ORA';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKTEMP01.DBF' to 'd:oracleoradataFSJKTEMP01.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKTEMP02.DBF' to 'd:oracleoradataFSJKTEMP02.DBF';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKREDO03.LOG' to 'd:oracleoradataFSJKREDO03.LOG';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKREDO02.LOG' to 'd:oracleoradataFSJKREDO02.LOG';
alter database rename file 'C:ORACLEPRODUCT10.2.0ORADATAFSJKREDO01.LOG' to 'd:oracleoradataFSJKREDO01.LOG';
/
6.啟動資料庫到OPEN狀態.
SQL>alter database open;
SQL>create spfile from pfile='c:oracleproduct10.2.0db_1databaseinitfsjk.ora';
7.建立並使用新的SPFILE, 重新啟動資料庫,
SQL>shutdown immediate;
SQL>startup;
8. 檢查新資料庫的狀態
SQL>select name,open_mode from v$database;
NAME OPEN_MODE
--------- ----------
FSJK READ WRITE

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

相關文章