Oracle rman备份异机恢复

简介:

一、 实验环境

db_A:192.168.0.3        db_B:192.168.0.4

db_A为生产数据库,db_B为后备(不运行);两个数据库的环境完全一样。

二、操作

1.db_A的操作

在db_A上进行rman的0级备份

$rman target /

RMAN>backup incremental level=0 database format='/oradata/back/%u';

添加计划任务执行以下脚本:

---------------------------------------------------------------------

db_rsync.sh

 

#!/bin/sh

#keep tow db Synchronous

ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1

bak_dir=/oradata/back

archive_dir=/oradata/arch

dest_db=oracle@192.168.0.4

passwd=ufsoft

ls -l $bak_dir | awk '{print $NF}'|sed '1d'>list1

ls -l $archive_dir | awk '{print $NF}'|sed '1d'>list2

Rsync_exec1(){

        expect -c "

        set timeout 7200;

        spawn rsync -rpogtv --files-from=list1  $bak_dir $dest_db:$bak_dir

        expect {

        \"*yes/no*\" {send \"yes\r\";exp_continue}         

       \"*password*\" {send \"$passwd\r\";}

        }

        expect eof;"

Rsync_exec2(){

        expect -c "

        set timeout 7200;

        spawn rsync -rpogtv  --files-from=list2 $archive_dir $dest_db:$archive_dir

        expect {

                \"*password*\" {send \"$passwd\r\";}

        }

        expect eof;"

}

Rsync_exec1

Rsync_exec2

rm -f list1 list2

---------------------------------------------------------------------

2.db_B的操作

 

$ echo "db_name=ora10g">$ORACLE_HOME/dbs/initora10g.ora

$ sqlplus / as sysdba

SQL> startup nomount

$ls /oradata/back #查看从db_A上传过来的备份文件,其中大小比较小的为参数文件和控制文件的备份,最大的为数据文件的备份。可以在db_A上执行“RMAN>list backup;”查看。

0fmhsg4r  0gmhsg5k

$rman target /

RMAN> restore spfile from '/oradata/back/0gmhsg5k';

RMAN> startup nomount force;

RMAN> restore controlfile from '/oradata/back/0gmhsg5k';

RMAN> alter database mount;

RMAN> restore database;

RMAN> recover database;#会报错,但不要紧,我们只需要得到thread和sequence号就行

Starting recover at 20-JUL-11

using channel ORA_DISK_1

starting media recovery

unable to find archive log

archive log thread=1 sequence=1

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

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

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

RMAN-03002: failure of recover command at 07/20/2011 01:33:58

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

 

RMAN> run {

2> set until sequence 1 thread 1;

3> recover database;

4> }

 

RMAN> alter database open resetlogs;

至此数据库已经正常运行。

RMAN> delete noprompt backup;

RMAN> backup incremental level=0 database format='/oradata/back/%u';

此实验就是为了不用dateguard而能够做到灾备的效果。

注意:这样做会产生的问题:用sys从PL/SQL登陆时提示权限不足





本文转自 baiying 51CTO博客,原文链接:http://blog.51cto.com/baiying/617596,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Oracle 关系型数据库 数据库
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
35 5
|
3月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
58 8
|
8月前
|
Oracle 关系型数据库 数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库
|
11月前
|
存储 SQL 监控
Oracle BCT(Block Change Tracking)与增量备份---发表在数据和云
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。
302 0
|
11月前
|
Oracle 关系型数据库 内存技术
|
11月前
|
Oracle 关系型数据库 Linux
Oracle自动备份脚本(Linux)
Oracle自动备份脚本(Linux)
96 0
|
SQL Oracle 关系型数据库
Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
275 0
|
Oracle 关系型数据库 数据库
Oracle中的差异增量备份和累积增量备份的区别、rman全备+增量备份常用脚本
Oracle中的差异增量备份和累积增量备份的区别、rman全备+增量备份常用脚本
1097 0
|
SQL Oracle 关系型数据库
Oracle自动恢复设置
一、背景说明:一个朋友需要定期把正式库的备份还原到一个测试系统中,便于系统进行测试;从需求上来讲这个需求是比较奇怪的,但是作为技术人员还是得进行配合完成相应的需求。
677 0

相关实验场景

更多