ITPub博客

首页 > 数据库 > Oracle > 利用rman恢复来复制数据库

利用rman恢复来复制数据库

原创 Oracle 作者:静以致远√团团 时间:2014-02-20 11:30:47 0 删除 编辑

利用rman来实现数据库的复制,其实质是利用备份来恢复一个不存在的数据库

 

前提是目标系统上有完全一致oracle软件,并且要求数据库名要一致

首先要在源数据库上用rman做完整的备份,至少要有源库的spfile,和整库的备份,控制文件的备份及归档日志的备份

 

将以上的所以备份copy至目标数据库

 

在目标数据库上创建pfile,如需要可以修改相关参数

SQL> create pfile='orcl_pfile.ora' from spfile='/u01/spfileorcl.ora'

 

创建参数文件中所需要的目录

修改完成后利用该pfile创建二进制的参数文件并启动数据库到nomount状态

SQL> creat spfile from pfile='orcl_pfile.ora';

 

设置ORACLE_SID与源库一致,并rman登入

[oracle@orcl10g ~]$ export ORACLE_SID=orcl

[oracle@orcl10g ~]$ rman target /

 

设置DBID与源库一致

RMAN> set DBID=1362189063

executing command: SET DBID

 

注:DBID在源库rman登入时即可找到:

connected to target database: ORCL (DBID=1362189063)

 

利用备份的控制文件来修复

RMAN> restore controlfile from '/u01/app/orcl_rman_back/controlfile_02-20.bak';

 

Starting restore at 20-FEB-14

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=159 devtype=DISK

 

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:04

output filename=/u01/app/oracle/oradata/orcl/control01.ctl

output filename=/u01/app/oracle/oradata/orcl/control02.ctl

output filename=/u01/app/oracle/oradata/orcl/control03.ctl

Finished restore at 20-FEB-14

修改数据库到mount状态

RMAN> alter database mount;

 

database mounted

released channel: ORA_DISK_1

 

恢复数据库(也可自己指定备份路径,若两库的备份路径一样,无需指定)

RMAN> restore database;

channel ORA_DISK_1: restored backup piece 1

piece handle=/u01/app/orcl_rman_back/all_backup_02-20_840018591.bak tag=TAG20140220T102951

channel ORA_DISK_1: restore complete, elapsed time: 00:01:16

Finished restore at 20-FEB-14

 

恢复数据库,由于备份不是一致性备份,会出现错误提示

RMAN> recover database;

 

Starting recover at 20-FEB-14

using channel ORA_DISK_1

starting media recovery

unable to find archive log

archive log thread=1 sequence=5

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 02/20/2014 11:11:16

RMAN-06054: media recovery requesting unknown log: thread 1 seq 5 lowscn 833280

 

重做日志打开数据库

 

RMAN> alter database open resetlogs;

database opened

 

登入数据库查看数据:

SQL> select count(*) from test;

 

  COUNT(*)

----------

       256

 

数据库复制完成

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29320885/viewspace-1084407/,如需转载,请注明出处,否则将追究法律责任。

上一篇: rman的备份与恢复
请登录后发表评论 登录
全部评论
每个人都有梦想,去实现吧!

注册时间:2013-11-14

  • 博文量
    164
  • 访问量
    2103442