1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > linux oraclerman自动备份 Linux平台下的Oracle自动备份案例(使用RMAN)

linux oraclerman自动备份 Linux平台下的Oracle自动备份案例(使用RMAN)

时间:2020-08-05 14:17:13

相关推荐

linux oraclerman自动备份 Linux平台下的Oracle自动备份案例(使用RMAN)

有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具) /Linux/-10/91923.htm),现在补充下rman的案例。

为此写出下文,仅以记录并分享这个过程。

环境:

操作系统:RHEL5.4

数据库:Oracle 10.2.0

相关变量值:

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

备份的数据库实例名:test

备份的目标目录:/backup_rman

实现过程如下:

第一步:准备目录

mkdir /backup_rman

chown oracle:oinstall /backup_rman

chmod 755 /backup_rman

第二步:备份脚本程序的编写

1、创建备份脚本

切换到oracle用户,在oracle家目录下面创建bin目录,新建文件rman_backup.sh

mkdir bin

cd bin

touch rman_backup.sh

chmod 755 rman_backup.sh

编辑rman_backup.sh文件,添加如下内容:

#!/bin/bash

source /home/oracle/.bash_profile

/u01/app/oracle/product/10.2.0/db_1/bin/rman target / nocatalog cmdfile=/home/oracle/bin/rman_cmd log=/backup_rman/rman_full_`date +%Y%m%d%H%M`.log

2、创建rman的备份脚本文件

cd ~/bin

touch rman_cmd

编辑rman_cmd文件添加如下内容(根据需要,可以进行适当的修改):

crosscheck archivelog all;

delete noprompt expired archivelog all;

run {

configure retention policy to recovery window of 4 days;

configure controlfile autobackup off;

allocate channel c1 device type disk format '/backup_rman/rman_full_%T_%U' maxpiecesize=3G;

allocate channel c2 device type disk format '/backup_rman/rman_full_%T_%U' maxpiecesize=3G;

allocate channel c3 device type disk format '/backup_rman/rman_full_%T_%U' maxpiecesize=3G;

backup database plus archivelog delete all input;

backup current controlfile format '/backup_rman/rman_%T_CTL_%U';

backup spfile format '/backup_rman/rman_%T_SPFILE_%U';

release channel c1;

release channel c2;

release channel c3;

}

crosscheck backupset;

delete noprompt expired backup;

delete noprompt obsolete;

crosscheck archivelog all;

delete noprompt expired archivelog all;

第三步:添加crontab计划任务

使用oracle用户添加例行任务:

crontab -e

新打开的窗口中添加一下内容:

0 24 * * * /home/oracle/bin/rman_backup.sh

(*/3 * * * * /home/oracle/bin/rman_backup.sh)

注,括号内的可以是做测试的时候用的,每三分钟执行一次备份,例为每天凌晨24点执行备份

第四步:执行验证:

1、crontab成功执行验证:

在root下执行tail -f /var/log/cron,监控cron日志来确保crontab的成功执行:

Aug 31 00:20:06 model crontab[6380]: (oracle) BEGIN EDIT (oracle)

Aug 31 00:20:48 model crontab[6380]: (oracle) REPLACE (oracle)

Aug 31 00:20:48 model crontab[6380]: (oracle) END EDIT (oracle)

Aug 31 00:21:01 model crond[26958]: (oracle) RELOAD (cron/oracle)

Aug 31 00:21:01 model crond[6412]: (oracle) CMD (/home/oracle/bin/rman_backup.sh)

Aug 31 00:24:01 model crond[6621]: (oracle) CMD (/home/oracle/bin/rman_backup.sh)

2、查看rman是否执行,并且执行成功

a.可在rman执行的时候执行ps -ef | grep rman | grep -v grep来查看rman进程是否成功启动

b.查看/backup_rman目录中是否有备份生成的文件:

$ [emailprotected] /backup_rman> ls

rman_0831_CTL_0mnjvu15_1_1 rman_full_0831_0injvtrq_1_1

rman_0831_CTL_0vnjvu57_1_1 rman_full_0831_0jnjvtvs_1_1

rman_0831_SPFILE_0nnjvu18_1_1 rman_full_0831_0knjvu0c_1_1

rman_0831_SPFILE_10njvu5a_1_1 rman_full_0831_0lnjvu13_1_1

rman_full_08310021.log rman_full_0831_0onjvu1a_1_1

rman_full_08310024.log rman_full_0831_0pnjvu1e_1_1

rman_full_0831_0dnjvtrg_1_1 rman_full_0831_0qnjvu1e_1_1

rman_full_0831_0enjvtrg_1_1 rman_full_0831_0rnjvu1i_1_1

rman_full_0831_0fnjvtrg_1_1 rman_full_0831_0snjvu4s_1_1

rman_full_0831_0gnjvtrp_1_1 rman_full_0831_0tnjvu52_1_1

rman_full_0831_0hnjvtrp_1_1 rman_full_0831_0unjvu55_1_1

验证结果:rman自动备份任务执行成功!

推荐阅读:

Oracle基础教程之通过RMAN复制数据库 /Linux/-07/87072.htm

RMAN备份策略制定参考内容 /Linux/-03/81695.htm

RMAN备份学习笔记 /Linux/-03/81892.htm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。