Oracle 数据库迁移恢复

准备工作

准备原 Oracle 数据库 oradata 下的数据文件,打包 oradata/{SID}。 准备原 Oracle 数据库 pfile 文件。

pfile 在 {$ORACLE_BASE/admin/{SID}/pfile} 路径下。

(注:数据文件应在数据库关闭时打包)

恢复步骤

  1. 新数据库创建 DBCA 后,关闭数据库。备份当前 oradata 数据文件,将需要恢复的数据文件拷贝至新数据库 oradata 目录下。

  2. 修改 pfile 文件中控制文件的路径,指向新库中的路径。

  3. control02.ctl 文件可由 control01.ctl 复制重命名得到。

  4. 以 pfile 启动数据库到 mount 状态。

    1
    SQL> startup mount pfile='[pfilename]'
  5. 查看当前数据库数据文件,临时文件,日志文件,控制文件,参数文件等信息。

    1
    2
    3
    4
    5
    SQL> select name from v$datafile;
    SQL> select name from v$tempfile;
    SQL> select member from v$logfile;
    SQL> select name from v$controlfile;
    SQL> show parameter pfile
  6. 重定向文件路径。

    1
    SQL> alter database rename file '{old_dir}/{file_name}.dbf' to '{new_dir}/{file_name}.dbf';

    将上一步查到的信息按此方法依次修改。

  7. 按照第五步步骤核查所有路径修改正确,依然以 pfile 启动数据库实例。

  8. 查看启动是否正常,根据 pfile 创建 spfile。

    1
    SQL> create spfile from pfile='{pfile path}'
  9. 关闭,正常启动数据库,默认是以刚创建的 spfile 启动的。启动后查看有无报错。