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 |
数据库迁移思路:
- 目标系统创建新的数据库
- 将源库中所有控制文件,数据文件复制到目标库中
- 重建控制文件修改相应路径(如果文件路径有变更)
- 介质恢复所有数据文件
- 启动数据库
具体恢复步骤:
- 源库中查询控制文件、REDO 文件、数据文件位置并且记录下来,并且查询数据库 DBID 记录下来
select name from v$datafile;
select name from v$controlfile;
select * from v$logfile;
select dbid from v$database;
- 进行切换日志组,触发检查点,确保数据由脏块进入数据文件中。
alter system switch logfile;
alter system checkpoint;
shutdown immediate;//可选[取决于是否停机迁库]
- 关闭目标数据库 (以下皆在目标数据库进行操作)
shutdown immediate;
- 以 notmount 模式启动,并且设置数据库 DBID 后关闭数据库
startup nomount;
set dbid=1526707455;//(源库DBID)
shutdown immediate;
- 将所有控制文件、REDO 文件及数据库文件复制到新的系统环境中(因为 216 系统盘与 112 系统盘不一致,故移动到目标库 D 盘某一固定文件夹中)
因为本次复制并无参数文件故控制文件(3 个)需放在 ORACLE10G 默认控制文件的路径下 D:\oracle\product\10.2.0\oradata\orcl - 启动 mount 模式启动目标数据库
startup mount;
- 导出控制文件重建语句
alter database backup controlfile to trace as 'c:\REBUILDCTL.SQL';
编辑 REBUILDCTL.SQL 文件夹,将数据文件,REDO 文件,临时文件等替换为放置到目标系统后的相对文件路径。

(需修改的路径不止途中圈出的,需修改所有路径为目标系统规划路径)
关闭数据库,并且运行 REBUILDCTL.SQL 文件
shutdown immediate;
@c:\REBUILDCTL.SQL;
- 以 mount 模式进行启动,并且对所有数据文件进行介质恢复(因为重建控制文件会导致 scn 更新,导致与数据文件中不统一)
recover database;
- 清除重做日志打开数据库
alter database open resetlogs;
- 验证数据库(验证源数据库中的数据是否到目标数据库中)
PS
- 之前想通过 windows 命令创建虚拟盘符 E,F 来避免为了修改数据文件的路径而去对控制文件进行重建,然而发现 oracle 识别不到虚拟盘符的路径,所以还是得老老实实得去重建修改掉相对路径。
- 其他参考地址:
- https://jingyan.baidu.com/article/ca00d56c6d0d9de99eebcf82.html
- https://www.cnblogs.com/Snowfun/articles/4805048.html
ORACLE10G非归档模式下异机迁库(文件迁移)的更多相关文章
- 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程
测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...
- ORACLE10G非归档模式下RMAN异机迁库
环境信息: 源库 目标库 操作系统 WIN7 WIN SVR 2012 R2 IP x.x.x.216 x.x.x.112 数据库版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 6 ...
- 非归档模式下使用Rman进行备份和恢复
实验环境: 一.首先进行全库数据备份: 在非归档模式下,rman备份需要在mount模式下进行 SQL> select status from v$instance; STATUS ------ ...
- Oracle非归档模式下脱机数据文件
正常情况下,要想对数据文件脱机,必须在归档模式下,这是ORACLE自动保护的一种措施,防止在非归档模式下对数据文件脱机,造成数据丢失.如果想在非归档模式下执行数据文件脱机操作,则需要加上“for dr ...
- 使用alter database datafile 'XXX' offline drop 是否能够恢复(非归档模式下)
今天在群里面听到一位网友在说使用了alter database datafile 'XXX' offline drop命令是否能够恢复数据,在非归档模式下,下面是用一个实验来验证一下 ######## ...
- oracle非归档模式下的冷备份和恢复
查看归档的相关信息 SQL> archive log list数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB ...
- Oracle之rman数据库在非归档模式下的备份和恢复
1.数据库在非归档模式下的备份 SQL> archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 ...
- Dalvik模式下在Android so库文件.init段、.init_array段构造函数上下断点
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78244766 在前面的博客<在Android so文件的.init..ini ...
- RMAN备份之非归档模式下的备份
Backing Up a Database in NOARCHIVELOG Mode:1.Log into RMAN2.Shutdown immediate from RMAN3.Startup mo ...
随机推荐
- linux入门系列13--磁盘管理之RAID、LVM技术
前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...
- Java集合那点事, 满满干货~
说到Java集合,可以说是初学者必踩的坑了. 那么怎么才能学好Java集合呢?个人认为关键是要理清楚思路,从上而下,建立一套完整的思维体系,这样才能更好的去认识事物的本质. 先确立一下学习Java集合 ...
- C# 小游戏-拼图魔方【Game Puzzle】
工作闲暇之余去逛了逛CodeProject,刚好现有项目主要用到就是winform,浏览了下照片,找到上周带着蛋挞打疫苗回家的照片,于是新生一记,如何把这些图片玩起来~ 80后应该都有印象,小时候有种 ...
- JAVA架构之单点登录 任务调度 权限管理 性能优化大型项目实战
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...
- Django 系列
Django基础 Django框架简介 Django 静态文件 Django request对象与ORM简介 Django路由系统 Django之视图层 Django之模板层 Django的setti ...
- 00.JS前言
前言: 学习一门编程语言的基本步骤(01)了解背景知识 1.了解背景知识 1)什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言.所谓“脚本语言”(scri ...
- Azure Media Services -可提供视频点播(VOD)
Azure Media Services 提供直播/VOD点播相关的功能. •提供编码和打包以适用于各种设备播放视频(IOS/Android/web等). •向大量在线观众流式传输实时直播,例如活动 ...
- MySQL安装详细步骤(附迅雷下载链接)
环境:windows10.64bit.mysql 8.0.19 迅雷下载链接8.0版本 https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-in ...
- 回炉重造之重读Windows核心编程-006-线程
线程也是有两部分组成的: 线程的内核对象,操作系统用来管理线程和统计线程信息的地方. 线程堆栈,用于维护现场在执行代码的时候用到的所有函数参数和局部变量. 进程是线程的容器,如果进程中有一个以上的线程 ...
- Python 实现选择排序
选择排序算法步骤: 找到数组中最小的那个元素中, 将它和数组的第一个元素交换位置, 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置, 如此往复,知道将整个数组排序. 逐步分析: 假设一个 ...