rman自动备份恢复脚本
2013-04-10 15:49
204 查看
源端每周日全备:
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export BACKUP_PATH=/orabak
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/backupset`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/archivelog`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/controlfile`
rman target / nocatalog msglog=$BACKUP_PATH/${BACKUP_DATE}/bak_0_$BACKUP_DATE.log << EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 database tag='level_0' format '$BACKUP_PATH/${BACKUP_DATE}/backupset/level_0_%d_%T_%s_%U';
sql 'alter system archive log current';
backup archivelog all format '$BACKUP_PATH/${BACKUP_DATE}/archivelog/arch_level_0_%d_%T_%s_%U';
release channel c1;
release channel c2;
release channel c3;
}
backup current controlfile tag='bak_ctlfile' format '$BACKUP_PATH/${BACKUP_DATE}/controlfile/ctl_file_%U_%T';
crosscheck backup;
delete noprompt expired backup;
crosscheck archivelog all;
report obsolete;
delete noprompt obsolete;
exit
EOF
cd /orabak
rsync -av $BACKUP_DATE --password-file=/etc/.rsync.pass
oracle@10.0.31.12::orabak
源端每日增量备份:
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export BACKUP_PATH=/orabak
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/backupset`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/archivelog`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/controlfile`
rman target / nocatalog msglog=$BACKUP_PATH/${BACKUP_DATE}/bak_1_$BACKUP_DATE.log << EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 database tag='level_1' format '$BACKUP_PATH/${BACKUP_DATE}/backupset/level_1_%d_%T_%s_%U';
sql 'alter system archive log current';
backup archivelog from time "to_date(to_char(sysdate-1,'yyyy-mm-dd')||' 05:00:00','yyyy-mm-dd hh24:mi:ss')" until time "sysdate" format '$BACKUP_PATH/${BACKUP_DATE}/archivelog/arch_level_0_%d_%T_%s_%U';
backup current controlfile tag='bak_ctlfile' format '$BACKUP_PATH/${BACKUP_DATE}/controlfile/ctl_file_%U_%T';
release channel c1;
release channel c2;
release channel c3;
}
crosscheck backup;
delete noprompt expired backup;
crosscheck archivelog all;
report obsolete;
delete noprompt obsolete;
exit
EOF
cd /orabak
rsync -av $BACKUP_DATE --password-file=/etc/.rsync.pass
oracle@10.0.31.12::orabak
linux定时调用备份任务:
[oracle@oracle03 rman_script]$ crontab -l
30 05 * * 1,2,3,4,5,6 /orabak/rman_script/lev_1_bak.sh
30 05 * * 0 /orabak/rman_script/full_bak.sh
目标端定时还原脚本:
[oracle@gzrmzdata2006 rman_script]$ more recover_db.sh
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export OLD_BACKUP_DATE=`date +%Y%m%d -d "-8days"`
/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" << EOF
spool /orabak/${BACKUP_DATE}/reboot_db.log
shutdown immediate
startup nomount
spool off
exit
EOF
rman target sys/*******@erptar3 auxiliary
sys/******@molarac_test msglog=/orabak/${BACKUP_DATE}/recover_$BACKUP_DATE.log <<
EOF
DUPLICATE TARGET DATABASE TO molarac;
exit
EOF
/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" << EOF
spool /orabak/${BACKUP_DATE}/inituser.log
alter user MBS7_OPC identified by MBS7_OPC_2012;
alter user MBS7_INV identified by MBS7_INV_2012;
alter user MBS7_MSG identified by MBS7_MSG_2012;
alter user MBS7_PCM identified by MBS7_PCM_2012;
alter user MBS7_PMC identified by MBS7_PMC_2012;
alter user MBS7_HQS identified by MBS7_HQS_2012;
alter user MBS7_TMS identified by MBS7_TMS_2012;
alter user MBS7_CRM identified by MBS7_CRM_2012;
alter user MBS7_AP identified by MBS7_AP_2012;
alter user MBS7_TMSTEMP identified by MBS7_TMSTEMP_2012;
alter user MBS7_AR identified by MBS7_AR_2012;
alter user MBS7_SCM identified by MBS7_SCM_2012;
spool off
exit
EOF
cd /orabak
rm -rf $OLD_BACKUP_DATE
ps:expdp备份脚本:
#/bin/sh
. /home/oracle/.bash_profile
now=`date +%Y%m%d`
yesterday=`date +%Y%m%d -d "-1days"`
dmpfile=erprac_$now.dmp
logfile=erprac_$now.log
old_dmpfile=erprac_$yesterday.dmp
old_logfile=erprac_$yesterday.log
echo start exp $dmpfile ...
expdp "'/ as sysdba'" DUMPFILE=$dmpfile logfile=$logfile DIRECTORY=dir1 SCHEMAS=mbs7_oms,mbs7_crm,mbs7_msg,mbs7_ap,mbs7_ar,mbs7_inv,mbs7_pmc,mbs7_scm,mbs7_tms,mbs7_tmstemp,mbs7_opc,mbs7_hqs
cd /home/oracle/expdp
rsync -a $dmpfile --password-file=/etc/.rsync.pass
oracle@10.0.31.15::expdp
rm -rf $old_dmpfile
rm -rf $old_logfile
impdp还原脚本:
#/bin/sh
. /home/oracle/.bash_profile
now=`date +%Y%m%d`
yesterday=`date +%Y%m%d -d "-1days"`
dmpfile=erprac_$now.dmp
logfile=erprac_$now.log
old_dmpfile=erprac_$yesterday.dmp
old_logfile=erprac_$yesterday.log
echo start imp $dmpfile ...
/opt/app//oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" <<EOF
spool /opt/expdp/inituser.log
drop user mbs7_oms cascade;
drop user mbs7_crm cascade;
drop user mbs7_msg cascade;
drop user mbs7_ap cascade;
drop user mbs7_ar cascade;
drop user mbs7_inv cascade;
drop user mbs7_pmc cascade;
drop user mbs7_scm cascade;
drop user mbs7_tms cascade;
drop user mbs7_tmstemp cascade;
drop user mbs7_opc cascade;
drop user mbs7_hqs cascade;
exit;
spool off
EOF
impdp "'/ as sysdba'" DUMPFILE=$dmpfile logfile=$logfile DIRECTORY=dir1 parallel=12
cd /opt/expdp
rm -rf $old_dmpfile
rm -rf $old_logfile
FROM:http://ftc007.blog.163.com/blog/static/19657165020128575224666/
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export BACKUP_PATH=/orabak
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/backupset`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/archivelog`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/controlfile`
rman target / nocatalog msglog=$BACKUP_PATH/${BACKUP_DATE}/bak_0_$BACKUP_DATE.log << EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 database tag='level_0' format '$BACKUP_PATH/${BACKUP_DATE}/backupset/level_0_%d_%T_%s_%U';
sql 'alter system archive log current';
backup archivelog all format '$BACKUP_PATH/${BACKUP_DATE}/archivelog/arch_level_0_%d_%T_%s_%U';
release channel c1;
release channel c2;
release channel c3;
}
backup current controlfile tag='bak_ctlfile' format '$BACKUP_PATH/${BACKUP_DATE}/controlfile/ctl_file_%U_%T';
crosscheck backup;
delete noprompt expired backup;
crosscheck archivelog all;
report obsolete;
delete noprompt obsolete;
exit
EOF
cd /orabak
rsync -av $BACKUP_DATE --password-file=/etc/.rsync.pass
oracle@10.0.31.12::orabak
源端每日增量备份:
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export BACKUP_PATH=/orabak
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/backupset`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/archivelog`
echo `mkdir -p ${BACKUP_PATH}/${BACKUP_DATE}/controlfile`
rman target / nocatalog msglog=$BACKUP_PATH/${BACKUP_DATE}/bak_1_$BACKUP_DATE.log << EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 database tag='level_1' format '$BACKUP_PATH/${BACKUP_DATE}/backupset/level_1_%d_%T_%s_%U';
sql 'alter system archive log current';
backup archivelog from time "to_date(to_char(sysdate-1,'yyyy-mm-dd')||' 05:00:00','yyyy-mm-dd hh24:mi:ss')" until time "sysdate" format '$BACKUP_PATH/${BACKUP_DATE}/archivelog/arch_level_0_%d_%T_%s_%U';
backup current controlfile tag='bak_ctlfile' format '$BACKUP_PATH/${BACKUP_DATE}/controlfile/ctl_file_%U_%T';
release channel c1;
release channel c2;
release channel c3;
}
crosscheck backup;
delete noprompt expired backup;
crosscheck archivelog all;
report obsolete;
delete noprompt obsolete;
exit
EOF
cd /orabak
rsync -av $BACKUP_DATE --password-file=/etc/.rsync.pass
oracle@10.0.31.12::orabak
linux定时调用备份任务:
[oracle@oracle03 rman_script]$ crontab -l
30 05 * * 1,2,3,4,5,6 /orabak/rman_script/lev_1_bak.sh
30 05 * * 0 /orabak/rman_script/full_bak.sh
目标端定时还原脚本:
[oracle@gzrmzdata2006 rman_script]$ more recover_db.sh
#/bin/sh
source ~/.bash_profile
export BACKUP_DATE=`date +%Y%m%d`
export OLD_BACKUP_DATE=`date +%Y%m%d -d "-8days"`
/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" << EOF
spool /orabak/${BACKUP_DATE}/reboot_db.log
shutdown immediate
startup nomount
spool off
exit
EOF
rman target sys/*******@erptar3 auxiliary
sys/******@molarac_test msglog=/orabak/${BACKUP_DATE}/recover_$BACKUP_DATE.log <<
EOF
DUPLICATE TARGET DATABASE TO molarac;
exit
EOF
/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" << EOF
spool /orabak/${BACKUP_DATE}/inituser.log
alter user MBS7_OPC identified by MBS7_OPC_2012;
alter user MBS7_INV identified by MBS7_INV_2012;
alter user MBS7_MSG identified by MBS7_MSG_2012;
alter user MBS7_PCM identified by MBS7_PCM_2012;
alter user MBS7_PMC identified by MBS7_PMC_2012;
alter user MBS7_HQS identified by MBS7_HQS_2012;
alter user MBS7_TMS identified by MBS7_TMS_2012;
alter user MBS7_CRM identified by MBS7_CRM_2012;
alter user MBS7_AP identified by MBS7_AP_2012;
alter user MBS7_TMSTEMP identified by MBS7_TMSTEMP_2012;
alter user MBS7_AR identified by MBS7_AR_2012;
alter user MBS7_SCM identified by MBS7_SCM_2012;
spool off
exit
EOF
cd /orabak
rm -rf $OLD_BACKUP_DATE
ps:expdp备份脚本:
#/bin/sh
. /home/oracle/.bash_profile
now=`date +%Y%m%d`
yesterday=`date +%Y%m%d -d "-1days"`
dmpfile=erprac_$now.dmp
logfile=erprac_$now.log
old_dmpfile=erprac_$yesterday.dmp
old_logfile=erprac_$yesterday.log
echo start exp $dmpfile ...
expdp "'/ as sysdba'" DUMPFILE=$dmpfile logfile=$logfile DIRECTORY=dir1 SCHEMAS=mbs7_oms,mbs7_crm,mbs7_msg,mbs7_ap,mbs7_ar,mbs7_inv,mbs7_pmc,mbs7_scm,mbs7_tms,mbs7_tmstemp,mbs7_opc,mbs7_hqs
cd /home/oracle/expdp
rsync -a $dmpfile --password-file=/etc/.rsync.pass
oracle@10.0.31.15::expdp
rm -rf $old_dmpfile
rm -rf $old_logfile
impdp还原脚本:
#/bin/sh
. /home/oracle/.bash_profile
now=`date +%Y%m%d`
yesterday=`date +%Y%m%d -d "-1days"`
dmpfile=erprac_$now.dmp
logfile=erprac_$now.log
old_dmpfile=erprac_$yesterday.dmp
old_logfile=erprac_$yesterday.log
echo start imp $dmpfile ...
/opt/app//oracle/product/11.2.0/db_1/bin/sqlplus "/as sysdba" <<EOF
spool /opt/expdp/inituser.log
drop user mbs7_oms cascade;
drop user mbs7_crm cascade;
drop user mbs7_msg cascade;
drop user mbs7_ap cascade;
drop user mbs7_ar cascade;
drop user mbs7_inv cascade;
drop user mbs7_pmc cascade;
drop user mbs7_scm cascade;
drop user mbs7_tms cascade;
drop user mbs7_tmstemp cascade;
drop user mbs7_opc cascade;
drop user mbs7_hqs cascade;
exit;
spool off
EOF
impdp "'/ as sysdba'" DUMPFILE=$dmpfile logfile=$logfile DIRECTORY=dir1 parallel=12
cd /opt/expdp
rm -rf $old_dmpfile
rm -rf $old_logfile
FROM:http://ftc007.blog.163.com/blog/static/19657165020128575224666/
相关文章推荐
- linux自动运行rman增量备份脚本
- rman备份数据库后脚本不能自动退出
- oracle rman自动备份脚本
- mongo自动备份脚本和恢复
- RMAN自动备份脚本
- rman使用文档(备份脚本和恢复)
- Oracle Rman备份脚本与自动删除重复备份文件
- 自动备份和恢复数据库脚本及实现
- RMAN自动备份脚本
- 用RMAN进行自动备份的脚本
- RMAN自动备份脚本
- LINUX上RMAN自动备份脚本
- mysql自动备份、恢复脚本(linux的shell、windows的批处理)
- windows 脚本自动备份和恢复pg数据库
- LINUX上RMAN自动备份脚本 - 一
- RMAN自动备份脚本
- 【BASH】自动清理rman备份文件的脚本
- rman 自动备份脚本
- linux自动运行rman增量备份脚本
- RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)