oracle的rac控制文件备份,RAC RMAN定期备份及删除脚本

oracle rman备份及删除脚本、

1.环境说明:

os--linux

oracle--11.2.03

一台服务器上两个库orcl prod

RAC双节点环境,采用节点1执行定制备份及删除脚本

2.备份策略说明:

1)周1 周4 周6 执行全库备份,加上备份产生的归档,周2 周3 周日执行归档日志备份

备注:因为数据库为10g以下的小库,采用全库备份;如果是大库而且变化较小的库,采用增量备份;

2)备份保存15天,15天以前的备份删除

3)oracle数据库的归档保存30天

举例以一台服务器上多个库(orcl 和prod两个库的情况下的脚本,如果一个库可以适当的去掉循环)

3.数据库配置

3.1更改控制文件记录的备份时长

alter system set control_file_record_keep_time=31;

备份及删除脚本上有配置configure retention policy to recovery window of 15 days;

备注:

CONTROL_FILE_RECORD_KEEP_TIME参数默认保留7天。

建议CONTROL_FILE_RECORD_KEEP_TIME参数值设置不小于选中数据库的备份保存周期的值。

理论上CONTROL_FILE_RECORD_KEEP_TIME的天数必须大于等于CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF xx DAYS

4.备份及删除脚本如下:

4.1全库备份脚本:

使用oracle用户创建如下脚本

vi /home/oracle/full_bak.sh

#! /bin/bash

export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

current_day=`date +%Y%m%d`

basdir=/home/oracle/rmanbackup

for i in {orcl,prod}

do

export ORACLE_SID=${i}"1"

Rdir=$basdir/$i

if [ ! -d $Rdir/$current_day ]

then

mkdir -p $Rdir/$current_day

rman target / <

run{

allocate channel d1 type disk maxpiecesize=30G;

allocate channel d2 type disk maxpiecesize=30G;

backup as compressed backupset database format '$Rdir/$current_day/full_%d_%T_%u.bkp';

sql 'alter system archive log current';

sql 'alter system archive log current';

sql 'alter system archive log current';

backup archivelog all not backed up 1 times format '$Rdir/$current_day/arclog_%d_%T_%u.bkp';

backup spfile format '$Rdir/$current_day/spfile_%d_%T_%u.bkp';

backup current controlfile format '$Rdir/$current_day/controlfile_%d_%T_%u.bkp';

crosscheck backup;

delete noprompt expired backup;

configure retention policy to recovery window of 15 days;

delete noprompt obsolete;

release channel d1;

release channel d2;

}

EOF

else

echo "$i's full db backup  on $current_day has been completed;"

fi

done

4.2归档日志备份脚本:

vi /home/oracle/arclog_bak.sh

#! /bin/bash

export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

current_day=`date +%Y%m%d`

basdir=/home/oracle/rmanbackup

for i in {orcl,prod}

do

export ORACLE_SID=${i}"1"

Rdir=$basdir/$i

if [ ! -d $Rdir/$current_day ]

then

mkdir -p $Rdir/$current_day

rman target / <

run{

allocate channel d1 type disk maxpiecesize=30G;

allocate channel d2 type disk maxpiecesize=30G;

sql 'alter system archive log current';

backup archivelog all not backed up 1 times format '$Rdir/$current_day/arclog_%d_%T_%u.bkp';

backup spfile format '$Rdir/$current_day/spfile_%d_%T_%u.bkp';

backup current controlfile format '$Rdir/$current_day/controlfile_%d_%T_%u.bkp';

crosscheck backup;

delete noprompt expired backup;

configure retention policy to recovery window of 15 days;

delete noprompt obsolete;

release channel d1;

release channel d2;

}

EOF

else

echo "$i's archivelog backup  on $current_day has been completed;"

fi

done

说明:

%d:Oracle数据库名称

%T:当前时间的年月日格式(YYYYMMDD)

%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称

4.3日志删除脚本:

vi /home/oracle/del_arclog_bak.sh

#! /bin/bash

export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

basdir=/home/oracle/rmanbackup

current_day=`date +%Y%m%d`

for i in {orcl,prod}

do

export ORACLE_SID=${i}"1"

rman target / <

run{

delete noprompt archivelog all completed before 'sysdate-30';

}

EOF

done

4.4备份空文删脚本:

vi /home/oracle/del_db_bak.sh

#!/bin/bash

removedir=/home/oracle/rmanbackup

dt=`date +%Y%m%d -d "15 day ago"`

current_day=`date +%Y%m%d`

for i in {orcl,prod}

do

Rdir=$removedir/$i

for subdir in `ls $Rdir`;

do

if [ "${subdir}" -lt "${dt}" ];

then

rm -rf $Rdir/$subdir >/dev/null

