0 5 * * * /home/sybase/backup/autoftp.sh
其中,第一条命令的意思是在每天的02∶00开始自动执行脚本文件autodump.sh ,对数据库进行备份, autodump.sh 的编辑在后面讨论。第二条命令是在每日的05∶00自动执行脚本文件autoftp.sh ,将备份好的文件传输到远端一枢纽的机器上。
编辑脚本文件 dump.sh由crontab直接调用,存放在sybase用户的home目录下,它主要完成以下工作: 1、检查备份目录的空间 本部分实现的功能是:将目前备份目录的空间使用率与管理员定义的上限进行比较,若超出上限,则删除一个最早的备份文件。 MAX=65 ## 定义上限,可根据实际情况进行调整 ## bdf | tail -1 | read AVAIL USED FREE PER MOUNT USED=${PER%\%*} # # Test for more than 65% used # if [ "$USED" -gt "$MAX" ] then ll -t /sybdata/sybnm/dump/synm* | tail -1 |read AA BB UUSR GGRP SSIZE MM DD TT FNAME rm $FNAME 2>> /sybdata/sybnm/dump/backup.log fi 2、实施备份 备份工作通过isql调用备份脚本实现: isql -Usa -P -SSYBNM -o /sybdata/sybnm/dump/dump.log -idump.sql 为使sybase用户成功执行本操作,我们应同时将sybase的环境变量定制在dump.sh中,其主要命令可参考sybase用户的.profile文件。另外,本命令从外部读取的备份脚本dump.sql文件的内容如下: declare @ddate char(28) /* 定义一个变量,用于备份的文件名称 */ select @ddate = '/sybdata/sybnm/dump/synm' + convert(char(6), getdate(), 12) ,3,1,null)
/* 将当前日期进行转换 */ dump database nmdb to @ddate go
说明:该脚本将当前日期进行转换,形成备份的文件名,其格式为: synmyymmdd 3、将成功备份的备份文件传送到一枢纽的机器上
编辑autoftp.sh文件。
DATE=`date +%C%y%m%d`
ftp -i -n 192.168.1.1
user sybase worldcup
bin
lcd /sybdata/sybnm/dump
cd /backup/resmga/sybnm
prompt off
put synm{DATE}
bye
4、在一枢纽的机器上将全库备份恢复
load database synm from /backup/resmga/sybnm/ synm{DATE}
就可以将数据库恢复在远端的服务器上。
结构如下图:
四、运行维护:
将自动备份系统建立后,每天系统自动在本地进行一次系统备份。同时把备份文件传送到远端的机器上,远端的机器自动进行系统恢复。每天系统管理员需要做的工作就是检查备份和在远端的恢复是否成功。
当本地的资源管理系统出现问题时,能够立即切换到远端的服务器上,切换时间对比恢复时间可以忽略不计。从而大大降低了系统风险,使系统运行在一个安全的状态。
2006年12月,本地的磁盘阵列出现问题。在相关的小型机厂商HP公司的工程师诊断下,确认磁盘阵列出现问题,数据全部丢失,当时立即启动应急预案,将数据库指向远端的服务器上,在本地的硬件问题解决后,在非工作时间将数据再次导回来。而这些动作对前台来说仅仅中断了几十分钟,相对全部数据的丢失,其损失的时间可以忽略不计。
五、总结:
从这次资源管理系统容灾项目的实施,在出现故障后能够短时间恢复业务的正常应用来看。在电信行业中,各种重要的IT系统应该做到容灾。对于关键业务系统,必须做到应用级容灾,做到RTO=0,RP0=0。确保IT系统能够正常运行,为业务的正常有效开展保驾护航。