iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >ORACLE RMAN自动备份还原脚本设计
  • 405
分享到

ORACLE RMAN自动备份还原脚本设计

ORACLERMAN自动备份还原脚本设计 2017-05-10 21:05:54 405人浏览 猪猪侠
摘要

很多时候,我们DBA需要定时对生产环境进行整体备份,并恢复到测试环境,供开发人员调试或测试,如果数据量比较大的情况下,RMAN方式比较高效省时,下面策略是在生产环境部署备份任务,并在测试模拟环境进行定时还原的脚本。 生产库源端每周日全

很多时候,我们DBA需要定时对生产环境进行整体备份,并恢复到测试环境,供开发人员调试或测试,如果数据量比较大的情况下,RMAN方式比较高效省时,下面策略是在生产环境部署备份任务,并在测试模拟环境进行定时还原的脚本。

生产库源端每周日全备:

#/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

set encryption on identified by "*******" only;

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 from time "to_date(to_char(sysdate,"yyyy-mm-dd")||" 00:50:00","yyyy-mm-dd hh24:mi:ss")" until time "sysdate" 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方式传输至源端的测试环境:

rsync -av $BACKUP_DATE --passWord-file=/etc/.rsync.pass oracle@10.0.32.15::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

set encryption on identified by "*******" only;

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,"yyyy-mm-dd")||" 00:50: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方式传输至源端的测试环境:

rsync -av $BACKUP_DATE --password-file=/etc/.rsync.pass oracle@10.0.32.15::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@test rman_script]$ crontab -l

30 07 * * * /orabak/rman_script/recover_db.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

--rman离线高级复制恢复

rman auxiliary / msglog=/orabak/${BACKUP_DATE}/recover_$BACKUP_DATE.log << EOF

set decryption identified by "oraba_K0415";

run{

allocate auxiliary channel c1 type disk;

allocate auxiliary channel c2 type disk;

allocate auxiliary channel c3 type disk;

DUPLICATE DATABASE TO erprac BACKUP LOCATION "/orabak/";

}

至此,测试环境定时RMAN恢复任务还原成功!

©版权声明:本文为天凯DBS的原创文章,转载请附上原文出处链接及本声明,否则将追究法律责任。

更多DBA案例请关注访问天凯DBS!

您可能感兴趣的文档:

--结束END--

本文标题: ORACLE RMAN自动备份还原脚本设计

本文链接: https://www.lsjlt.com/news/2683.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux下oracle rman备份脚本代码
    本篇内容介绍了“linux下oracle rman备份脚本代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • Linux下Oracle自动备份脚本
    #!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_AD...
    99+
    2024-04-02
  • 如何进行ORACLE RMAN备份及还原
    这期内容当中小编将会给大家带来有关如何进行ORACLE RMAN备份及还原,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 RMAN可以进行增量备份:数据库,表空间,数据文件只有使用过的block...
    99+
    2023-06-06
  • oracle数据库使用rman备份脚本
    关于使用rman备份数据库的脚本 #!/bin/bash  export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/ap...
    99+
    2024-04-02
  • MySQL热备份与还原---利用mysqldump---备份脚本
    对extmail数据库进行每天01:00完全热备份,并可以完全恢复!一、先建立备份脚本,如下:vi mysql_extmail_bak.sh #!/bin/bash # Program ...
    99+
    2024-04-02
  • SQL Server2019数据库备份与还原脚本(批量备份)
    前言最近公司服务器到期,需要进行数据迁移,而数据库属于多而繁琐,通过图形化界面一个一个备份所需时间成本很大,所以想着写一个sql脚本来执行。 开始 数据库单个备份 ...
    99+
    2024-04-02
  • 如何实现alwayson的备份还原脚本
    这篇文章主要介绍如何实现alwayson的备份还原脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1、 备份数据库 在主副本上,将需要做AlwaysOn的数据库做一次全备和日...
    99+
    2024-04-02
  • Windows环境MySQL自动备份脚本
    Windows环境MySQL自动备份脚本 备份需求 每个库单独一个文件压缩备份文件晚上23点定时备份 解决方案 创建一个MySQL备份脚本mysql_backup.bat,并在Windows任务计划程序中设置自动执行。 创建一个新的文本文件...
    99+
    2023-09-15
    mysql 数据库 java
  • Linux如何定期自动备份脚本
    Linux如何定期自动备份脚本,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们在网维工作中,常常要备份一些资料,虽然事情不复杂,但是很费时间的,我在这里分享一...
    99+
    2023-06-16
  • 自动备份MYSQL的linux脚本分享
    本篇内容主要讲解“自动备份MYSQL的linux脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“自动备份MYSQL的linux脚本分享”吧! 这是我写的...
    99+
    2024-04-02
  • Oracle RMAN自动备份控制文件方法介绍
    RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover) 数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够...
    99+
    2024-04-02
  • Python自动备份脚本的示例代码
    目录一、前言二、代码一、前言 之前因为疫情常常不知道会不会被封在家里,又不想把电脑带过来带过去,就做了这个自动备份的脚本。 功能如下: 自动从指定根目录里将找到的所有指定后缀名的文件...
    99+
    2022-12-26
    Python 自动备份脚本 Python 备份脚本
  • linux下实现mysql自动备份的脚本
    这篇文章主要介绍“linux下实现mysql自动备份的脚本”,在日常操作中,相信很多人在linux下实现mysql自动备份的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • linux下mysql怎么自动备份shell脚本
    本篇内容主要讲解“linux下mysql怎么自动备份shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下mysql怎么自动备份shell脚本”吧!Linux 服务器上的程序每...
    99+
    2023-06-09
  • Oracle数据库中怎么实现一个自动备份脚本
    这篇文章给大家介绍Oracle数据库中怎么实现一个自动备份脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、备份脚本1、初始化变量,记录开始日志#变量  sysname=...
    99+
    2024-04-02
  • MySQL自动备份的脚本及异地定时FTP
    这篇文章主要介绍“MySQL自动备份的脚本及异地定时FTP”,在日常操作中,相信很多人在MySQL自动备份的脚本及异地定时FTP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Linux下怎么通过Shell脚本自动备份MongoDB
    本文小编为大家详细介绍“Linux下怎么通过Shell脚本自动备份MongoDB”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux下怎么通过Shell脚本自动备份MongoDB”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-27
  • 怎么用脚本让mysql自动批量备份数据
    这篇文章主要讲解了“怎么用脚本让mysql自动批量备份数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用脚本让mysql自动批量备份数据”吧! 获取...
    99+
    2024-04-02
  • Docker容器MySQL数据库的备份与还原,以及每天定时自动备份.
    1.快速启动mysql容器 1:拉取mysql镜像: 根据自己需要,我这个是Debian的5.7版本的镜像。 这个地方一定要注意: 有些版本的docker镜像里面移除了MySQL自带的工具。包括Mys...
    99+
    2023-09-29
    docker 数据库 mysql
  • 自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享
    这篇文章主要介绍“自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享”,在日常操作中,相信很多人在自动备份MySQL到FTP并定期清理过期备份的Shell脚本分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作