echo "on $current_day the directory $Rdir/$subdir has been removed."

fi

done

done

5.调试脚本

5.1更改脚本具有可执行权限

su - oracle

chmod u+x full_bak.sh

chmod u+x arclog_bak.sh

chmod u+x del_arclog_bak.sh

chmod u+x del_db_bak.sh

5.2设置定时任务前调试脚本

于脚本当前路径下执行,测试脚本

./full_bak.sh >> full_bak.log 2>&1

./arclog_bak.sh >> arclog_bak.log 2>&1

./del_arclog_bak.sh >> del_arclog.log 2>&1

./del_db_bak.sh >> del_bak.log 2>&1

6.配置定时任务执行脚本

在节点1上执行:

=========================

输入crontab -e

按下a键进入到编辑模式

输入如下

10 0 * * 1,4,6  /home/oracle/full_bak.sh >> /home/oracle/rmanbackup/backup.log 2>&1

10 0 * * 2,3,5,0  /home/oracle/arclog_bak.sh >> /home/oracle/rmanbackup/backup.log 2>&1

10 2 * * *  /home/oracle/del_arclog_bak.sh >> /home/oracle/rmanbackup/del.log 2>&1

10 3 * * *  /home/oracle/del_db_bak.sh >> /home/oracle/rmanbackup/del.log 2>&1

同时按下ctrl+c退出编辑模式

按下shift+: 输入wq 退出 crontab

crontab -l 查看已经建立的定时任务

