当前位置:  数据库>oracle

使用RMAN进行数据迁移

    来源: 互联网  发布时间:2017-06-17

    本文导语: 使用RMAN进行数据迁移 1.查看SCN,然后备份数据库 run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; allocate channel c5 type disk; sql 'alter system archive log current'; backup database tag 'db0'  in...

使用RMAN进行数据迁移

1.查看SCN,然后备份数据库

run{
 allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 allocate channel c4 type disk;
 allocate channel c5 type disk;
 sql 'alter system archive log current';
 backup database tag 'db0'  include current controlfile plus archivelog;
 release channel c1;
 release channel c2;
 release channel c3;
 release channel c4;
 release channel c5;
 }

备份的文件249G,备份用时20分钟

2.将备份传输至目标服务器 (53分钟)

3.在目标服务器还原
 先在$Oracle_HOME/dbs下创建文件 initmvbox.ora
里面只有一行
db_name=mvbox

将数据库启动至nomount
 restore spfile to '/xxxx/spfilemvbox.ora' from '/xxxx/2015_06_11/o1_mf_nnsnf_DB0_bqky8s7r_.bkp';

还原控制文件
shutdown abort;
 startup mount;
 restore controlfile from '/xxxx/2015_06_11/o1_mf_ncnnf_DB0_bqky8pq9_.bkp';
 sql 'alter database mount';

挂载备份
catalog start with '/xxxx/2015_06_11';

还原数据库
run{
 allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 allocate channel c4 type disk;
 allocate channel c5 type disk;
 restore database;
 release channel c1;
 release channel c2;
 release channel c3;
 release channel c4;
 release channel c5;
 }

还原数据库用时 30分钟

4.在目标服务器进行数据库恢复(业务实际停机时间)
首先,业务停机
 然后查看当前的SCN
 select to_char(CURRENT_SCN) from v$database;

备份归档日志
sql 'alter system archive log current';
 run{
 allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 allocate channel c4 type disk;
 allocate channel c5 type disk;
 backup archivelog all tag 'arch0';
 release channel c1;
 release channel c2;
 release channel c3;
 release channel c4;
 release channel c5;
 }

因为在迁移之前,清空过归档日志,所以归档日志只是从备份开始到现在的这段时间
 日志量不大,10分钟以内就可以完成 备份和传输

 清空归档日志的命令(delete noprompt archivelog all;)

挂载归档日志
catalog start with '/xxxx/2015_06_11';

进行不完全恢复,
set until scn xxx
这个数字就是备份归档日志之前查看的SCN

 run{
 shutdown immediate; 
 startup mount; 
 set until scn  79377202898; 
 allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 allocate channel c4 type disk;
 allocate channel c5 type disk;
 recover database;
 release channel c1;
 release channel c2;
 release channel c3;
 release channel c4;
 release channel c5;
 }

恢复用时11分钟(应用归档日志从10:40至14:39,4个小时)

alter database open resetlogs;

迁移完成.

比对MySQL的不完全恢复
 可以发现
MySQL先恢复,再应用binlog,最后还原
 他恢复的时间比较短,主要的时间是应用binlog(每恢复一小时的binlog需要15分钟),最后的还原不需要时间(直接改datadir..)

而Oracle,先还原再恢复
 还原的时间比较长(30分钟),而恢复的时间比较短(每推进一小时的数据需要2到3分钟)
所以,在备份的服务器,保持一个最近还原的备份很重要..最起码会节省30分钟的还原时间..

--------------------------------------推荐阅读 --------------------------------------

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------


    
 
 

您可能感兴趣的文章:

  • mysql Innodb表空间卸载、迁移、装载的使用方法
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • 我安装Samba 3.0.4,能够使用smbclient进行登陆,可是不能使用windowsXP进行登陆
  • 消息队列一般是怎么使用的,是采用While的方式进行轮询么
  • linux中使用sort命令进行排序的问题
  • 只使用InputStream/OutputStream进行IO操作行吗?
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 下载的linxu如何使用md5文件进行验证?
  • 使用jdk1.4+wstk3.2+tomcat+axis进行开发webservice
  • linux下动态库中如何导出对象进行使用
  • 有谁告诉我如何使用main中的args进行输入输出的操作?
  • 针对使用java进行硬件编程
  • linux 下两个硬盘进行复制,用DD该如何使用????
  • 使用Linux/UNIX的系统用户进行PHP用户登录验证
  • 如何使用gdb+gdbserver进行调试
  • jquery代码-如何使用多个属性来进行过滤
  • 在Linux下怎么使用pppoe进行拨号?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 如何使用shell脚本实现fdisk /dev/sdb的自动分区,不与用户进行交互
  • sql使用cast进行数据类型转换示例
  • jsp 中如何使用word进行编辑?
  • 如何使用jsp显示数据库中的数据? iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Python3中使用urllib实现http的get和post提交数据操作
  • 大家在UNIX下都使用什么数据库?使用什么做数据开发?
  • mysql数据库下载安装教程和使用技巧
  • 如何使用jsp显示数据库中的数据?
  • mongodb 数据库常用命令使用实例
  • 请教高高手:如何规划和创建数据池?并使用数据池?有资料也行
  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • 使用php语句将数据库*.sql文件导入数据库
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • UNIX下面能否使用类似BCP的程序连接另一台UNIX下面的Sybase数据库进行数据处理
  • 使用jquery局部刷新(jquery.load)从数据库取出数据
  • 收缩后对数据库的使用有影响吗?
  • 当发布的程序中含有数据库的使用时,...?
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较
  • 如何强制删除或恢复SQLServer正在使用的数据库
  • 一个数据库函数的使用?
  • 我时用jdbc打开数据库,使用后是否要显示的关闭数据库,还是等java的垃圾回收器来处理。
  • 超级菜鸟问题:使用VMware安装linux会删除硬盘上的数据吗?
  • 嵌入式linux下数据库使用
  • 请教数据库连接池的使用....
  • 关于数据报套接字的使用
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • Office 2010 Module模式下使用VBA Addressof
  • c#中SAPI使用总结——SpVoice的使用方法
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 使用了QWidget的程序,如何使用后台程序启动它?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3