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
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