由于再保险业务每季度才使用一次,故为其单独建立一个备份文件,让它只有在每季度应用的几天内执行,以节省空间。fbbk文件内容如下:
INFORMIXDIR=/u/informix
PATH=.:$PATH:$INFORMIXDIR/bin
DBDATE=y4md.
LANG=englishus.8859
TERM=vt100
INFORMIXSERVER=onlinea
export LANG INFORMIXDIR PATH DBDATE INFORMIXSERVER TERM
YYMMDD=“date‘+20%y%m%d’”fb
mkdir $YYMMDD
dbexport fb2000 -o $YYMMDD
dbexport fb96js -o $YYMMDD
dbexport fb962 -o $YYMMDD
FILENAME=$YYMMDD.tar
tar cvf $FILENAME $YYMMDD
ftp hp
2.磁带备份
tapebk文件内容如下:
tar rvf /dev/nrct0 /u/databk/$ FILENAME,把dbexport命令导出的数据文件拷贝到磁带上。
本命令可将 $HOME/$YYMMDD目录下当天产生的文件备份到磁带上。本文件中,tar命令使用了三个参数,其中r选项表示向磁带上拷入文件而不破坏磁带原来内容,v选项表示在拷贝过程中显示文件信息,f选项后面加上磁带设备名,指定文件向何处拷贝,n选项表示磁带机不倒带。
3.异地备份
通常我们用FTP命令通过交互方式在两台主机间传输数据,即需要手工输入目标主机的IP地址、用户名、口令等,这显然不符合自动备份的要求。这时,可以通过编写一个.netrc文件来达到目标,这一文件必须命名为.netrc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其他用户进行读访问。这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻找.netrc文件,如果能够寻找到,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。
在使用FTP命令之前,应先在另一台作备份用的UNIX机器上建一目录,以容纳备份文件,本文建的目录是/u/data 。需要指出的是,为了加快备份速度,最好位于局域网上。但为了增加安全系数也可以每季度或半年向省公司传送一次。
.netrc文件内容如下:
machine hp login data password 33aa
macdef init
prom
mput *.tar
bye
machine hp
# hp为作备份用的主机名
login data
#data为备份主机上的一个用户
password 33aa
#data用户的口令为33aa
macdef init
#定义一个名为init的宏,它将在自动注册进程的最后被执行
prompt
# 关闭交互提示
.netrc文件编写完成后,使用下述命令:
chmod 600 .netrc
这样.netrc文件就只能被该用户所访问。
4.启动备份进程
cron是一个永久进程,cron检查/usr/spool/cron/crontabs/目录中的文件,找到所要执行的任务和执行任务的时间。
crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、 command)组成,域之间用空格或Tab分开,其中:
minutes:分钟域,值的范围是0到59
hours:小时域,值的范围是0到23
day of month:日期,值的范围是1到31
month:月份,值的范围是1到12
day of week:星期,值的范围是0到6,星期日值为0
command:所要运行的命令
如果一个域是*,表明命令可以在该域所有可能的取值范围内执行。
如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。
如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。
如果日期域和星期域都有值,则这两个域都有效。
现在,我们编写一个文件,用以启动自动备份进程。值得注意的是,该文件只能在databk用户名下用crontab -e 命令来编辑,否则将不会被定时执行,文件名为databk,文件将放在/usr/spool/cron/crontabs 目录下。编辑完成后,可以在databk的$提示符下,用crontab -l命令来查看。
0 03 * * 2-6 /u/databk/motorbk
0 04 1-8 3,6,9,12 2-6 /u/databk/fbbk
0 05 * * 6 /u/databk/tapebk
databk文件内容:
0 03 * * 2-6 /u/databk/motorbk(星期二凌晨3时的备份实际上是备份的星期一的数据,余下类推)
# 每星期二至六3时对所有数据库执行备份并传送到hp机器中。
0 04 1-8 3,6,9,12 2-6 /u/databk/fbbk
# 逢3、6、9月的1日至此月8日每星期二至六4时对再保险数据库备份并传送到hp机器中。
0 05 * * 6 /u/databk/tapebk
# 每星期六5时将文件备份到磁带上。
经过以上的操作后,系统将按照所定的时间自动产生一个备份,并且自动将备份文件分别拷贝到磁带上和另一台主机上。这样,系统管理员就可以从备份数据的繁琐中解脱出来,而数据库既实现了磁带备份,又实现了异地备份,数据安全性得到了大大提高。
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。
比如数据库的备份任务可作如下安排:
星期一:完全导出(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:
第一步:用命令CREATE DATABASE重新生成数据库结构;
第二步:创建一个足够大的附加回段。
第三步:完全增量导入A:
$imp system./manager inctype= RECTORE FULL=Y FILE=A
|