oracle rman level0备份恢复验证,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登陆时提示权限不足

4e5021c81a49541296065777c4e75fe2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值