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
相关文章
相关标签/搜索