原文:http://blog.51cto.com/candice/2094682

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 ADG 11.2 dg部署测试 2 ADG 12c Cascaded-Data Guard配置手册-11 3 ADG 12c Data Guard配置手册-01 4 ADG AIX下Oracle 11G安装及DG配置规范 5 ADG BLOG_Oracle_lhr_一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 6 ADG Creating Standby Database with Grid Control-15 7 ADG data-guard-far-sync 8 ADG DataGuard环境搭建详细步骤(老方法) 9 ADG Dataguard实操steps 10 ADG Linux+Oracle 11g+RAC+12cc+adg国内业界最详细生产系统下实施文档 11 ADG Linuxel6.5 RAC+DG11204bestpratice 12 ADG Linuxel6.5 RAC+DG11204脚本安装 13 ADG Oracle 10g DataGuard实施文档 14 ADG ORACLE 11G DATAGUARD 搭建(RMAN duplicate方式-相同目录结构) 15 ADG oracle 11g rac+单机dataguard实施文档(详细) 16 ADG Oracle 11g:ORACLE ACTIVE DATA GUARD 17 ADG Oracle 11gR2 使用copy 数据文件搭建物理 Data Guard 18 ADG Oracle 11gR2-Data Guard 单机到集群 19 ADG Oracle 11gR2-Data Guard 单机到集群 20 ADG Oracle 12c dg-setup-rac-phys-standby-to-rac-prim 21 ADG oracle 12cR2 for linux 单机+dataguard实施文档(最详细) 22 ADG Oracle 19c rac+adg 23 ADG Oracle 9i搭建DG方案 24 ADG oracle active dataguard-deep-dive 25 ADG Oracle DataGuard部署 26 ADG oracle_11gR2_x64_RAC+ASM+DG(最新精编版) 27 ADG Oracle_Db_DG环境搭建中文图文手册DBA珍藏版 28 ADG Oracle_Db_DG环境搭建中文图文手册DBA珍藏版 29 ADG oracle11g adg部署 30 ADG oracle11g on docker for windows10 31 ADG oracle11g-dg不停机部署(终) 32 ADG oracle-active-data-guard 33 ADG rac_dg的搭建_步骤加总结 34 ADG step by step install oracle10gR2 for windows dataguard 35 ADG 某儿童医院_灾备切换演练_实施方案 36 ADG 在Docker上搭建Oracle 11G DG 37 ADG 主rac + 备rac 部署_blog版 38 DG Centos6.10部署Oracle10gDataGuard 39 DG 搭建一主两备 40 Install AIX 6.1上安装oracle 11g 41 Install AIX 7.1上安装Oracle 11g 需要注意的地方 42 Install Centos6.5下安装Oracle 11g 43 Install Centos6.5下安装Oracle 11g 44 Install CentOS7.3环境下Oracle安装手册 45 Install CENTOS7-64位下安装Oracle11g 46 Install Centos7安装Oracle12数据库 47 Install DB 静默安装 48 Install HP-UX平台安装ORA10g 49 Install LAB100 - v5 - Install new 19c software 50 Install Linux_Oracle 10.2.0.5_安装部署手册 净化版 51 Install Linux_Oracle 10.2.0.5_安装部署手册 净化版 52 Install Linux_Oracle_install 53 Install Linux6.5(RHEL6.5)安装ORACLE11g 54 Install Linux7%2Boracle12C安装实战 55 Install LINUX环境下静默安装ORACLE11gR2数据库软件 56 Install Linux下ODI安装 57 Install odi12c安装部署 58 Install Oracle 11.2 在裸设备上创建数据库 59 Install Oracle 12C 18C 19C 操作系统兼容列表及配置要求 60 Install Oracle 12C linux7安装文档 61 Install Oracle 12C linux7安装文档 62 Install Oracle 9i 10g 11g 操作系统兼容列表及配置要求 63 Install Oracle BIEE-12c-Linux安装配置手册 64 Install Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Solaris and MS Windows Operating Systems Installation and Configuration Requirements Quick Reference (12.112.218c19c) 65 Install Oracle Database 12c Release 1 Enterprise Edition and Oracle Real Application Clusters on IBM Power Systems with AIX7.1 66 Install Oracle Enterprise Manager上的Oracle企业管理器云控制13c第3版 67 Install Oracle Linux 8上的Oracle Database 19c安装 68 Install Oracle 安装 20140712 69 Install Oracle 补丁介绍及安装操作说明 70 Install OracleLinux6.5下安装Oracle11g_文件系统 71 Install RedHat5.5安装Oracle11G_R2 72 Install rhel7安装oracle10g-11g-12c注意事项 73 Install rhel7安装oracle10g-11g-12c注意事项 74 Install Solaris 10 x86安装oracle12c 75 Install Solaris 10安装oracle 10g 76 Install Solaris 10上的Oracle Database 11g第2版 77 Install ToadforOracle_DBA_Suite_1061Installation_Guide 78 Install 静默安装ORACLE11G数据库 79 Install 在 Solaris 11 SPARC 上安装 Oracle Database 12.1 的要求 (Doc ID 1602904.1) 80 Install 在Oracle Linux 6和7上安装oracle 18c 81 Master Note For Oracle Flashback Technologies (文档 ID 1138253.1) 82 NetBackup_Troubleshoot_Guide 83 OceanStorF面向Oracle数据库OLAP最佳实践 84 OEM Cloud Control 13.3 Installation on Oracle Linux 85 OEM Cloud Control 13.3 on Oracle Linux 7 静默安装 86 OGG goldengate安装文档 87 OGG oracle12c_ogg安装配置 88 OGG 某儿童医院_Oracle OGG&DG部署文档参考 89 openfile + vmware + centos7 90 openfile 安装 91 openfile 的配置方法 92 openfile 逻辑卷管理应用 93 Oracle 11gR2_概念手册中文版 94 Oracle 20c+体系结构图 95 Oracle Linux 5和6上的Oracle WebLogic Server 96 Oracle OCP课程实验v1.7 97 Oracle 迁移至 PostgreSQL 在华为 ARM 上的解决方案 98 Oracle 数据库隐含参数设置 99 Oracle 隐含参数 100 Oracle 诊断事件及深入解析10053事件 101 OS deploying-odg-with-oda-1615029 102 OS IBM AIX Oracle 19c-tips Shanmugam Oct2019 103 OS Red_Hat_Enterprise_Linux-6-DM_Multipath-zh-CN 104 OS SharePlex简易使用维护文档 105 OS 配置udev共享存储 106 RAC 10G添加删除节点 107 RAC 11.2.0.4 增删节点详细操作 108 RAC 11204 for Linux(RAC) 环境配置及数据库参数最佳实践 109 RAC 12c R2 GI 和RAC 安装文档 110 RAC 19c-rac-linux-install 111 RAC AIX 6.1安装Oracle 11203 112 RAC AIX 部署oracle 11GR2 集群实施报告 113 RAC AX7.3 oracle_rac12.2安装 114 RAC BLOG_Oracle_lhr_RAC 12cR1安装 115 RAC centos7.7部署oracle12.2.0.1rac 116 RAC deploying_oracle_rac_12c_rhel7_v1.1_0 117 RAC Guides_Rac11gR2OnLinux--(from redhat) 118 RAC Guides安装指南_Rac11gR1OnHPUX 119 RAC Guides安装指南_Rac11gR2OnAIX 120 RAC Guides安装指南_Rac11gR2OnLinux 121 RAC Guides安装指南_Rac11gR2OnSolaris 122 RAC Guides安装指南_Rac11gR2OnWindows 123 RAC Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5 124 RAC Install_Oracel_RAC_12.2.0.1_on_Oracle_Linux_6.5 125 RAC Installation walk-through - Oracle Grid-RAC 11.2.0.4 on Oracle Linux 7 126 RAC install-Oracle-11gR2-RAC-on-HP-UX-11.31 127 RAC linux 7.2 Oracle 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值