使用数据库冷备份方式进行数据库迁移,可以避免在逻辑层操作带来的错误,同时可以将数据库原封不动的迁移到一个新的环境中,操作简单,风险比较小。本文讨论是在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博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1046451/
,如需转载,请注明出处,否则将追究法律责任。