大家好,这里是 Lucifer三思而后行,专注于提升数据库运维效率。
目录
前言
- 使用rman进行备份恢复时,通过客户端执行记录无法直观看出进度如何,可以通过SQL进行查询。
一、RMAN备份
- 以下命令,直接复制执行即可。
1 配置备份路径和计划任务
- 备份路径设置
SCRIPTSDIR=/home/oracle/scripts
BACKUPDIR=/backup
mkdir -p $BACKUPDIR $SCRIPTSDIR
复制
- 写入计划任务
cat <<EOF>>/var/spool/cron/oracle
30 00 * * 0 ${SCRIPTSDIR}/dblevel0_backup.sh
30 00 * * 1-6 ${SCRIPTSDIR}/dbleve1_backup.sh
EOF
复制
2 全备脚本
{
echo '#!/bin/sh'
echo 'source ~/.bash_profile'
echo 'backtime=`date +"20%y%m%d%H%M%S"`'
echo "rman target / log=${BACKUPDIR}/full_backup_\${backtime}.log<<EOF"
echo 'run {'
echo 'allocate channel c1 device type disk;'
echo 'allocate channel c2 device type disk;'
echo 'crosscheck backup;'
echo 'crosscheck archivelog all; '
echo 'sql"alter system switch logfile";'
echo 'delete noprompt expired backup;'
echo 'delete noprompt obsolete device type disk;'
echo "backup database include current controlfile format '${BACKUPDIR}/backfull_%d_%T_%t_%s_%p';"
echo 'backup archivelog all DELETE INPUT format '${BACKUPDIR}/archivelog_%d_%T_%t_%s_%p';'
echo 'release channel c1;'
echo 'release channel c2;'
echo '}'
echo 'EOF'
} >>${SCRIPTSDIR}/dbbackup_full.sh
复制
注意:全备脚本和增量0级备份等同。
3 增量备份脚本
- 每周日00:30 做0级增量备份脚本
{
echo '#!/bin/sh'
echo 'source ~/.bash_profile'
echo 'backtime=`date +"20%y%m%d%H%M%S"`'
echo "rman target / log=${BACKUPDIR}/level0_backup_\${backtime}.log<<EOF"
echo 'run {'
echo 'allocate channel c1 device type disk;'
echo 'allocate channel c2 device type disk;'
echo 'crosscheck backup;'
echo 'crosscheck archivelog all; '
echo 'sql"alter system switch logfile";'
echo 'delete noprompt expired backup;'
echo 'delete noprompt obsolete device type disk;'
echo "backup incremental level 0 database include current controlfile format '${BACKUPDIR}/backlv0_%d_%T_%t_%s_%p';"
echo 'backup archivelog all DELETE INPUT format '${BACKUPDIR}/archivelog_%d_%T_%t_%s_%p';'
echo 'release channel c1;'
echo 'release channel c2;'
echo '}'
echo 'EOF'
} >>${SCRIPTSDIR}/dbbackup_lv0.sh
复制
- 每周一至周六00:30 做1级增量备份脚本
{
echo '#!/bin/sh'
echo 'source ~/.bash_profile'
echo 'backtime=`date +"20%y%m%d%H%M%S"`'
echo "rman target / log=${BACKUPDIR}/level1_backup_\${backtime}.log<<EOF"
echo 'run {'
echo 'allocate channel c1 device type disk;'
echo 'allocate channel c2 device type disk;'
echo 'crosscheck backup;'
echo 'crosscheck archivelog all; '
echo 'sql"alter system switch logfile";'
echo 'delete noprompt expired backup;'
echo 'delete noprompt obsolete device type disk;'
echo "backup incremental level 1 database include current controlfile format '${BACKUPDIR}/backlv1_%d_%T_%t_%s_%p';"
echo 'backup archivelog all DELETE INPUT format '${BACKUPDIR}/archivelog_%d_%T_%t_%s_%p';'
echo 'release channel c1;'
echo 'release channel c2;'
echo '}'
echo 'EOF'
} >>${SCRIPTSDIR}/dbbackup_lv1.sh
复制
4 查看rman备份进度sql
SELECT sid,
serial#,
CONTEXT,
sofar,
totalwork,
round(sofar / totalwork * 100,
2) "%_COMPLETE"
FROM gv$session_longops
WHERE opname LIKE 'RMAN%'
AND opname NOT LIKE '%aggregate%'
AND totalwork != 0
AND sofar <> totalwork;
复制
二、RMAN恢复
1 恢复脚本
- 数据库开启到nomount
sqlplus / as sysdba startup nomount
复制
- rman恢复控制文件,开启数据库到mount
rman target /
restore controlfile from '/backup/control.bak';
alter database mount;
复制
- rman 恢复数据库
rman target / restore database; recover database;
复制
- 打开数据库到resetlogs
alter database open resetlogs;
复制
2 查看rman恢复进度sql
SELECT sid,
serial#,
CONTEXT,
sofar,
totalwork,
round(sofar / totalwork * 100,
2) "% Complete"
FROM v$session_longops
WHERE opname LIKE 'RMAN:%'
AND opname NOT LIKE 'RMAN: aggregate%';
复制
往期精彩文章
Oracle 一键巡检自动生成 Word 报告
Oracle 一键安装合集
Oracle一键安装脚本的 21 个疑问与解答
Oracle一键巡检脚本的 21 个疑问与解答
全网首发:Oracle 23ai 一键安装脚本(非 RPM)
Oracle 19C 最新 RU 补丁 19.24 ,一键安装!
Oracle Linux 7.9 一键安装 Oracle 19C
RedHat 9.4(aarch64) 一键安装 Oracle 19C
openEuler 22.03 LTS SP4 一键安装 Oracle 19C RAC
RHEL 7.9 一键安装 Oracle 19C 19.23 RAC
Oracle DataGuard GAP 修复手册
优化 Oracle:最佳实践与开发规范
DBA 必备:Linux 软件源配置全攻略
Linux 一键配置时钟同步全攻略
感谢您的阅读,这里是 Lucifer三思而后行,欢迎点赞+关注,我会持续分享数据库知识、运维技巧。
最后修改时间:2024-08-09 11:26:07
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
早起很难,坚持锻炼很难,静下心来读书也很难
1年前

评论
不找借口,不畏惧失败,去尝试和探索。当你勇敢跳出舒适圈去拥抱新变化时,就往期许的人生又迈进了一大步。
2年前

评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
691次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
635次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
546次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
494次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
490次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
480次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
469次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
418次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
358次阅读
2025-05-05 19:28:36