INFORMIXONLINE数据库因其具有高性能、高可靠性、支持数据完整性定义和检查等特性而被广泛应用。数据库被使用后,数据备份的安全可靠性便成为人们普遍关注的问题。下面根据笔者多年的学习和使用经验,对INFORMIXONLINE数据库常用的三种数据备份方式加以归纳和比较。
一、使用ontape工具进行数据备份
1.ontape工具的功能
ontape工具具有如下功能:备份和恢复ONLINE数据、备份和恢复逻辑日志、改变数据库日志状态等。在此着重介绍数据备份功能。
2.执行ontape备份数据的语法
ontape备份语法为:
ontape s L 备份级别(0、1、2)
在ONLINE处于联机或静止方式时, informix用户或具有DBA权限的用户可以通过执行上面的命令进行备份。根据备份方案安排进行0级、1级、2级备份。0级备份是对整个数据库的所有数据进行完整备份,1级备份是只对0级备份以后修改过的数据进行备份,2级备份只是对1级备份以后修改过的数据进行备份。
3.需要注意的问题
(1)在执行ontape备份前要对ONCONFIG文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。
(2)为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。对银行等重要部门数据,应每天进行0级备份。
(3)如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、ONCONFIG配置文件及非临时分配的dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。
(4)必须保证有足够可用的逻辑日志文件。如果剩余的逻辑日志空间小于单个逻辑日志的50%,INFORMIXONLINE将拒绝执行备份操作,必须先备份已使用过的逻辑日志,然后才能进行数据备份。
(5)保留ONCONFIG文件副本。在进行0级备份后,应备份ONCONFIG文件,因为在恢复0级备份时需要读ONCONFIG文件信息,如果ONLINE配置被修改,数据恢复将失败,如果恢复此0级备份,必须恢复当时的配置。
(6)备份可以在ONLINE联机或静止方式下进行,在备份过程中不能改变ONLINE运行方式,否则备份会被中断。
(7)不要使用后台方式执行备份命令(UNIX下的&),因为备份采用交互方式进行。
二、使用dbexport命令进行数据备份
1.dbexport命令简介
dbexport命令以ASCII码格式将数据写到文件或备份介质上(如磁带)。dbexport卸出的文件包括数据库模式文件和数据文件。
2.dbexport 命令语法
dbexport <database [X] [c] [q] [d] [ss] [{o <dir| t
<tapedev b <blksz s <tapesz [f <sqlcommandfile]}]
以上参数代表的意义如下:
< 中包括的内容为必选项,[ ]中的内容为可选项。
c 指示如果没有错误,则输出全部信息。
q 在标准输出设备上不显示错误信息、警告和所生成的SQL数据定义语句。
d 仅输出blob描述符,不输出blob数据。
ss 在模式文件中输出特定于服务器的用于创建数据库和表的信息,比如:初始的extent和附加的extent的大小、上锁方式、表所驻留的dbspace等信息。
o 指定数据输出文件的磁盘目录。
t 指定数据输出文件的备份介质名称。
b 指定备份介质块大小。
s 指定备份介质的最大存储量。
f 用于指定存储在备份介质上的模式文件名。
database 指定备份的数据库名称。
3.dbexport功能及使用时需注意的问题
(1)执行dbexport命令必须是informix用户或具有DBA访问权限的用户。
(2)用dbexport备份的数据必须用dbimport命令恢复。
(3)用户可以通过编辑模式文件来改变dbimport生成的数据库,如改变数据库名称或相关的表信息。
(4)dbexport以独占方式(exclusive mode)占用数据库,备份期间其他用户不能对数据库进行查询和修改及插入操作。
(5)模式文件不保留数据库的日志文件,用户使用dbimport命令建立数据库时必须为新建数据库选择一种日志方式(ANSI、buffered、nobuffered类型)。
(6)用户可以使用dbexport/dbimport命令,将INFORMIXONLINE和INFORMIXSE下的数据进行相互转换;也可以将数据在INFORMIXONLINE的不同版本之间转换。这种转换对数据库服务器的结构和ONLINE的配置没有特别要求。
(7)使用dbexport/dbimport命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。
三、 使用onunload命令进行数据备份
1.onunload命令简介
onunload命令以页为单位,使用二进制形式卸出数据,备份效率比dbexport高。
2.onunload命令的语法
onunload [l] [t <tape device] [b <block size]
[s <tape size] <database [:[owner.]<table]
以上参数代表的意义如下:
< 中包括的内容为必选项,[ ]中的内容为可选项。
l 指示onunload分别从配置参数TAPEDEV、TAPEBLK和TAPESIZE中读入磁带设备、块大小和备份设备容量值。
t 指定备份设备名。
b 指定备份设备的块大小。
s 指定备份设备的存储容量。
database 指定要备份的数据库。
owner 指定表的属主。
table 指定要卸出的表。
3.使用onunload需要注意的问题
(1)onunload备份的数据必须用onload命令进行恢复。
(2)onunload/onload不能实现不同版本的ONLINE之间的数据转移。
(3)onunload/onload是以磁盘页大小为单元存储的二进制数据,卸出和接受数据的计算机必须具有相同的磁盘页大小。
(4)只能将onunload卸出的数据装入ONLINE管理的数据库或表。
(5)用户必须具有DBA访问权限,才能执行onunload命令。
(6)onunload不保留初始表上定义的访问特权。
(7)onunload不保留初始表