前言

https://blog.csdn.net/m0_50546016/article/details/118863062?spm=1001.2014.3001.5501

  • 使用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数据库】RMAN备份恢复脚本分享,附SQL实时查看进度的更多相关文章

  1. Windows下Oracle数据库自动备份批处理脚本

    expdb命令版本 @echo off REM ########################################################### REM # Windows Se ...

  2. Oracle之RMAN备份恢复1-基础篇

    1,rman的作用与体系架构 1.1 什么是rman rman(recovery manager)是oracle8i以后dba的一重要工具一般位于$oracle_home/bin目录下,主要用来备份, ...

  3. oracle数据库rman备份计划及恢复

    1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog. 2.rman备份脚本: a.RMAN 0级备份 ...

  4. oracle数据库rman异地恢复

    自己想做两组rac之间的data guard,由于datafile,controlfile,甚至是archivelog都是存放在asm上的,直接复制数据有点不现实,asm磁盘总归都是要用的,所以想从a ...

  5. 通过expdp/impdp进行oracle数据库的备份恢复详细指导

    假定导出oracle数据库home目录为/opt/oracle,数据库用户为exp_user/test,导入用户为imp_user/test,给出如下样例,具体使用时根据实际情况修改路径及用户名/密码 ...

  6. oracle数据库rman备份与还原

    我是oracle 界的小白,由于公司领导要求,不得不硬着头皮在网上找rman备份还原的方法,废话不多说,具体看例子(window) 运行CMD: rman target 管理员账号/密码@orcl 备 ...

  7. oracle数据库视图,序列,索引的sql语句查看

    1.视图:相当于表,可以用select * from tab;查看所有表和视图: 2.序列和索引可以利用select * from user_indexes 或者user_sequences;进行查看 ...

  8. Oracle 【IT实验室】数据库备份与恢复之:如何对Oracle数据库文件进行恢复与备份

    任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制.当数据库发生故障后,希望能重新建立一个完整的数据 ...

  9. rman备份/恢复

    全备脚本 cat rman_full.sh #!/bin/bash export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/pro ...

  10. DG环境数据库RMAN备份策略制定

    DG环境数据库RMAN备份策略制定: 主库(Primary) 全库备份 归档备份 删除历史文件夹 备库(Standby) 删除归档 引用说明 主库(Primary) $ crontab -l 0 1 ...

随机推荐

  1. k8s node节点网络插件工作正常、kubelet工作正常情况下,node状态为NotReady,导致pod调度失败的排查过程。

    问题背景: 生产环境中部署的K8S环境,一个业务pod无法异常退出,状态为Termnation状态,导致业务系统部分功能不可用. 排查过程: 1.使用kubectl describe pod $pod ...

  2. HDFS常用命令操作

    HDFS常用操作命令如下: 查询目录 # 查看/目录下的目录和文件 hadoop fs -ls / # 递归查看/目录下的目录和文件 hadoop fs -lsr / 创建目录 # 新增目录/user ...

  3. DotTrace系列:1. 理解四大经典的诊断类型(上)

    一:背景 1. 讲故事 在所有与 .NET相关的JetBrains产品中,我觉得 DotTrace 是最值得深入学习和研究的一款,个人觉得它的优点如下: 跨平台诊断 (Windows,Linux,Ma ...

  4. 揭秘 ChunJun:如何实现 e2e&session 日志隔离

    本文将从 e2e 的基本介绍,e2e 的使用与扩展,session 日志隔离三个维度为大家带来 ChunJun e2e & session 日志隔离的分享. 大量具体代码和演示请看视频教程️ ...

  5. vscode GDB远程调试安卓

    如果是比较新的android ndk的版本,建议使用lldb进行调试,参考:vscode lldb远程调试 - OpenFDE - OpenFDE Docs,将lldbserver push到移动端, ...

  6. 如何彻底关闭Antimalware Service Executable

    如何彻底关闭Antimalware Service Executable? - Microsoft Community ------------------------------------< ...

  7. C# 字符串 MD5 转Base64 (PHP 的编码一样)

    https://www.cnblogs.com/xiaochu/p/4402195.html MD5加密字符串并转化为base64(C#和PHP代码相同实现) -------PHP------代码-- ...

  8. 4G DTU在废品智能回收系统中的应用

    1.概述 废品智能回收系统要实现的功能描述: 可回收物:可投放到智能垃圾分类回收箱的大致有这五大品类:纸类.纺织物.金属.塑料.玻璃.回收柜上各品类是分开箱体的,需要把对应的可回收物投放到对应的箱体内 ...

  9. ?? js 语法糖

    leetcode 2619 遇到了 ?? 语法糖,简而言之 可选链功能 就是防止抛出异常 caught TypeError: Cannot read properties of undefined ( ...

  10. glbegin undefined 解决方案 windows

    简介 RT answer 加入这两个库. LIBS += -lGLU32 LIBS += -lOpengl32 其实不用下载编译,vs自带了在目录E:\Windows Kits\10\Lib\10.0 ...