温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle rman如何在线热备份

发布时间:2021-11-12 09:41:31 来源:亿速云 阅读:196 作者:小新 栏目:关系型数据库

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


以下是我给出的一些关于备份的建议,作为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 <<EOF
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 <<EOF
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如何在线热备份”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI