教你 Informix 数据库的安全备份

2008-6-20  选择字号:  | |
打印本文章

  在SCO Unix下备份Informix数据库,一般的做法是通过tbtape或ontape命令在磁带介质上作各级备份。磁带备份具有使用灵活、存储方便和成本较低等特点。但是,采用磁带备份也会带来因磁带质量不佳而产生的可靠性问题。当所存储的业务数据的安全性和完整性至关重要时,我们就需要采用更安全的数据备份方法,例如双机热备份等等。这些方法相对来说十分可靠和安全,并且实时性强,可是所需要的软硬件投资很大。在实际工作中,我们找到了一种比较经济实用的方法,采用另外的一台计算机实现备份,即异机备份。

  一、备份的思路

  下面介绍一种方便实用而又十分安全可靠的Informix数据库文件异机备份方法,其指导思想是充分利用现有的软件和硬件资源,利用SCO Unix 5.0捆绑的NFS网络协议。为此,需要编制一个脚本,将Informix数据库文件于每个工作日夜晚的某一时刻自动备份到另一台SCO Unix主机上,这台主机有可能是企业升级主服务器后淘汰下来的闲置设备,或者是一台性能稍低、经过扩充硬盘后专门用于备份数据的服务器。备份机上可以没有安装Informix数据库管理系统,也不需要像双机热备份那样需要复杂的软硬件支持,一台普通的SCO Unix服务器就足够了。备份的方法是,首先在用于备份的主机(下面简称备份机)上安装NFS网络协议,再建立专用的备份目录,比如/u/archive,然后将此目录"输出"(export)到网络中。在运行Informix数据库的主机(下面简称主机)上先"安装"(mount)备份机的/u/archive目录到本机的某个目录,比如安装到/mnt目录,再利用Informix用户的定时文件/etc/cron/crontabs/Informix,自动在某一指定时刻使用数据库迁移命令dbexport进行备份。

  这个备份方法的最大优点是安全可靠,因为是异机备份,所以主服务器的崩溃与否不会影响到备份机; 另外,硬盘的可靠性本身就比磁带高得多,所以备份数据十分可靠。dbexport命令一般用于数据迁移,这里我们用它来备份数据,主要优点是: 首先,该命令除了备份数据外,还会在备份盘上用SQL语句写上数据库里各种表的结构和授权方式等信息,便于系统管理员在系统崩溃后重新建数据库,即使我们建数据库时的各种原始参数丢失了都没有关系,不像用ontape命令在磁带上写的备份数据,其格式只有在磁带机上才能阅读; 其次,因为不同的主机位于不同的物理位置,大大提高了数据的安全性和隐蔽性; 最后,系统的运行方式是通过自动定时文件的方式来完成的,时间可以由系统管理员任意选定,增加了备份的灵活性。采用这种方法和原有的磁带备份相结合,可以真正做到重要业务数据的万无一失。

  二、备份的实施

  实现异机备份的条件是,企业已经有了一个运转良好的计算机局域网,并且有通过TCP/IP连接到一起的2台SCO Unix主机,假设一台机器命名为app01,其IP地址是10.100.0.11,把它作为备份机使用;另一台机器命名为app02,其IP地址是10.100.0.22,是运行Informix数据库的主机。要求SCO Unix操作系统的版本为5.0以上,这点很重要,因为只有5.0以上版本的SCO Unix才捆绑备份所要用到的网络协议--Sun公司的NFS网络协议。此外,使用OperServer 3.0企业版或类似的版本也可以,这种版本也捆绑了NFS协议。以下是详细的操作步骤。

  第一步:配置和检测网络协议

  在备份机app01上以root身份登录,然后使用netconfig命令检测系统是否除了TCP/IP外,已经配置好NFS网络协议,若还没有配置,则增加该协议。

  第二步:建立关联

  用root身份在备份机app01上的/etc目录下建一个文件,文件名为exports,不用设置文件的属性,在文件中写上以下一行内容:

  /u/archive -accesss=app02
 
  说明:/u/archive是我们已经在独立分区建好的一个空目录,预留的空间应该比较大,以便于存放数据库的数据。参数access的意思是只允许名为app02的主机访问这个目录,从安全的角度考虑,这样设定是必须的。注意: 这里此目录是读写属性,不能定义成只读属性,否则我们无法通过网络在此目录区写信息。假设app02主机的IP地址是10.100.0.22,在备份机app01的/etc/hosts文件中应该有以下一行内容:

  10.100.0.22 app02
 
  存盘退出后运行命令exportfs:

  # exportfs /u/archive

  这个命令的含义是将目录/u/archive输出到网络上,您只需要运行一次即可。以后系统在重新启动时,会自动将/etc/exports文件中定义的目录按规定的属性输出到网络上。

  在备份机运行exportfs命令检测一下:

  # exportfs

  系统显示如下信息:

  /u/archive -access=app02
 
  这表示我们已经成功地将目录/u/archive输出到网络上。

  第三步:配置主机

  首先在app02主机上对备份机刚刚输出到网络的目录进行安装和测试。以root身份登录,运行如下命令:

  # mount app01:/u/archive/mnt

  注意:主机app02的/etc/hosts文件中应该有如下一行:

  10.100.0.11 app01
 
  10.100.0.11是备份机app01的IP地址。运行上述mount命令后就把备份机app01上的目录/u/archive映射成了主机app02上的/mnt目录。

  注意上面的最后一行,系统告诉我们,/mnt目录现在映射的文件系统是备份机app01上的目录/u/archive,已用空间达76%。上面的信息表示主机和备份机的TCP/IP网络、NFS等运行等一切正常。

  在app02主机以Informix身份登录,确认此时只有您一个人在使用数据库,否则采用onmode -s命令进入静态后,再执行onmode -m命令进入online状态,运行下面的命令

  $ dbexport database1 -c -q -o /mnt
  $ dbexport database2 -c -q -o /mnt

  这样,我们就把主机app02上的2个Informix数据库文件database1和database2备份到了备份机app01上的/u/archive目录下。在备份机上检查/u/archive目录,会发现已经有了主机app02上database1和database2的数据库文件。

  三、备份的方法

  现在我们看看在主机app02上用数据迁移命令配置自动定时备份的具体方法。假设主机上app02已经给Informix用户授予了运行mount和umount的权限,我们在Informix的根目录下编制一个shell脚本,脚本的算法结构如下:

  用ping检测与备份机网络连接正常与否?

  if 正常 then

  安装备份机的/u/archive目录到本机的/mnt目录

  使Informix保证单一用户状态

  用数据迁移命令dbexport逐个输出数据库到/mnt目录

  if 备份成功

  发送备份成功的邮件给Informix用户

  else

  发送备份不成功的邮件给Informix用户

  end

  卸载(umount)/mnt

  else

  发送网络不通、备份不成功的邮件给Informix用户

  end

  shell脚本编制完毕后,假设脚本名叫backup,设置为隐含和可执行,以便防止用户无意读写破坏脚本文件。可以在存盘时在文件名中加上一个控制符^A。这样,在列表显示目录时,该文件名看起来一切正常,但是实际上在中间隐含了一个控制符,不知道控制符的人永远打不开这个脚本。在$提示符下运行crontab -e命令,编辑Informix用户的定时执行文件,在文件中加上这样一行:

  30 23 * * 1,2,3,4,5 /u/Informix/back^Aup
 
  存盘后退出即可。上面一行的意思是,在星期一至星期五的晚上11点30分,系统自动运行文件/u/infomix/backup。

  至此,采用数据迁移方式通过NFS网络协议将Informix数据库备份到异地主机上的操作就基本上到此为止了。我们采用这种备份方式之后,至今一直十分可靠,并且在一次主服务器的意外崩溃的情况下,使用备份机的业务数据成功地恢复了数据库。

  实际上,可以对上述方法举一反三。比如,若我们尚未配置磁带机或磁带机发生故障,或根本不打算把数据备份到磁带机上,可以先在备份机app01上的独立分区内建立2个目录,一个叫/u/archive,用于存储主备份数据;另一个叫/u/logfile,用于存储逻辑日志。然后将这2个目录加到/exports文件中。在主机app02上运行mount命令,将备份机的上述2个目录分别安装到主机的/archive和/logback目录上,再运行onmonitor命令,将Informix的主备份磁带设备定义为/archive目录(这也是SCO Unix的优点之一: 系统将所有外设都作为文件系统来管理,反之亦然),逻辑日志的磁带设备定义为/logback目录。这样,当使用tbtape或ontape命令进行备份时,系统实际上是将数据写在备份机的/u/archive目录下,而逻辑日志写在备份机的/u/logfile目录下。

来源:ccidnet    
相关的新闻
相关的专家答疑
一般数据库服务器配置较低,且不会有专门的数据备份措施,一旦掉电或误操作,便容易出现数据丢失、数据库毁坏的情况,因此,需要一种简单而又有效的数据备份方法。
Informix-OnLine数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。本文针对Informix-Online数据库常用的三种数据备份方式加以归纳和比较。
下面介绍一种方便实用而又十分安全可靠的Informix数据库文件异机备份方法,其指导思想是充分利用现有的软件和硬件资源,利用SCO Unix 5.0捆绑的NFS网络协议。
OnLine动态服务器7.1为数据库管理员提供一种联机的增量备份工具,在命令行时,数据库管理员可以用ontape来作数据备份和逻辑日志备份。
本专题主要介绍SQL Server 2008的新增特征:SQL Server 2008中的T-SQL基本对象和操作、T-SQL的函数类型和数据类型以及新的安全特性等等。
本篇文章主要介绍SQL Server数据存储的物理对象和原理,包括SQL Server 2005和2008里的物理数据存储、SQL Server 2008数据类型(即Datetime、字符串、自定义及等)、在SQL Server数据库中加强数据的完整性……
本文为SQL Server 2008初学者指南,主要介绍SQL Server2008 T-SQL支持的基本元素和基本操作。
最新更新
专家答疑
技巧
Phillip Bracken
我怎样在Oracle中增加SGA_MAX_SIZE?在计算机启动的时候出现了以下错误:"ORA-03113: end-of-file on communication channel"。请您告诉我增加SGA的一些步骤。
Rudy Limeback
我想用REPLACE语句替换AddressLine1域里面的数据,也就是想删除逗号、周期、连字符,并将 '3 South '替换成'3 S ' 然后……
Brian Peasland
设计备份方案时主要考虑哪些因素?什么是RTO、MTBF和MTTR?我不敢100%肯定RTO,但是我觉得就是Return to Operation的意思。换句话说就是将系统返回到正常操作时间……