informix维护和管理.docx
《informix维护和管理.docx》由会员分享,可在线阅读,更多相关《informix维护和管理.docx(21页珍藏版)》请在冰点文库上搜索。
![informix维护和管理.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/f0d9d943-b53e-4ed9-8a61-cdc69906611d/f0d9d943-b53e-4ed9-8a61-cdc69906611d1.gif)
informix维护和管理
Informix Online数据库日常管理及维护
1、启动、关闭Informix数据库
1.1、自动启动Informix
启动Online命令为:
oninit
但一般情况下,将启动命令建立在/etc/rc2.d目录下,名字为S96informix,这样当启动操作系统时,Online随之启动。
编辑文件/etc/rc2.d/S96informix为如下内容:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=picc_online
ONCONFIG=onconfig.picc
exportINFORMIXDIRNFORMIXSERVERONCONFIG
INFORMIXDIR/bin/oninit
修改文件属性如下:
$chmod+x/etc/rc2.d/S96informix
1.2、自动关闭Informix
关闭Online命令为:
onmode-ky
但一般情况如下,将关闭命令建立在/etc/rc0.d目录下,名字为K01informix,这样当关闭操作系统时,Online随之关闭。
编辑文件/etc/rc0.d/K01informix如下:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=picc_online
ONCONFIG=onconfig.picc
exportINFORMIXDIRINFORMIXSERVERONCONFIG
INFORMIXDIR/bin/onmode-ky
修改文件属性如下:
$chmod+x/etc/rc0.d/K01informix
2、InformixOnline常见工作模式
offline(停止态)
quiescent(系统维护态)
online(运行态)
3、管理InformixOnline磁盘空间
Online初始化时,自动建立了一个名为rootdbs的dbspace。
该rootdbs存储Online的管理信息,包括物理日志、逻辑日志等。
当你建立一个数据库或表时,如果不指定dbspace,作为缺省,该库或表建立在rootdbs中。
所以,如果你想将库或表建立在某个dbspace中,则必须在SQL语句中指定dbspace名字。
如数据库名为‘stores’,我们将这个数据库建立在‘workdbs’dbspace中,SQL语句如下:
createdatabasestoresinworkdbs;
另外,建chunk或dbspace时,要指定原始磁盘设备名路径,所需磁盘空间大小,以及该块磁盘空间在原始磁盘设备中的偏移量。
其中,偏移量非常关键,要小心设置,否则容易造成chunk块之间空间上的重叠与覆盖。
例如:
假定原始磁盘设备/informixdbs1有500M空间,其中rootdbs用去前100M,如果要在/informixdbs1中建立一个新的chunk,偏移量应大于100M。
1)用onspaces命令建立dbspace
$onspaces-c-ddbspace名字-p磁盘设备-o偏移量-s尺寸
其中:
-c:
表示建立新的dbspace
-d:
dbspace名字
-p:
原始磁盘设备全路径名,如/informixdbs1
-o:
偏移量,以K字节为单位
-s:
dbspace中第一个chunk尺寸,以K字节为单位
2)用onspaces命令增加chunk
$onspaces-adbspace名字-p原始磁盘设备-o偏移量-s尺寸
其中:
-a:
表示为某个dbspace增加一个chunk,后跟dbspace名字
-p:
原始磁盘设备全路径名,如/informixdbs1
-o:
偏移量,以K字节为单位
-s:
chunk的尺寸,以K字节为单位
例如某数据库系统,在原始磁盘设备/informixdbs1上建立三个DBSPACE:
rootdbs:
Online初始化时缺省建立,第一个chunk尺寸为100M,偏移量为0;
workdbs:
存放应用数据库数据,第一个chunk尺寸为100M,偏移量为100M;
tmpdbs:
存放系统临时文件数据,第一个chunk尺寸为50M,偏移量为200M;
*tmpdbs必须在online初始化之前建立;
建立命令如下:
$onspaces-c-dworkdbs-p/informixdbs1-o100000-s100000;
$onspaces-c-dtmpdbs-p/informixdbs1-o200000-s50000;
4、InformixOnline日志管理
4.1、数据库日志方式:
无日志方式(对应非事物性应用)
无缓冲区日志方式
带缓冲区日志方式
符合ANSI标准日志方式
针对保险业务特点,INFORMIX建议使用无缓冲区日志方式建立数据库,以保证机器崩溃时,交易事务不会丢失,与带缓冲区日志方式相比,数据库并行处理速度慢。
可使用ontape命令修改数据库日志方式
用ontape打开事务日志:
$ontape-s-Ustores;打开数据库stores日志,日志方式为无缓冲区日志;
用ontape结束日志:
$ontape-Nlifeins;将数据库lifeins改为无日志方式。
4.2、物理日志的管理
物理日志保存数据被修改前的映象。
物理日志的位置和大小可以改变。
使用onparams命令改变物理日志的位置和大小,在Online进入静态方式后执行:
$onparams-p-ssize-ddbspace-y
其中-p:
表示物理日志
-s:
新的尺寸,后跟以K字节为单位的物理日志的大小
-d:
说明存放物理日志的dbspace名字
-y:
对所有的提问以“Yes”回答
注意:
分配给物理日志的空间必须是连续的,因此,改变之前要确认dbspace有足够的空间来存放物理日志。
4.3、逻辑日志的管理
逻辑日志保存数据在修改后的映象,逻辑日志空间的尺寸为逻辑日志文件尺寸与逻辑日志文件个数的乘积。
Online初始化后,已有逻辑日志文件的尺寸不可修改,要改变逻辑日志空间大小,只能修改逻辑日志文件个数,新增加的逻辑日志文件尺寸可以设为新的值,逻辑日志文件个数不得少于3个。
(1)、用onparams增加逻辑日志文件
$onparams-a-drootdbs
新增加的逻辑文件状态是A(A表示新增加的意思)。
必须建立rootdbs的0级备份后,新增加的逻辑日志文件才可使用。
(2)、增加一个具有新的尺寸的逻辑日志文件
$onparams-a-drootdbs-s新的日志尺寸
(3)、用onparams取消一个逻辑日志文件
$onparams-d-1logid
注意:
。
取消一个逻辑日志文件之前,必须做rootdbs的0级备份
$ontape-s.;该命令可做0级备份
*只有状态为F(Free)或A(Added)的逻辑日志文件才可被取消
*必须知道想要取消的逻辑日志的logid号
$onstat-1;该命令可查看逻辑日志文件状态及logid号
5、InformixOnline数据库备份及恢复
备份内容及目的:
数据备份:
备份数据库某个时刻的数据状态,当系统出现意外时用来恢复系统;
逻辑日志备份:
逻辑日志文件写满后,必须备份,才可被清空,继续使用。
如果所有的逻辑日志文件都被写满,则会引起系统崩溃。
另外,逻辑日志记录了上一次数据备份后数据库的改变,因此,逻辑日志备份也用于当系统出现意外时用来恢复系统。
5.1、数据备份:
(1)Online提供0级,1级,2级增量备份;
0级:
备份整个数据库系统;
1级:
备份从0级备份以后发生变化的数据;
2级:
备份从1级备份以后发生变化的数据;
(2)使用ontape命令备份数据
$ontape–s
执行该命令,系统会提示输入0,1,2级备份级别
(3)在整个系统正式运行之前,做一次0级备份,在每天业务系统结束工作后应做数据备份。
如果数据量不大,可每天做0级备份。
(4)管理好备份磁带,做好标记,如日期、时间、备份级别、所含逻辑日志号码
5.2、逻辑日志文件备份
(1)定时备份逻辑日志文件
定时做逻辑日志文件备份,系统只将已写满的逻辑日志文件备份到磁带上,然后清空,并释放这些日志文件。
做定时备份一定要在所有逻辑日志文件被写满之前进行。
所以,如果采用定时备份,要注意观察逻辑日志使用状况。
另外,如果经常有长事务发生,应避免使用定时备份,采用连续备份比较安全。
命令:
ontape-a
(2)连续备份逻辑日志文件
连续备份即逻辑日志文件写满一个,就备份一个,然后该日志文件被消空、释放。
因此,要做连续备份,必须保证磁带机中有磁带。
连续备份需占用一个屏幕或终端显示信息。
当磁带满时,系统会提示换带。
命令:
ontape-c
Informix建议使用连续备份,但连续备份将一直占用磁带机,如果系统有二个磁带机,可分别用作数据备份及逻辑日志备份,如果系统只有一个磁带机,会与数据备份发生冲突,可按下表方式进行切换:
时 间 操 作
每日业务开始及进行中保证磁带机中有磁带,并且有一个屏幕或终端在运行:
ontape -c
每日业务结束前1)停止ontape -c,记录磁带中保存的逻辑日志的号码
2)换磁带
3)运行ontape-s,(在业务量不大时建议使用0级备份)运行结束后
在磁带上标注日期,时间,备份级别,所含逻辑日志号码
4)换磁带
5)运行ontape -c
5.3、系统恢复
当系统出现错误,或者你想把系统恢复到某一时间点的数据时,你必须利用数据备份带和逻辑日志备份来恢复系统。
数据备份将系统恢复到做数据备份的时间点数据状态,逻辑日志备份能将系统恢复到数据备份时间点以后的数据状态。
命令:
ontape-r
敲入该命令后,你可根据系统提示,依次恢复最近的0、1、2级数据备份带及数据备份带之后的逻辑日志带。
6、系统诊断
online.log文件
数据库事务日志信息记录在$INFORMIXDIR/online.log文件中,平时应经常查看online.log文件信息,检查数据库有无异常。
当数据库出错时查看online.log文件可知道数据库系统出错原因及处理建议。
online.log非常有用,应很好地维护,定期清空,以防止文件过大难以查看。
finderr命令
当数据库出错时,一般带有错误号,利用finderr命令可以查出数据库系统出错原因及处理建议提示。
备份Informix-Online数据库三法
Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。
对于使用中的数据库,数据备份的安全可靠性便成为人们关注的焦点。
根据多年的学习和经验,笔者对Informix-Online数据库常用的三种数据备份方式加以归纳和比较。
一.使用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.使用ontape工具进行数据备份需要注意的问题
1)在执行ontape备份前要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。
2)为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。
对银行等重要部门数据,应每天进行0级备份。
3)如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、Onconfig配置文件及非临时分配的Dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。
4)必须保证有足够可用的逻辑日志文件。
如果剩余的逻辑日志空间小于单个逻辑日志的50%,Informix-online将拒绝执行备份操作。
必须先备份已使用过的逻辑日志,然后才能进行数据备份。
5)保留Onconfig文件副本。
在进行0级备份后,应备份Onconfig文件,因为在恢复0级备份时需要读Onconfig文件信息,如果online配置被修改,数据恢复将失败,如果恢复此0级备份,必须恢复当时的配置。
6)备份可以在online联机或静止方式下进行,在备份过程中不能改变online运行方式,否则备份会被中断。
7)不要使用后台方式执行备份命令(UNIX下的&&),因为备份采用交互方式进行。
二.使用dbexport命令进行数据备份
1.dbexport命令简介
dbexport命令以ASCII码格式将数据写到文件或备份介质上(如磁带)。
dbexport卸出的文件包括数据库模式文件和数据文件。
2.dbexport命令语法如下
dbexport[-X][-c][-q][-d][-ss][{-o-t-b-s[-f]}]
以上命令中参数的意义如下:
<>;中包括的内容为必选项,[]中的内容为可选项。
-c:
指示如果没有错误,则输出全部信息。
-q:
在标准输出设备上不显示错误信息、警告和所生成的SQL数据定义语句。
-d:
仅输出blob描述符,不输出blob数据。
-ss:
在模式文件中输出特定于服务器的用于创建数据库和表的信息,比如:
初始的extent和附加的extent的大小、上锁方式、表所驻留的dbspace等信息。
-o:
指定数据输出文件的磁盘目录。
-t:
指定数据输出文件的备份介质名称。
-b:
指定备份介质块大小。
-s:
指定备份介质的最大存储量。
-f:
用于指定存储在备份介质上的模式文件名。
database:
指定备份的数据库名称。
使用dbexport功能及需注意的问题
1)执行dbexport命令必须是Informix用户或具有DBA访问权限的用户;
2)用dbexport备份的数据必须用dbimport命令恢复;
3)用户可以通过编辑模式文件来改变dbimport生成的数据库,如改变数据库名称或相关的表信息;
4)dbexport以独占方式(exclusivemode)占用数据库,备份期间其他用户不能对数据库进行查询和修改及插入操作;
5)模式文件不保留数据库的日志文件,用户使用dbimport命令建立数据库时必须为新建数据库选择一种日志方式(ANSI、buffered、nobuffered类型);
6)用户可以使用dbexport/dbimport命令,将Informix-online和Informix-SE下的数据进行相互转换;也可以将数据在Informix-online的不同版本之间转换,这种转换对数据库服务器的结构和online的配置没有特别要求;
7)使用dbexport/dbimport命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。
三.使用Onunload命令进行数据备份
1.Onunload命令简介
Onunload命令以页为单位,使用二进制形式卸出数据,备份效率比dbexport高。
2.Onunload命令的语法
Onunload[-l][-t][-b][-s][:
[owner>;.>;
以上参数代表的意义如下:
<>;中包括的内容为必选项,[]中的内容为可选项
-l:
指示onunload分别从配置参数TAPEDEV、TAPEBLK和TAPESIZE中读入磁带设备、块大小和备份设备容量值
-t:
指定备份设备名
-b:
指定备份设备的块大小
-s:
指定备份设备的存储容量
database:
指定要备份的数据库
owner:
指定表的属主
table:
指定要卸出的表
使用onunload需要注意的问题
1)onunload备份的数据必须用onload命令进行恢复;
2)onunload/onload不能实现不同版本的online之间的数据转移;
3)onunload/onload是以磁盘页大小为单位存储的二进制数据,卸出和接受数据的计算机必须具有相同的磁盘页大小;
4)只能将onunload卸出的数据装入online管理的数据库或表;
5)用户必须具有DBA访问权限,才能执行onunload命令;
6)onunload不保留初始表上定义的访问特权;
7)onunload不保留初始表上定义的同义词。
以上三种数据备份方式各有特点,ontape备份对online参数配置前后一致性要求较高,但数据备份和恢复操作简单,备份和恢复速度较快;onunload备份以页为单位以二进制形式进行备份效率较高,数据恢复时只要计算机磁盘页大小一致即可;用dbexport所做的备份可以实现不同版本、不同Informix产品之间的数据转换,数据转移灵活方便。
为保证数据能够安全恢复,数据备份至少应该选择两种方式。
通过对Informix-Online数据库三种常用备份方法分析比较与归纳,用户可以根据实际情况选择适合自己需要的备份方式,来保证数据的安全恢复与转移
Informix Online数据库日常管理及维护
1、启动、关闭Informix数据库
1.1、自动启动Informix
启动Online命令为:
oninit
但一般情况下,将启动命令建立在/etc/rc2.d目录下,名字为S96informix,这样当启动操作系统时,Online随之启动。
编辑文件/etc/rc2.d/S96informix为如下内容:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=picc_online
ONCONFIG=onconfig.picc
exportINFORMIXDIRNFORMIXSERVERONCONFIG
INFORMIXDIR/bin/oninit
修改文件属性如下:
$chmod+x/etc/rc2.d/S96informix
1.2、自动关闭Informix
关闭Online命令为:
onmode-ky
但一般情况如下,将关闭命令建立在/etc/rc0.d目录下,名字为K01informix,这样当关闭操作系统时,Online随之关闭。
编辑文件/etc/rc0.d/K01informix如下:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=picc_online
ONCONFIG=onconfig.picc
exportINFORMIXDIRINFORMIXSERVERONCONFIG
INFORMIXDIR/bin/onmode-ky
修改文件属性如下:
$chmod+x/etc/rc0.d/K01informix
2、InformixOnline常见工作模式
offline(停止态)
quiescent(系统维护态)
online(运行态)
3、管理InformixOnline磁盘空间
Online初始化时,自动建立了一个名为rootdbs的dbspace。
该rootdbs存储Online的管理信息,包括物理日志、逻辑日志等。
当你建立一个数据库或表时,如果不指定dbspace,作为缺省,该库或表建立在rootdbs中。
所以,如果你想将库或表建立在某个dbspace中,则必须在SQL语句中指定dbspace名字。
如数据库名为‘stores’,我们将这个数据库建立在‘workdbs’dbspace中,SQL语句如下:
createdatabasestoresinworkdbs;
另外,建chunk或dbspace时,要指定原始磁盘设备名路径,所需磁盘空间大小,以及该块磁盘空间在原始磁盘设备中的偏移量。
其中,偏移量非常关键,要小心设置,否则容易造成chunk块之间空间上的重叠与覆盖。
例如:
假定原始磁盘设备/informixdbs1有500M空间,其中rootdbs用去前100M,如果要在/informixdbs1中建立一个新的chunk,偏移量应大于100M。
1)用onspaces命令建立dbspace
$onspaces-c-ddbspace名字-p磁盘设备-o偏移量-s尺寸
其中:
-c:
表示建立新的dbspace
-d:
dbspace名字
-p:
原始磁盘设备全路径名,如/informixdbs1
-o:
偏移量,以K字节为单位
-s:
dbspace中第一个chunk尺寸,以K字节为单位
2)用onspaces命令增加chunk
$onspaces-adbspace名字-p原始磁盘设备-o偏移量-s尺寸
其中:
-a:
表示为某个dbspace增加一个chunk,后跟dbspace名字
-p:
原始磁盘设备全路径名,如/informixdbs1
-o:
偏移量,以K字节为单位
-s:
chunk的尺寸,以K字节为单位
例如某数据库系统,在原始磁盘设备/informixdbs1上建立三个DBSPACE:
rootdbs:
Online初始化时缺省建立,第一个chunk尺寸为100M,偏移量为0;
workdbs:
存放应用数据库数据,第一个chunk尺寸为100M,偏移量为100M;
tmpdbs:
存放系统临时文件数据,第一个chunk尺寸为50M,偏移量为200M;
*tmpdbs必须在online初始化之前建立;
建立命令如下:
$onspaces-c-dworkdbs-p/informixdbs1-o100000-s100000;
$onspaces-c-dt