成都网站建设设计

将想法与焦点和您一起共享

oraclerman如何在线热备份

这篇文章给大家分享的是有关oracle rman如何在线热备份的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联公司是专业的兴国网站建设公司,兴国接单;提供成都网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行兴国网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!


以下是我给出的一些关于备份的建议,作为dba,rman备份策略思路考虑以下方面:
1、归档日志的重要性,例如是否需要经常找回历史较久归档日志分析。
2、总的备份空间大小考虑,当时空间足够的情况,尽量保留多点备份,如果库较小,但是产生的归档较多,可能几天的归档就超过了你的真个库的大小了,建议全备份的跨期缩短。
3、尽量留两次以上的全备份,而且是最好是备完再删除历史备份。

以下是脚本内容,分别是归档日志备份和数据库文件全备脚本,一旦发生问题时,可通过恢复全备,并使用归档日志恢复到当前。

归档日志备份脚本
##/opt/script/back_arch.sh
##用于平时的归档日志备份
. /home/oracle/.bash_profile
dt=`date +%Y%m%d`
logdir=/opt/script/log
if [ -d ${logdir} ]
then
sleep 1
else
mkdir -p $logdir
fi
logfile=${logdir}/backup_${dt}.trc
echo "------------`date '+%Y-%m-%d %H:%M'`---Start Backup----------------">>$logfile
rman target / log=$logfile <sql 'alter system switch logfile';
crosscheck archivelog all;
crosscheck backup;
delete noprompt expired backup;
run
{allocate channel c1 type disk;
backup Archivelog all filesperset=20 Format '/bak/rman_bak/bak_arch_%s_%p_%T' delete input;
Backup current controlfile format '/bak/rman_bak/bak_ctl_%s_%p_%T';
release channel c1;
}
exit;
EOF
echo "------------`date '+%Y-%m-%d %H:%M'`---End Backup----------------">>$logfile
find ${logdir}/*.trc -ctime +20|xargs rm -f

数据库文件全备份的脚本
##/opt/script/back_db.sh
##用于每个星期的全量日志备份
#!/bin/bash
. /home/oracle/.bash_profile
dt=`date +%Y%m%d`
logdir=/opt/script/log
if [ -d ${logdir} ]
then
sleep 1
else
mkdir -p ${logdir}
fi
logfile=${logdir}/backup_${dt}.trc
echo "------------`date '+%Y-%m-%d %H:%M'`---Start Backup----------------">>$logfile
rman target / log=$logfile <crosscheck archivelog all;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;           ---删除历史的备份
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup as compressed backupset Database
Format '/bak/rman_bak/bak_db_%s_%p_%T' filesperset=1
plus Archivelog filesperset=20 Format '/bak/rman_bak/bak_arch_%s_%p_%T';
Backup current controlfile format '/bak/rman_bak/bak_ctl_%s_%p_%T';
}
exit;
EOF
echo "------------`date '+%Y-%m-%d %H:%M'`---End Backup----------------">>$logfile
find ${logdir}/*.trc -ctime +20|xargs rm -fr

感谢各位的阅读!关于“oracle rman如何在线热备份”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


当前名称:oraclerman如何在线热备份
网页网址:http://chengdu.cdxwcx.cn/article/iisgoo.html