迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移。使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整地镜像。因此,基于此种方式还原恢复的数据库用于测试会使得与真实的生产环境差异相对较小。

一、主要步骤
     1、备份数据库
     2、拷贝备份到目的服务器
     3、为目标数据库创建项目目录
     4、为目标数据库创建pfile或spfile(使用RMAN还原或复制原pfile到目的服务器)
     5、还原控制文件
     6、还原数据文件
     7、OPEN 数据库

二、迁移演示

目的:将在一台机器的orcl数据库迁移到另一台机器上

1. 备份数据库:

    备份脚本参考:RMAN的实战篇--备份脚本

2. 将用RAMN备份的文件拷贝到目标服务器上。

  这里使用scp的方式拷贝到异机

scp -r 20161231/  oracle@192.168.0.92:/u02/database/orcl/backup/rman/

3. 创建目录

mkidr -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/app/oracle/flash_recovery_area

mkdir -p /u01/app/oracle/flash_recovery_area/orcl

mkdir -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/ARCHLOG
mkdir -p /u02/ARCHLOG
mkdir -p /u03/ARCHLOG
mkdir -p /u01/app/oracle/admin/orcl/dpdump
mkdir -p /u01/app/oracle/admin/orcl/adump

mkdir -p /u01/orcl/onlinelog/

mkdir -p /u02/orcl/onlinelog/

mkdir -p /u03/orcl/onlinelog/

4.创建密码文件

[oracle@oracledb ~]$ orapwd file=orapworcl password=oracle force=y entries=10

5、使用pfile启动实例到nomount状态

[oracle@oracledb dbs]$ cp /u02/database/orcl/backup/rman/20161231/initorcl.ora $ORACLE_HOME/dbs
[oracle@oracledb dbs]$ export ORACLE_SID=orcl
SQL> startup nomount;

注意检查参数文件中的目录是否都建立了。

6. 恢复控制文件并切换到mount状态

RMAN> restore controlfile from '/u02/database/orcl/backup/rman/20161231/cntl_lev0.bak';

启动 restore 于 30-12月-16
使用通道 ORA_DISK_1 通道 ORA_DISK_1: 已复制控制文件副本
输出文件名=/u01/app/oracle/oradata/orcl/control01.ctl
输出文件名=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl
完成 restore 于 30-12月-16 RMAN> alter database mount; 数据库已装载
释放的通道: ORA_DISK_1

7. 指定备份文件所在目录

RMAN> catalog start with '/u02/database/orcl/backup/rman/20161231';

8. 还原数据库

RMAN> restore database;

9.恢复数据库

SQL> conn / as sysdba 

SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done SQL> recover database using backup controlfile until cancel;
********
....
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel #输入cancel,完成介质恢复
Media recovery cancelled.

10. open数据库

SQL> alter database open resetlogs;  

11.一致性关闭数据库并重启数据库

SQL> shutdown immediate;  

SQL> startup 

#如果open 不成功,请尝试shutdown 之后再次open,如果仍然不成功使用隐藏参数_allow_resetlogs_corruption打开数据库

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.

SQL> startup force
ORACLE instance started. Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 88082000 bytes
Database Buffers 192937984 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; Database altered. SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile; System altered. SQL> shut immediate

使用rman迁移数据库到异机的更多相关文章

  1. 使用不同用户对Oracle数据库进行异机恢复,失败,错误:Backup file not found in NetBackup catalog

    最近做某数据库恢复演练,数据库版本是10.2.0.4,恢复控制文件一直报错,报错如下,经过反复折腾,原来恢复机上oracle用户不是oracle导致(我的是oraclev4),查看源库oracle用户 ...

  2. RMAN备份策略与异机恢复一例(续篇)

    本文是<RMAN备份策略与异机恢复一例>的续篇,继续实验验证,最终实现两个需求: 1.异机恢复临时测试的小库 2.传输归档时,实现增量传输 1.异机恢复临时测试的小库 之前异机恢复的需求已 ...

  3. RMAN备份策略与异机恢复一例

    实验环境: A机器(生产用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.11 B机器(备机用途):RHEL 6.5 + Oracle 11. ...

  4. openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主机间能使用nova系统用户经passless登录

    openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主 ...

  5. linux下仅仅有rman备份集的异机不同文件夹恢复

    昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下 ...

  6. RMAN迁移数据库(不改变文件目录)

    1.目标库创建相应目录mkdir -p /u01/app/oracle/oradata/orclmkdir -p /u01/app/oracle/fast_recovery_area/ORCLmkdi ...

  7. 基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

    Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的 ...

  8. 基于RMAN的异机数据库克隆(rman duplicate)

    对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman d ...

  9. Oracle备份恢复之冷备份恢复与异机还原

    (同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...

随机推荐

  1. backbone event 事件订阅 和发布 源码小读

    nodejs有eventEmitter 类,想到backbone  有个event模块 可以对对象做事件绑定和触发,是backbone的核心模块. backbone event模块 on 添加自定义事 ...

  2. HTML DOM基础知识

    HTML DOM基础知识 一.什么是DOM? 1.HTML DOM 定义了访问和操作HTML文档的标准方法. 2.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树). 3 ...

  3. while do while 区别

    一.while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体.while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句. int i=10; whil ...

  4. .net MVC简介、项目中每个文件夹的功能

    MVC是微软2009对外公布的第一个开源的表示层框架,这是微软的第一个开源项目 M:viewmodel  V:视图  c:控制器 App_Data:一个比较特殊的文件夹,把文件放到这个文件夹,通过地址 ...

  5. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  6. Fiddler---前端利器

    摘要:Fiddler是一个不错的工具,可以用来调试HTTP协议.工具很强大,本篇根据现有使用总结了下,以后有更多使用再做补充. 在做HTTPS协议对接的时候,拿不到数据,不得不找个工具试下,确定是接收 ...

  7. Number类型方法

    //1.toString();  转换成字符串 var s=123; console.log(typeof s.toString()); //string //2.toLocaleString()   ...

  8. PHP---------去除数组里面值为空或者为空字符串的元素

    array_filter(array('a'=>'','',null,'b'=>3),function($val){         if($val===''||$val===null){ ...

  9. AJAX-----04XMLHttpRequest对象的ajax

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 25条提高iOS app性能的方法和技巧

    以下这些技巧分为三个不同那个的级别---基础,中级,高级. 基础 这些技巧你要总是想着实现在你开发的App中. 1. 用ARC去管理内存(Use ARC to Manage Memory) 2.适当的 ...