关于Informix数据库灵活备份的探讨( 二 )


INFORMIXDIR=/u/informix
PATH=.:$PATH:$INFORMIXDIR/bin
DBDATE=y4md.
LANG=englishus.8859
TERM=vt100
INFORMIXSERVER=onlinea
export LANG INFORMIXDIR PATH DBDATE INFORMIXSERVER TERM
rm *.tar
YYMMDD=“date‘+20%y%m%d"”
mkdir $YYMMDD
dbexport acntdbs -o $YYMMDD
dbexport cashdbs -o $YYMMDD
dbexport jsacdbs -o $YYMMDD
.
.
DBDATE=MDY4
export DBDATE
dbexport motor -o $YYMMDD
dbexport tj2000 -o $YYMMDD
dbexport jstj -o $YYMMDD
.
.
FILENAME=$YYMMDD.tar
tar cvf $FILENAME $YYMMDD
ftp hp
由于再保险业务每季度才使用一次 , 故为其单独建立一个备份文件 , 让它只有在每季度应用的几天内执行 , 以节省空间 。fbbk文件内容如下:
INFORMIXDIR=/u/informix
PATH=.:$PATH:$INFORMIXDIR/bin
DBDATE=y4md.
LANG=englishus.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 fb96js -o $YYMMDD
dbexport fb962 -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:所要运行的命令

推荐阅读