当前位置:  数据库>oracle

使用RMAN迁移数据库到异机

    来源: 互联网  发布时间:2017-05-10

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

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

一、主要步骤

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

其实,这几个步骤比较好理解,整个实质是对数据库体系结构以及数据库整个启动过程的理解。

关于体系结构和启动过程可以参考

Oracle实例和Oracle数据库(Oracle体系结构)
Oracle 数据库实例启动关闭过程

下面对此进行一下描述

a、首先需要为实例的运行环境创建相应的目录,如dump位置,datafile位置,以及archive位置等等
如果是恢复到不同的路径,则后续RMAN时需要使用set newname for datafile 方式更新到控制文件
b、实例需要pfile来启动,因此需要恢复pfile或spfile,然后将数据库切换到nomount状态
c、接下来的一步是通过控制文件将数据库切换到mount状态,因此需要恢复控制文件,然后再mount
d、mount之后就可以对数据库进行还原(restore)操作
e、还原完毕之后是对数据库进行恢复(recovery)操作(restore和recover需要基于控制文件的备份信息或恢复目录)
f、最后是open数据库

二、迁移演示

1、备份原数据库

此处演示的源数据库与目标数据库使用相同的版本为Oracle 10g R2(10.2.0.3),操作系统都为SUSE 10 +Sp3

备份过程略,有关备份脚本,请参考:Linux 下RMAN备份shell脚本

2、ftp所有的备份文件到需要恢复的服务器上

打包整个备份集ftp到目标服务器或scp到目标服务器

