论文部分内容阅读
随着烟草行业科技的不断发展,信息化系统与企业生产的核心数据关联程度日趋紧密,因此如何保障数据库核心数据的安全就显得非常重要,目前大多数单位是通过对本地硬盘、磁带进行双备份来对核心数据安全管理与备份的。
本地备份数据源文件是将数据以文件形式保留在服务器硬盘内或在机房内以磁带形式保存,当机房发生火灾或服务器损坏等意外事件发生时,备份的数据源文件就有可能会损伤或不完整,这将给企业造成巨大的损失甚至是灾难性的损失。
笔者通过多年维护南昌烟厂自动化物流系统的经验,在不增加硬件的前提下(不增加企业资本性的投入),研究出一种安全、有效、可行的数据备份方法:自动远程备份Oracle数据库数据。这种备份方法充分利用现有的服务器系统与分布在生产现场的终端系统,借助服务器的定时执行任务与ftp自动传输文件功能,实现了Oracle数据库生产数据自动远程备份。当本地机房遭到破坏或服务器硬盘损坏时,能较为完整并最大限度地保护好数据。
一、情况介绍
南昌卷烟厂物流自动化系统分为三个子系统:片烟、辅料、成品高架库。由Oracle9i数据库进行支撑,运行在IBM RS6000小型机上,另有一台IBM RS6000小型機备用,共用一个R A I D5磁盘阵列,每个硬盘大约为36G左右,共4块硬盘进行存储,整个系统分为2个卷组rootvg与awcvg。系统采用冷备份方式进行工作,各个高架库通过终端机系统进行生产任务的申请与调度管理。
二、设计思路
将数据的完全备份定为每晚23点时,以减轻服务器的工作负荷。备份的思路主要用到数据库导出export、ftp自动传输、IBM RS6000的crontab定时作业等功能。下面说明具体实现方式:
1.终端机的设置
在服务器启动定时任务时,执行FTP命令之前,应首先在系统内的终端机上,启动ftp服务。详细设置如下:
(1)进“控制面板”选择“管理工具”,在“管理工具”下选择“组件服务”,在“组件服务”下选择“服务本地”,然后启动ftp服务即可。
(2)设置ftp用户和密码。点击"我的电脑"单击右键,选择"管理",打开"本地用户和组"进行设置,之后打开安装好的internet信息服务(IIS),选择ftp站点,打开"默认ftp站点",右键进入属性设置,在"安全帐户里"面查找到设置好的ftp用户和密码.用户名为:FTPUSER,密码为:FTPUSER。
"主目录"中设置要上传的文件路径为D:\DB_ BACKUP
上述设置完毕以后,在服务器端通过ftp上传的文件,会自动放在终端机的D盘DB_BACKUP文件夹中。.
2.服务器端的设置
备份之前,先在服务器的上建一个DBEXP目录存储备份文件,将awc8数据库在用户模式下备份,备份保留周期为3天,备份文件向6台终端机自动发送,脚本文件为exp_ ftp.sh,放置路径为bin_path=/con/bin/EXP,
具体脚本如下:
termtbl="WAT001 WAT002 WAT003 WAT004 WAT005 WAT006"
termno=""
jikan=`/usr/bin/date +%H`
bin_path=/con/bin/EXP
exp_path=/DBEXP/export/bin/grep "bytes sent"$msgfil > /dev/null
if [ "$?" = "0" ] ;
then
status=0
fi
/bin/rm -f $cmp_file
/usr/local/bin/gzip $exp_file
/usr/bin/cp $cmp_file $sv_file
for termno in $termtbl
do
ftp_main done
exit $status
find /DBEXP/export -type f -mtime 3-exec rm {} \;#保留周期为3天
3.把备份文件自传输到终端机上
AIX平台下,Cron是一个永久进程,它由/etc/ rc.local启动执行。Cron检查/var/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:所要运行的命令
如果一个域是空,表明命令可以在该域所有可能的取值范围内执行。
如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。 如果日期域和星期域都有值,则这两个域都有效。
现在,我们编写一个文件,用以启动自动备份进程,文件名定为Oracle,文件将放在/var/spool/cron/crontabs
目录下。
Oracle文件中的内容如下:
00 23 * * * / bin_path=/con/bin/EXP/exp_ ftp.sh#
表示每天晚上23点对数据库执行备份,并把备份文件传送到6台终端机上。
经过以上的操作后,系统每天晚上23点对数据库执行备份,产生一个本地备份,并把备份文件传送到6台终端机上。终端机名为:wat001~006,从而实现了核心数据库的自动远程备份。系统管理员只需要定期清理远程备份主机的备份目录,该系统在南昌卷烟厂物流系统运行近8个月,目前系统整体状况良好,极大提高了南昌烟厂物流高架库系统的数据安全性,此项研究的实用性、稳定性、安全性得到了充分的验证,值得推广。
本地备份数据源文件是将数据以文件形式保留在服务器硬盘内或在机房内以磁带形式保存,当机房发生火灾或服务器损坏等意外事件发生时,备份的数据源文件就有可能会损伤或不完整,这将给企业造成巨大的损失甚至是灾难性的损失。
笔者通过多年维护南昌烟厂自动化物流系统的经验,在不增加硬件的前提下(不增加企业资本性的投入),研究出一种安全、有效、可行的数据备份方法:自动远程备份Oracle数据库数据。这种备份方法充分利用现有的服务器系统与分布在生产现场的终端系统,借助服务器的定时执行任务与ftp自动传输文件功能,实现了Oracle数据库生产数据自动远程备份。当本地机房遭到破坏或服务器硬盘损坏时,能较为完整并最大限度地保护好数据。
一、情况介绍
南昌卷烟厂物流自动化系统分为三个子系统:片烟、辅料、成品高架库。由Oracle9i数据库进行支撑,运行在IBM RS6000小型机上,另有一台IBM RS6000小型機备用,共用一个R A I D5磁盘阵列,每个硬盘大约为36G左右,共4块硬盘进行存储,整个系统分为2个卷组rootvg与awcvg。系统采用冷备份方式进行工作,各个高架库通过终端机系统进行生产任务的申请与调度管理。
二、设计思路
将数据的完全备份定为每晚23点时,以减轻服务器的工作负荷。备份的思路主要用到数据库导出export、ftp自动传输、IBM RS6000的crontab定时作业等功能。下面说明具体实现方式:
1.终端机的设置
在服务器启动定时任务时,执行FTP命令之前,应首先在系统内的终端机上,启动ftp服务。详细设置如下:
(1)进“控制面板”选择“管理工具”,在“管理工具”下选择“组件服务”,在“组件服务”下选择“服务本地”,然后启动ftp服务即可。
(2)设置ftp用户和密码。点击"我的电脑"单击右键,选择"管理",打开"本地用户和组"进行设置,之后打开安装好的internet信息服务(IIS),选择ftp站点,打开"默认ftp站点",右键进入属性设置,在"安全帐户里"面查找到设置好的ftp用户和密码.用户名为:FTPUSER,密码为:FTPUSER。
"主目录"中设置要上传的文件路径为D:\DB_ BACKUP
上述设置完毕以后,在服务器端通过ftp上传的文件,会自动放在终端机的D盘DB_BACKUP文件夹中。.
2.服务器端的设置
备份之前,先在服务器的上建一个DBEXP目录存储备份文件,将awc8数据库在用户模式下备份,备份保留周期为3天,备份文件向6台终端机自动发送,脚本文件为exp_ ftp.sh,放置路径为bin_path=/con/bin/EXP,
具体脚本如下:
termtbl="WAT001 WAT002 WAT003 WAT004 WAT005 WAT006"
termno=""
jikan=`/usr/bin/date +%H`
bin_path=/con/bin/EXP
exp_path=/DBEXP/export/bin/grep "bytes sent"$msgfil > /dev/null
if [ "$?" = "0" ] ;
then
status=0
fi
/bin/rm -f $cmp_file
/usr/local/bin/gzip $exp_file
/usr/bin/cp $cmp_file $sv_file
for termno in $termtbl
do
ftp_main done
exit $status
find /DBEXP/export -type f -mtime 3-exec rm {} \;#保留周期为3天
3.把备份文件自传输到终端机上
AIX平台下,Cron是一个永久进程,它由/etc/ rc.local启动执行。Cron检查/var/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:所要运行的命令
如果一个域是空,表明命令可以在该域所有可能的取值范围内执行。
如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。 如果日期域和星期域都有值,则这两个域都有效。
现在,我们编写一个文件,用以启动自动备份进程,文件名定为Oracle,文件将放在/var/spool/cron/crontabs
目录下。
Oracle文件中的内容如下:
00 23 * * * / bin_path=/con/bin/EXP/exp_ ftp.sh#
表示每天晚上23点对数据库执行备份,并把备份文件传送到6台终端机上。
经过以上的操作后,系统每天晚上23点对数据库执行备份,产生一个本地备份,并把备份文件传送到6台终端机上。终端机名为:wat001~006,从而实现了核心数据库的自动远程备份。系统管理员只需要定期清理远程备份主机的备份目录,该系统在南昌卷烟厂物流系统运行近8个月,目前系统整体状况良好,极大提高了南昌烟厂物流高架库系统的数据安全性,此项研究的实用性、稳定性、安全性得到了充分的验证,值得推广。