myguangzhou
作者myguangzhou·2012-02-13 19:11
技术经理·Uniwise

Oracle RMAN定期备份脚本测试一例

字数 3482阅读 3522评论 0赞 0
今天做了个crontab定期作RMAN备份的测试,记录一下;容易疏忽的地方是脚本执行的环境变量。
 
1、检查crond进程是否已经起来
[root@racdb1 /]# service crond status
crond (pid  7827) 正在运行...
[root@racdb1 /]#
如果没有起来则用service crond start命令将该进程打开,并使它随系统启动而启动
#chkconfig crond on
 
2、编写RMAN备份脚本;并赋予X执行权限
[root@racdb1 /]# su - oracle
[oracle@racdb1 ~]$ pwd
/home/oracle
[oracle@racdb1 ~]$ cd scripts
[oracle@racdb1 scripts]$ more full.sh
rman target / nocatalog msglog=/rmanbak/bak_log/full_`date +%Y%m%d-%H%M%S`.log << EOF
run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup tablespace users tag 'tbs_users_bk' format '/rmanbak/data_bak/bk_%d_%T_%s_%U';
release channel ch1;
release channel ch2;
}
exit
EOF
 
注意:`date +%Y%m%d-%H%M%S`的``是英文输入法中的反引号,即数字键1旁边的那个符号;每次执行备份,则输出日志,日志格式为“FULL_年月日-小时分钟秒.log”。
 
[oracle@racdb1 scripts]$ chmod a+x full.sh
 
3、制定crontab作业运行脚本及作业发起时间;注意,最好用root来建立job,否则需要设定相应的环境变量;如果环境变量设置的不对,或者没有设置,那么它往往不能运行......这是最常见的错误!在此我为了简单起见,直接用root来执行作业
[root@racdb1 /]# crontab -e
0-59/5 * * * * su - oracle -c "/home/oracle/scripts/full.sh"
该作业每五分钟执行一次
 
然后用crontab -e来列出作业内容
[root@racdb1 /]# crontab -l
0-59/5 * * * * su - oracle -c "/home/oracle/scripts/full.sh"
[root@racdb1 /]#
4、一段时间过后,检查USERS表空间是否已经备份完成,检查日志输出
[root@racdb1 rmanbak]# cd data_bak
[root@racdb1 data_bak]# ll
总计 1940
-rw-r----- 1 oracle oinstall 393216 2012-02-14 bk_RACDB_20120213_1_01n381o4_1_1
-rw-r----- 1 oracle oinstall 393216 2012-02-14 bk_RACDB_20120213_3_03n3821f_1_1
-rw-r----- 1 oracle oinstall 393216 2012-02-14 bk_RACDB_20120213_5_05n382ar_1_1
-rw-r----- 1 oracle oinstall 393216 2012-02-14 bk_RACDB_20120213_7_07n382k7_1_1
-rw-r----- 1 oracle oinstall 393216 2012-02-14 bk_RACDB_20120213_9_09n382tk_1_1
以上看出已经生成备份集
 
[root@racdb1 bak_log]# ll
总计 20
-rw-r--r-- 1 oracle oinstall 1175 2012-02-14 full_20120213-184001.log
-rw-r--r-- 1 oracle oinstall 1175 2012-02-14 full_20120213-184501.log
-rw-r--r-- 1 oracle oinstall 1175 2012-02-14 full_20120213-185001.log
-rw-r--r-- 1 oracle oinstall 1175 2012-02-14 full_20120213-185501.log
-rw-r--r-- 1 oracle oinstall 1175 2012-02-14 full_20120213-190001.log
[root@racdb1 bak_log]#
可以看到已经有日志了,并且是每隔5分钟生成一个。
 
[root@racdb1 bak_log]# more full_20120213-190501.log
Recovery Manager: Release 10.2.0.4.0 - Production on Mon Feb 13 19:05:01 2012
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: RACDB (DBID=772196490)
using target database control file instead of recovery catalog
RMAN> 2> 3> 4> 5> 6> 7>
allocated channel: ch1
channel ch1: sid=113 instance=racdb1 devtype=DISK
allocated channel: ch2
channel ch2: sid=115 instance=racdb1 devtype=DISK
Starting backup at 13-FEB-12
channel ch1: starting full datafile backupset
channel ch1: specifying datafile(s) in backupset
input datafile fno=00004 name=+DATA/racdb/datafile/users.259.774579675
channel ch1: starting piece 1 at 13-FEB-12
channel ch1: finished piece 1 at 13-FEB-12
piece handle=/rmanbak/data_bak/bk_RACDB_20120213_11_0bn3836v_1_1 tag=TBS_USERS_BK comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-FEB-12
Starting Control File and SPFILE Autobackup at 13-FEB-12
piece handle=/u01/app/oracle/product/10.2.0/db_1/dbs/c-772196490-20120213-05 comment=NONE
Finished Control File and SPFILE Autobackup at 13-FEB-12
released channel: ch1
released channel: ch2
RMAN>
Recovery Manager complete.
[root@racdb1 bak_log]#
 
That is all!
 
 
 
 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广