下面是ftp到目标服务器解压后包含的文件

  •   oracle@2go-devDB01uv:/u02/database/SY5221_RMAN/20121013> ls -hltr 
  •   total 9.4G 
  •   -rw-r--r-- 1 oracle oinstall 3.0K 2012-10-16 09:48 initSY5221.ora 
  •   -rw-r--r-- 1 oracle oinstall 2.7G 2012-10-16 10:02 SY5221_lev0_201210130630_4unnkjvi_1_1 
  •   -rw-r--r-- 1 oracle oinstall 3.1G 2012-10-16 10:04 SY5221_lev0_201210130630_4vnnkjvi_1_1 
  •   -rw-r--r-- 1 oracle oinstall 938M 2012-10-16 10:07 SY5221_lev0_201210130630_arc_51nnkk2h_1_1 
  •   -rw-r--r-- 1 oracle oinstall 935M 2012-10-16 10:08 SY5221_lev0_201210130630_arc_52nnkk2h_1_1 
  •   -rw-r--r-- 1 oracle oinstall 930M 2012-10-16 10:10 SY5221_lev0_201210130630_arc_53nnkk31_1_1 
  •   -rw-r--r-- 1 oracle oinstall  15M 2012-10-16 10:10 SY5221_lev0_cntl_bak_c-1468911009-20121013-00 
  •   -rw-r--r-- 1 oracle oinstall  15M 2012-10-16 10:10 SY5221_lev0_cntl_bak_c-1468911009-20121013-01 
  •   -rw-r--r-- 1 oracle oinstall 910M 2012-10-16 10:11 SY5221_lev0_201210130630_arc_54nnkk32_1_1 
  • 3、创建所需的目录(使用oracle用户) 

  •   oracle@2go-devDB01uv:~> more mkdir_sy5221.sh 
  •   mkdir -p /u02/database/SY5221/flash_recovery_area 
  •   mkdir -p /u02/database/SY5221 
  •   mkdir -p /u02/database/SY5221/archive 
  •   mkdir -p /u02/database/SY5221/backup 
  •   mkdir -p /u02/database/SY5221/bdump 
  •   mkdir -p /u02/database/SY5221/cdump 
  •   mkdir -p /u02/database/SY5221/udump 
  •   mkdir -p /u02/database/SY5221/controlf 
  •   mkdir -p /u02/database/SY5221/oradata 
  •   mkdir -p /u02/database/SY5221/redolog 
  •   mkdir -p /u02/database/SY5221/undo 
  •   mkdir -p /u02/database/SY5221/temp 
  •   mkdir -p /u02/database/SY5221/ref_data 
  •   mkdir -p /u02/database/SY5221/BNR 
  •   mkdir -p /u02/database/SY5221/BNR/full 
  •   mkdir -p /u02/database/SY5221/BNR/dump 
  •   mkdir -p /u02/database/SY5221/dbcreatelogs 
  •    
  •   ORACLE_SID=SY5221; export ORACLE_SID 
  •   oracle@2go-devDB01uv:~> chmod u+x mkdir_sy5221.sh 
  •   oracle@2go-devDB01uv:~> ./mkdir_sy5221.sh 
  • 4、创建密码文件 

  •   oracle@2go-devDB01uv:~> cd $ORACLE_HOME/dbs 
  •   oracle@2go-devDB01uv:~/OraHome10g/dbs> orapwd file=orapwSY5221 password=oracle force=y entries=10 

  •     
     
     

    您可能感兴趣的文章:

  • mysql Innodb表空间卸载、迁移、装载的使用方法
  • mysql数据库下载安装教程和使用技巧
  • 大家在UNIX下都使用什么数据库?使用什么做数据开发?
  • mongodb 数据库常用命令使用实例
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • 使用php语句将数据库*.sql文件导入数据库
  • 使用JDBC连接数据库时Class.forName()语句的使用疑问
  • 如何使用jsp显示数据库中的数据?
  • 收缩后对数据库的使用有影响吗?
  • 当发布的程序中含有数据库的使用时,...?
  • 如何强制删除或恢复SQLServer正在使用的数据库
  • 一个数据库函数的使用?
  • 嵌入式linux下数据库使用
  • 请教数据库连接池的使用....
  • 在tomcat 中使用jdbcrealm是否一定要在数据库中建立用户表和 角色表
  • 超酷数据库工具发布(JAS), 欢迎使用
  • linux下使用易飞ERP系统出现“报表数据库连接错误!!”是怎么回事
  • linux下服务器开发一般使用什么数据库?
  • linux使用mysql删除数据库的问题,谢谢!
  • 请问如何在jsp中使用JDBC动态更新数据库?
  • 关于使用数据库连接的问题。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何强制删除或恢复SQLServer正在使用的数据库 iis7站长之家
  • 请教高高手:如何规划和创建数据池?并使用数据池?有资料也行
  • 使用jquery局部刷新(jquery.load)从数据库取出数据
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较
  • 我时用jdbc打开数据库,使用后是否要显示的关闭数据库,还是等java的垃圾回收器来处理。
  • 超级菜鸟问题:使用VMware安装linux会删除硬盘上的数据吗?
  • 关于数据报套接字的使用
  • 如何使用ip_queue_xmit接口发送数据包
  • 请问使用SELECT()函数怎么监测串口发送数据?
  • 为什么socket程序使用gdb调试执行就接受不到数据了呢?
  • sql server 使用ntile获取数据的例子
  • 使用udp,连续发送大数据发生丢包亲情况
  • linux下如何使用磁带机备份数据
  • 在ACC下不使用循环怎样实现,读取文件指定行的数据.
  • 请问在红旗Linux多功能服务器版上(不是数据库服务器版)能否正常安装使用Oracle?红旗Linux数据库服务器版要比红旗Linux多功能服务器版贵
  • 使用TCP协议通讯,如果有很多种数据要传输,如:注册信息等,在C++中,我们可以使用结构,java中通常大家又是如何打包的呢?
  • SQL Server 2008无日志文件如何使用MDF文件附加数据库
  • 使用EntityBean将中文存入数据库时出现乱码,如何解决?
  • 请问:FTP工具或者命令怎么设置,让数据路和控制路都使用默认的21端口
  • 请问如何使用c++开发数据库客户端程序?
  • 使用X manager连接oracle数据库的步骤
  • 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,