关键词不能为空

当前您在: 主页 > 英语 >

informix数据库手册

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-29 09:41
tags:

-nd

2021年1月29日发(作者:rango)











I


n


f


o


r


m


i


x






















上海欣方智能系统有限公司




[ Informix


数据库手册


]



版权声明




本书版权属欣方智能系统有限公司。任何单位或个人未经本公


司 书面许可,不得将本书的部分或全部内容进行任何形式的节


录、增删、印刷、复制、翻译 ,或以任何形式进行传播。



版权所有,侵权必究。




The copyright of this book belongs to CINtel Intelligent Network Co.,Ltd. No part of this


book may be extracted, added, deleted, pressed, copied, translated or transmited in any form or


by any means, without express written permission from CINtel Intelligent Network System .



Copyright? by CINtel Intelligent Network System Co.,Ltd.




74





1






[ Informix


数据库手册


]









1




基础知识和概念



.

< br>............................................... .................................................. .............................4



1.1



I


NFORMIX


动态服务器的基本术语


................. .................................................. ...................................4



1.1.1 chunk


.


.... .................................................. .................................................. ....................................4



1.1.2 dbspace


数据库空间



.


.......................................... .................................................. ........................4



1.1.3 page


数据页



.


............................. .................................................. .................................................. 4



1.1.4 tblspace ........... .................................................. .................................................. ..........................4



1.1.5 extent


.


... .................................................. .................................................. .....................................4



1.1.6


物理日志


....... .................................................. .................................................. ............................5



1.1.7


逻辑日志


....... .................................................. .................................................. ............................5



1.2


常用的数据库概念基础


... .................................................. .................................................. ..............5



1.2.1


数据库


(Database)


.


......................................... .................................................. .............................5



1.2.2


数据表


(Table)


.


........................... .................................................. .................................................5



1.2.3


索引


(Index)


....... .................................................. .................................................. ........................5



1.2.4


视图


(View) ... .................................................. .................................................. .............................6



1.2.5


查询


(Query) .. .................................................. .................................................. ............................6


1.2.6


存储过程


(Procedure) ..... .................................................. .................................................. ..........6



1.2.7


触发器


(Tigger) .................................................. .................................................. .........................7



1.2.8


事务


Transaction .............. .................................................. .................................................. ........7



1.2.9


数据的完整性控制



.


.............................. .................................................. ......................................7



1.2.10


并发控制



.


................................. .................................................. .................................................8



2




数据库的安装与配置



.


............................................. .................................................. .......................9



2.1


单机数据库的安装


..... .................................................. .................................................. ....................9



2.1.1


简介


......................... .................................................. .................................................. .................9



2.1.2


准备


Informix


所需的硬盘空间


......................................... .................................................. ........9



2.1.3


创建


informix


组和用户


(


开始


)


................. .................................................. ................................


1


0



2.1.4


安装


informix< /p>


产品


.......................... .................................................. .........................................


1


1



2.1.5


修改内核参数


(


一定要小心


) ......................... .................................................. ...........................


1


2



2.1.6


修改


chunk


的属性


............................ .................................................. .......................................


1


3



2.1.7


修改


sqlhosts< /p>


文件



............... .................................................. .................................................. ...


1


4



2.1.8


修改


onconfig< /p>


文件



.


... .................................................. .................................................. .............


1


5



2.1.9


初始化


OnLine


(基本成功)



.


.................................................. .................................................


2


1



2.1.10


创建其他


dbspace


.


........................................... .................................................. .......................


2


1



2.1.11


将逻辑日志移到


log dbs


(别忘了做)


.................. .................................................. ...............


2


2



2.1.12


检查


ESQL/C


是否安装成功



.


.................................................. .................................................


2


3



2.1.13


修改


Client



login script(


成功


) ................. .................................................. ..........................


2


3



2.2


在二台机器上搭建


INFORMIX



HDR


环境


(



CLUSTER


软件


)


............................................ .................


2


4



2.2.1


配置需求说明


< p>
.


................................ .................................................. ..........................................


2


4



2.2.2


修改两个


onconfi g


文件



.


. .................................................. .................................................. .......


2


5



2.2.3 Sqlhosts


文件示例:

................................................ .................................................. .................


2


5



2.2.4 /etc/services: ................. .................................................. .................................................. .........


2


5



2.2.5


做主从机


....... .................................................. .................................................. ..........................


2


5




74





1




[ Informix


数据库手册


]



2.2.6


验证双机

< p>
............................................ .................................................. .......................................


2


7



2.2.7


主从不一致的恢复



.


............................. .................................................. .....................................


2


7



2.3


.有


CLUSTER


软件数据库的安装 方案



.


............. .................................................. ................................


2


7



2.3.1


文件举例:



.


................................. .................................................. .............................................


2


7



3




数据库的启动和关闭



.


............................................. .................................................. .....................


3


3



3.1


数据库的启动:


...... .................................................. .................................................. .....................


3


3



3.2


数据库的关闭


:


......... .................................................. .................................................. ....................


3


3



3.3


双机的关闭的原则


:


....... .................................................. .................................................. ..............


3


3



4




备份与恢复



.


................................................. .................................................. .................................


3


5



4.1


概述


........... .................................................. .................................................. .....................................


3


5



4.2


当数据量较大时:


< p>
.


................................ .................................................. ..........................................


3


8



4.3


当数据量较小时



.


................................. .................................................. .............................................


3


8



4.4


备份顺序



(


以第一种方案为例


) ...... .................................................. .................................................


3


9



4.5


数据库恢复方法



.


................................. .................................................. .............................................


3


9



5




操作和维护命令



.

< br>............................................... .................................................. ...........................


4


1



5.1



简介



.


........................... .................................................. .................................................. ...................


4


1



5.2



权限



.


........................... .................................................. .................................................. ...................


4


1



5.3


ONMONITOR


... .................................................. .................................................. .....................................


4


1



5.4


DBACCESS



.


............................... .................................................. .................................................. ..........


4


2



5.5



O


N


L


INE


的启动和关闭



.


...................... .................................................. ...............................................


4


3



5.6



O


N


L


INE


的状态查询

< br>


.


....................... .................................................. ..................................................


4


4



5.7




D BSPACE


增加新的


CHUNK


< /p>


.


............................ .................................................. ..................................


4


5



5.8



数据移动



.


.................................................. .................................................. ......................................


4


6



6




常见问题和经验



.

< br>............................................... .................................................. ...........................


4


7



6.1



查看锁的信息



.

................................................ .................................................. ................................


4


7



6.2



查看物理和逻辑日志状态



.


........................................... .................................................. .................


4


7



6.3



查看一些统计信息



.


.............................................. .................................................. ..........................


4


7



6.4



查看数据库系统占用共享内存的情况


........... .................................................. ..............................


4


7



6.5



查看各


CHUNK


文件的读写量和读写率


........... .................................................. ................................


4


7



6.6



数据库目录结构检查



.


............................................. .................................................. .......................


4


7



6.7



数据库索引结构检查



.


............................................. .................................................. .......................


4


7



6.8



数据库数据结构检查



.


............................................. .................................................. .......................


4


7



6.9



查看数据库锁方法



.


.............................................. .................................................. ..........................


4


7



6.10



索引说明



.


.................................................. .................................................. ....................................


4


8



6.11


ONLINE


.

< p>
LOG


文件



.


........................................... .................................................. ..................................


4


8



6.12


FINDERR


命令



.


............................................. .................................................. .....................................


4


8



6.13



数据库系统恢复



.

< br>............................................... .................................................. ...........................


4


8



6.14



如何使用


UPDATE



STATISTICS


命令优化数据库?



.


............................... ......................................


4


9



6.1 5


当出现系统性能问题时要从哪些方面考虑?



.


.................................. ...........................................


4


9



6.16



数据库中有些数据可以看得到但无法删除,怎么办?


.... .................................................. .......


4


9



6.17



产品安装时出现

< p>
32776


错,怎么办?


.......... .................................................. .............................


4


9



6.18



安装产品时


ROOTDBS


上的逻辑日志无法删除,怎么办?


. .................................................. .........


4


9



6.19



如何解决长事物问题?



.

< p>
............................................ .................................................. ..................


5


0



6.20



数据库提示


-271


错误如何处理?



. .................................................. .............................................


5


0



6.21



如何改变物理日志的大小及位置?


............ .................................................. ...............................


5


0



6.23



如何作

INFORMIX


数据分片?



. .................................................. .................................................. ..


5


1




74






2






[ Informix


数据库手册


]


6.24



一般系统中包含哪几类错误号?



.. .................................................. .............................................


5


1



6.25



如何得到错误号

< p>
?


如何查询错误号


?


. .................................................. ..........................................


5


1



6.26



观察共享内存的

< p>
BUFFER


参数



.. .................................................. .................................................. .


5


3



6.27



批处理时系统


C


HECK


-P


OINT< /p>


时间很长,怎么办?



.


.............................................. ..........................


5


4



6.28



观察共享内存的使用情况



.


........................................... .................................................. ...............


5


4



6.29



检查数据库运行状态是否正常



... .................................................. ................................................


5


4



6.30



检查


DBSPACE


的使用情况



.


......................................... .................................................. .................


5


5



6.31



监测数据库日志文件



.


............................................. .................................................. .....................


5


6



6.32



I


NDEX


维护


...................... .................................................. .................................................. ..............


5


6



6.33



如何找对应应用占用内存较 多的进程和长时间执行的


SQL


语句



.


........................... ...................


5


6



6.34



双机由于网络中断导致都变为主机状态如何处理?


..... .................................................. ..........


5


7



6.35



检查大表和对大表的维护



.


........................................... .................................................. ...............


5


8



6.36


双主机故障的解决建议


.. .................................................. .................................................. ...........


5


8



6.37


应用切换脚本参考


.... .................................................. .................................................. .................


5


8



7




性能调整



.


.................................................. .................................................. ....................................


5


9



7.1


影响


CPU


的性能

............................................... .................................................. ..............................


5


9



7.1 .1


影响


CPU


使用率的配置参数和环 境变量


................................... ............................................


5


9



7.1 .2


监控系统


CPU


的使用状况


......................................... .................................................. ............


6


1



7.2


影响内存的性能


...... .................................................. .................................................. .....................


6


2



7.2 .1


影响内存使用效率的


Online


配置参数


.................................. ..................................................


6


2



7.2.2


如何监控内存使用情况


< /p>


.


............................ .................................................. ..............................


6


3



7.3


影响


I/O


的性能

............................................... .................................................. ..............................


6


3



7.3 .1


影响


I/O


的配置参数

< p>


.


.................... .................................................. ...........................................


6


3



7.3 .2


监控系统的


I/O


情况

< p>


.


.................... .................................................. ...........................................


6


4



8




其他



.


.. .................................................. .................................................. ..........................................


6


6



8.1


安装过程中常用的


UNIX


命令


.......................................... .................................................. ..............


6


6



8.2


缩写词表


......... .................................................. .................................................. ..............................


6


7



8.3



I


NFORMIX CLI


的配置图例


................... .................................................. .............................................


6


7



8.4


章节问题练习


....... .................................................. .................................................. ........................


7


0





74





3




[ Informix


数据库手册


]



1





础知识和概念



1.1 Informix


动态服务器的基本术语



1.1.1 chunk



online


系统中并 不使用


UNIX


的文件系统管理磁盘空间,而是有它自己的一套 机制,称


之为


“原始顺序访问方法”(


RSAM



。对数据库管理而言,


RA SM



UNIX


文件系统效果更


好。在这套机制中,用以指定给


online


系统的有效物理磁盘空间单元被称做


chunk


。一个


chunk


是一片连续的空间单元,


onlin e


数据最终存放于此,


因此


chunk



online


的物理存储实


体,


online


系统所做的空间管理工作都是 在


chunk


中进行的。


一个典型的< /p>


chunk


可能是


UNIX


的一个原始设备


(raw device)


,也可能 是一个


UNIX


文件。



1.1.2 dbspace


数据库空间



dbsp ace


是一个逻辑上的概念,一个


dbspace


是若干


chunk


的集合,每个

bspace


至少有


一个


chun k


,最先指定给他的


chunk


称为基 本


chunk


。若有必要可以给一个


d bspace


指定多



chunk


。若某一个


dbspace


的空间耗尽了( 即所有指定给他的


chunk


都满了),您可另外


再指定


chunk


给他。数据库和表可以建立在特定 的


dbspace


上,这也就决定了数据库和表最


大只能增长到他所在的


dbspace


空间那么大。 你不能决定你所建的库和表究竟处于该


dbspace


上的哪个


chunk


上,但你可以把库和表创建在一个指定的物理设备上 (先把位于某个


设备上的


chunk


指 定给一个


dbspace


,然后再把库和表建立在该

< p>
dbspace


上)。每个


online


系统至少有一个


dbspace


(根

< p>
dbspace



root

dbspace


),所有控制


online


系统的系统信息都


被置于其上。



1.1.3 page


数据页



当指定给


online


系统一个

< p>
chunk


后,该


chunk

就会被划分为一些更小的称为页(


page



的单位。页是


online


系统的基本


I/O


单位,所有存储在


online


系统中的数据实际都存储在页


上。例如,如果你想为一个数据库表存储一行, 该行的内容就会存储在一个页中;如果您想从


数据库中读取一行,存储该行内容的整个页 都会被读取到共享内存的缓冲区中。当某个特定的


机器


/


操作系统确定后,


online


系统的页大小 也就确定了。最常用的页大小为


2K


,也有的系统


使用


4K


的页。


Onlin e


系统中页的大小是不可改变的。



1.1.4 tblspace


一个


tblspace


是只分配给一个特定表的所有页的集合(一个


tblspace


是一个数据库表的


所有数据页的集合,因此一 个


tblspace=


一张表)。一个


tblspace


必须处在唯一的


dbspace


上。



1.1.5 extent


为表分配磁盘空间是以


extent


为单元进行的。< /p>


一个


extent


就是在创建表时确定好 的连续


的磁盘空间大小(固定的几个属性所占据的空间的大小)。每个表都涉及两个


extent


大小:


extent


size


为表初次分配的


extent


大小,在创建表后就分配了;


next


ex tent


依次追加到该表


上的


exte nt


大小。



注:一个


dbspace


可看作物理


chunk


的一个逻辑组,这些


chunk


可能分布在不同的磁盘



74






4






[ Informix


数据库手册


]

上,尽管他们都来自同一个


dbspace


;一个


tblspace


可看作


extent


的一个逻辑组,来自同一



tblspace< /p>



extent


可能分布在不同的


chunk


上。



1.1.6


物理日志



物理日志保存数据被修改前的映象。主要用于


fast rec overy



backup




1.1.7


逻辑日志



逻辑日志保存数据在修改后 的映象,保存数据库从上一次备份后的操作记录。比较有用。



1.2


常用的数据库概念基础



1.2.1


数据库


(Database)


Create Database DatabaseName [In Dbspace] [With {[Bufferd]Log|Log Mod Ansi}]


当不


指定数据空间时,数据字典系统表建立在


Roo t


数据空间


(Root


DBSpac e)


上,并且在这个库上


建其它表时,数据字典所在的表空间为 缺省表空间,而建立临时表时,缺省数据空间为环境变



DBS PACETEMP


,但使用


Fragment

< br>语句可以使表空间分布在多个数据空间上。我们可以


使用


Ontape



s [-B|-A|-U|-N] Data baseList


改变数据库的日志状态。


Oninit



p


初始化时将不操


作临时表空间。



*


注意



在< /p>


HDR


系统里改变数据库的日志状态后,需要从新做主从机。



1.2.2


数据表


(Table)


Create {Table TableName(ColumnDefinition [ConstraintDefinition])|


tmpT


ableClause} [WithRowIds][StorageOption][LockOption]


使用适时变量行锁可以提高事务的并行性,甚至可以申请多于设置的最大锁数,但锁的开


销将很大。对于需要成块操作的聚族索引表,设置成行锁是一个极好的方案。它不仅可以减少

< br>锁的开销,而且大大提高数据的访问速度。



1.2.3


索引


(Index)


Create [Unique|Distinct][Cluster] Index IndexName On {TableName|Synonym}


(ColumnNameListWithAscOrDesc) FillFactor percent [In DBSpace|FragmentClause]





< p>








UniqueCons traint




便

< br>已













Uni queAscIndex


,所以再次在该列上建立


Asc


索引将失败。我们可以在一个表上建立对应某


些列的多个索引,单要求 某列的索引顺序只有一种。


Cluster


指定索引的聚族属性 ,具有聚族


索引属性表的物理存储顺序将重新安排与其索引一致。它将加速表的查询与修 改,但对表的插


入和删除将需要更大的开销。并且索引的聚族属性对应单位为

< p>
DBSpace


,而非整个表。一个


表最多只能有 一个聚族索引,但


Alter Index IndexName To [Not] Cluster


语句可以将聚族属性


移到另外一个索引上。



FillFactor


的缺省值为


90


,它确定了索引数据结构(


B+


树,


Hash


桶)的紧凑程度,低紧

< p>
凑度的索引将使数据的插入操作变的非常的快。而高紧凑度的索引将使数据的查询性能大大提


高。但需要注意的是,装填因子只有在表的记录数超过


5,000


条并且占用空间超过


100


页时才


发生效用,再分段表上建立索引或建立分段索引时,


FillFacto r


的缺省值也可以设置在


Onconfig

配置文件的


FILLFACTOR


上。当不指定

< p>
DBSpace


时,其存储位置与表的数据空间



74





5




[ Informix


数据库手册


]



安排方案一致,


Fragment


也可以重新安排表的存储数据空间。



1.2.4


视图


(View)


Create ViewName(ColumnName)As SelectClause [WithCheckOption]


在查询子句中,< /p>


OrderBy,IntoTemp,Union


操作是不容许的 ,并且不能使用列显示标志,它


们为相应表的列名。


WithC heckOption


子句是我们不能通过视图对相应表不可视的记录进行访

< p>
问,也不能插入不符合视图定义的记录。



建立视图主要基于以下三个原因:



1.


防止机密数据泄密保护数据安全。



2.


建立有效的查询


,


简化数据查询方式。



3.


名 称变化而需保证程序不会随着数据的位置变化


,


保持数据的独立 性。



1.2.5


查询


(Query)


Select [All|Unique|Distinct] {Expression As ShowLabel|ColumnName,…}



FromClause[WhereClause][HavingClause][G roupByClause][OrderByClause]


[IntoTemp TableName[With No Log]] [Union[All] SelectClause]


Union


操作要求每个查询中的查询项目数相同,并且对应项 目的数据类型相兼容。如果没



All


属性,相同的记录将合并为一个。




(Outer)


查询保证即使第二个表或视图中没有符合条件的记录,它也能以空值与第 一个表


中相应的记录结合生成一条查询结果。




WhereClause


中,数据库系统先扫描前面 的表,再扫描后面的表,所以一般将数据量


较少的表或视图放在前面,因为这样设计可以 减少时间和内存开销


(SetExplainOn


跟踪报告


)




1.2.6


存储过程


(Procedure)


Create [dba] Procedure ProcedureName(ParameterList) [ReturningClause]


[OnExceptionProcess][MainStatementBlock]En dProcedure;


带有


dba


属性时,存储过程对象便具有


dba(DatabaseAmphitryon)(db a_privilege)


属性,


否则,它为主人特权


(owner_privilege)


属性。


O nExceptionProcess


处理意外事件。


Retu rn


VariableList[With


Resume]


将结果返回,


WithResume


标 识使存储过程返回后再次跳到返回点


执行后面的语句,所以


In formix


存储过程有返回多行结果的特性,它可以作为数据窗口的数据


源,在各种数据库开发工具中,我们可以使用游标来取得它的多行返回结果。



Informix


的存储过程中在定义变量时没有进行初始化工 作,后面的语句如果访问未初始化


的变量会发生例外错,如不对它进行处理,执行便会终 止返回。变量的类型会最可能地根据使


用的方式不同而自动转换,转换失败同样回触发意 外错。


Set


Debuge


File


To


pathname< /p>


可以


设置存储过程执行中的踪迹文件,利用它可调试存储过程,但 已调试好的存储过程应将跟踪语


句去掉,因为它会大大增加执行时的开销,


Trace On


打开跟踪,


Trace off


关闭跟踪。



存储过程定义举例


1




create dba Procedure sel_stu()


Returning Varchar(20);


Define tmp_name Varchar(20);



74






6






[ Informix


数据库手册


]


Set Debug File To


Trace On;


Let tmp_name=


Foreach sel_stu For select name Into tmp_name


From student


Return tmp_name With Resume;


End Foreach;


Return


Return


Trace off;


End Procedure



1.2.7


触发器


(Tigger)


CreateTrigger


TriggerName


[Operation]On[TableName]{ActionClause|[Re ferencingClau


se][ActionClauseReferencing]} ActionClause




器< /p>









< p>







使










据< /p>








(Update,Insert,Del ete)


时,能截取相应的操作参数,并可执行相应的处理,大大简化数据库程


序设计的难度。值得注意的是,再对触发器的处理中,不应再执行触发触发器自身的操作,这


用会造成死循环,其次触发器中要特别谨慎执行引起事务提交的动作,这样易造成事务的不完


整性。在触发器或触发的存储过程中,我们可以访问这次会话所定义的全局变量,这样一 次会


话中各执行单元的联系变得非常容易。



1.2.8


事务


Transaction


这种 约束条件就是一致性约束。数据库中存在的信息是对客观世界的反映,这就要求数据


库系 统中所用的运算都应保持数据的逻辑完整性,既要求数据库的任何状态变化都要能反映客


观世界的某种真实存在的合理状态。客观世界要保持合理状态的存在,总是有一定规则的,这

种客观的规则反映到数据库中就是数据库中的数据要满足一定的约束条件。我们不要求在每一


个简单的修改后就去验证一致性约束,这就是事务。因此说它将数据库从一致性状态转化成新

< p>
的一每个事务结束时系统都要检查一致性。例如银行中,有笔钱款要从甲账号转到乙账号下那


么发生的动作就是这一加一减操作是密不可分的。同时事务具有以下特点:


原子性:



一个事物或者成功的结束或者对数据库不产生任何影响。



一致性:



满足一切完整性约束,一个 成功的事物保持数据库的数据完整性。



隔离性:



事物内部的操作及使用的数 据对并发的其他事务是隔离的,其他事务访问到的数据还是该


事务发生前的状态。单个事 物未完成之前,永久性随后的任何故障及错误操作都不会改变其结


果。

< br>


1.2.9


数据的完整性控制



数据的完整性是指数据的正确性有效性与相容性保证数据库中的数据在输入修改过程中始


终符合原来的定义。



例如:职工性别 是男或女,职工年龄是大于


0


小于


70


的职工,所在的部门号必须是在的



7 4





7




[ Informix


数据库手册


]



有效的部门号等。



1.2.10


并发控制



修改数据库时可能会发生互相干扰,而使得当多个用户的并发进程同时存取数据库,并使


数据库的完整性遭到破坏,因此必须对多用户的并发性,导致错误的结果协调加以控制。





74






8






[ Informix


数据库手册


]


2





据库的安装与配置



2.1


单机数据库的安装



2.1.1


简介


< br>INFORMIX


的数据库服务器


(Database


Server)


产品目前分为三个系列,从产品的版本号


上可以把他们区分开来。版本


7.x


是传统的 单机数据库系列,称为动态服务器


IDS(Informix-


OnLine


Dynamic


Server)


,它采用了


INFORMIX


独有的动态可伸缩体系 结构


DSA



Dynamic


Scalable


Architecture


),适用于单机系统,包括


SMP


结构的机器。版本< /p>


8.x


是并行数据库系


列,称为扩展并行 服务器


XPS(Extended


Parallel


Server)


,适用于


Cluster



MPP


体系结构


的机群系统。版本


9.x


是对象关系数据库

(ORDBMS)


系列,称为通用服务器(


Informi x


Universal


Server


),主要用于比较新的数据库应用领域,如


web


应用以及一 些数据类型及其


操作都比较复杂的应用。


我们的智能网产品中使用了


7.x


版的

INFORMIX-OnLine


Database


S erver


(以下简称


OnLine


) 和


INFORMIX EMBEDDED SQL for C


(以下简称


ESQL/C


)两种产品。


Informix



每个产品都有详尽的针对具体机型的安装手 册,为了保证安装过程的顺利进行,同时还要求安


装人员有一定的


UNIX


系统管理经验。这些都要花费比较长的时间才能掌握。为了使一般的工


程技术人员也可以进行


INFORMIX


产品 的安装,下面对


INFORMIX


的基本安装和配置过程进


行了简单介绍。因为


UNIX


系统的复杂性 和不同机型之间的差异,如果遇到不能解决的特殊情


况,请及时与


INFORMIX



UNIX


的技术 人员联系。



2.1.2


准备


Informix


所需的硬盘空间



在正式开始安装之前,首先要对


Informix


所需的硬盘空间的大小和位置进行规划。


Informix


所 需的硬盘空间包括两部分:软件所需的空间和数据所需的空间。


7.2x


版的


OnLine



ESQL /C


软件安装后大约占


50MB


左右的 硬盘空间。数据所需的空间的大小和位置是由用


户应用需求和硬件配置来决定的,下面主 要讨论怎样规划初始的数据空间。



在一些简单的


DB


Server


产品(包括


Informix


SE


)中,往往借助于操作系统中的树型文


件系统来管理数据库的存储空间 。具体做法是,为每个


database


在文件系统中创建一个 目


录,该


database


中的每个< /p>


table


作为该目录下的一个文件,


S erver


只负责


table


文件内部 的管


理,


table


文件和该文件系统 下的其它文件共享存储空间。这样只要在创建


database


时指定了


它的目录名,以后存储空间的管理都由文件系统来完成。这种做法实现起来比较 简单,但是效


率比较低,灵活性和可靠性也差。



OnLine


不借助文件系统,而是自己来管理


da tabase


内部的存储结构。


OnLine

< br>的数据存


储空间的组织采用两级结构。首先整个数据存储空间分成多个

< p>
dbspace


。然后,每个


dbspace


又由多个


chunk


组成。每个

< p>
chunk


是一个


UNIX


的普通文件或块设备,其大小在创建时就确定


了,以后不能改变。每个


dbspace


创建时至少要包含一个


chunk


,以后可以根据需要随时增加


chunk


, 但是不能删除已有的非空


chunk


。每个

OnLine


实例(


Instance

)至少要有一个


root


dbspace


。数据库管理员


(DBA)


和数据库(


database


)和表(


table


)的创建者可以指定自己的


数据存放在那个


dbspa ce


上,但是不能控制具体是存放在该


dbspace


的那个


chunk


上,这是


OnLine


来决定的。


Dbs pace



chunk


之间的关系类似 于大多数


UNIX


系统中的逻辑卷


(V olume)


和物理分区


(Sub-disk)


之间的关系,往


dbspace


上增加


chunk


类似于卷的动态扩容。



数据空间的规划包括两部分工作:




74





9




[ Informix


数据库手册


]



1


.确定需要创建几个

< p>
dbspace


以及每个


dbspace


的用途。



2


.确定每 个


dbspace


的初始空间大小和位置,据此创建

< p>
chunk




这两部分工作是相互关联的。



数据空间的规划主要有以下作用:



1


.提高关键数据的可靠性。


root


dbspace


、日志文件和其他关键数据所在的


chunk


可以


建在采用


R AID


技术进行容错的磁盘阵列上或进行软件镜像。



2


.提高


I/O


性能。 在有多个硬盘和控制器的情况下,尽量将


I/O


操作均衡地分布 到各个硬


盘上。在多个硬盘的性能有差异的情况下,将最频繁存取的数据放在性能最高的 硬盘和分区


上。



3

< br>.方便备份和恢复工作。因为备份和恢复都是以


dbspace

< br>为最小单位的。因此将不同用


途的数据放到不同的


dbs pace


上可以减轻备份和恢复的工作量。


< br>一般说来,至少要创建


4



db space


,分工如下:



rootd bs


:存放系统数据和物理日志。


(



oninit



i

< br>时逻辑日志和物理日志都是放在


rootdbs


中的,一 定要把逻辑日志放在


logdbs



)


tempdbs


:存放临时表。



logdbs


:存放逻辑日志。



userdbs


:存放用户数据。


< /p>


每个


dbspace


的初始


chunk


的大小没有必要开得很大,非要把所有的硬盘空间都用完,


只要够用就可以了。因为


chunk


增加容易 删除难,把暂时不用的硬盘空间预留起来更加灵活。



chun k


有两种类型,一种是采用块设备作为


chunk


,称为


raw


disk


方 式;另一种是采用普


通文件作为


chunk

,称为


cooked


file


方式。不难理解,


raw


disk


方式要比


cooked


file


方式效


率高。为了提高性能,应该 尽可能采用


raw disk


方式的


c hunk




创建


raw disk


方式的


chunk


时要注意以下几点:



目前的


OnLine


版本,每个

chunk


最大只能到


2GB


,因 此创建


raw


disk


时大小不要超 过


2GB


,否则超过


2GB

< p>
的部分就浪费了。如果


dbspace


需要


2GB


以上的空间,必须创建多个


chunk




一些版本的


UNIX


,都把


volume


的最后 几


K


空间作为保留区。因此,如果你想创建一个


1000MB



chunk


, 在创建


volume


时,最好建


100 1MB


,以免


nformix


初始化时 失败。



如果要创建


cooked < /p>


file


方式的


chunk


,只要在相应文件系统中你想要放置


chunk


的位 置


创建一个空文件。命令为:



$$cat /dev/null <


想创建的空文件名


>


< p>
OnLine


初始化时,会将该文件增大到你设定的


chunk


大小。注意要保证该文件系统中


有足够的空间创建


chunk




2.1.3


创建


informix


组 和用户


(


开始


)

1.



informix


选择一个


home


目录,要保证该目录所在的文件系统有足够的空间安装


Informix


软件。查看文件系统的剩余空间用

< p>
df


命令。假设选定的


informix



home


目录名为


/ home/informix





74






10






[ Informix


数据库手册


]

2.


用图形界面的管理工具或以下命令创建


informi x


组和用户。



# groupadd informix


# useradd



g informix



m



d /usr/informix



s/usr/bin/ksh informix


举例:



useradd



g informix



m



d/usr/lscp



s/usr/bin/ksh lscp


useradd



g informix



m



d/usr/smp



s/usr/bin/csh smp


useradd



g informix



m



d/usr/ss7



s/usr/bin/ksh ss7

修改


informix


的口令



# passwd informix


修改

< br>/home/informix/.profile,


增加以下几行:

< p>


INFORMIXDIR=/usr/informix


INFORMIXSERVER=fepdb1


ONCONFIG=onconfig


CLIENT_LOCALE=zh_


DB_LOCALE=zh_


PS1=[`whoami`@`hostname`:`tty`]' $$PWD $$'


export PS1


PATH=$$PATH:$$INFORMIXDIR/bin


LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$$INFORMIXDIR/lib: $$INFORMIXDIR/lib/esql


export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH

解释:


fepdb1


为数据库


se rver


名称



onconfig



informix online


运行的配置方案。



LD _LIBRARY_PATH



informix


所需要的环境变量


.


CLIENT_LOCALE=zh_


DB_LOCALE=zh_


export CLIENT_LOCALE DB_LOCALE


2.1.4

安装


informix


产品



1.


将要安装的


INFORMIX


产品


(OnLine



ESQL/C)


从安装介质(磁带或光盘)展开到


inform ix





H OME









装< /p>









< p>








/dev/disk/ cdrom0a


,则过程可能为:



如 果需要开发环境需要装


esql


。需要把


clinet sdk


那张光盘先行展开并安装。



# mkdir /mnt


# mount



r /dev/disk/cdrom0a /mnt /*


先插入


IDS


的安装光盘


*/


# cd /usr/informix


# cpio



idv


# cpio



idv


# umount /mnt /*


然后取出


IDS


的安装光盘

< br>*/


解释:不同的系统设备文件名称不同。



2.


设置环境变量



# INFORMIXDIR=/usr/informix


# export INFORMIXDIR


执行安装命令



#cd /usr/informix /*


注意先装


ESQL/C< /p>


,再装


OnLine*/


#./installconn /*


需要输入产品的序列号和密码


ACP#J267193 PDEFJO*/


Your existing INFORMIX shared libraries, if any, will be replaced and upgraded.



74





11




[ Informix


数据库手册


]



Are you sure? [yes/no]yes


Is I-Connect being installed along with Informix database server


version 9.x (required to be run as user


(yes or no)


回车




Enter your serial number (for example, INF#X999999) >


WARNING!


This software, and its authorized use and number of users, are


subject to the applicable license agreement with Informix Software, Inc.


If the number of users exceeds the licensed number, the excess users may


be prevented from using the software. UNAUTHORIZED USE OR COPYING MAY


SUBJECT YOU AND YOUR COMPANY TO SEVERE CIVIL AND CRIMINAL LIABILITIES.



Press RETURN to continue,


or the interrupt key (usually CTRL-C or DEL) to abort.


回车




Informix Product: INFORMIX- Connect


Installation Directory: /usr/informix



Performing root portion of installation of INFORMIX- Connect...



Installation of INFORMIX-Connect complete



# ./installserver /*


需要输入产品的序列号和密码


*/


Installation and Configuration Script


This installation procedure must be run by a privileged user (Super User)


It will change the owner, group, mode, (and other file attributes on


Secure systems) of all files of this package in this directory.



There must be a user


Press RETURN to continue,


or the interrupt key (usually CTRL-C or DEL) to abort.


回车




Enter your serial number (for example, INF#X999999) >


ACP#J267193


Enter your serial number KEY (uppercase letters only) >


PDEFJO



WARNING!


This software, and its authorized use and number of users, are


subject to the applicable license agreement with Informix Software, Inc.


If the number of users exceeds the licensed number, the excess users may


be prevented from using the software. UNAUTHORIZED USE OR COPYING MAY


SUBJECT YOU AND YOUR COMPANY TO SEVERE CIVIL AND CRIMINAL LIABILITIES.



Press RETURN to continue,


or the interrupt key (usually CTRL-C or DEL) to abort.


回车



2.1.5

< br>修改内核参数


(


一定要小心


)


因为


OnLine


需要申请大量的共享 内存和信号量,因此,一般


UNIX


系统的缺省内核参数


都不能满足要求,必须进行修改。在


Informix


的联机说明文档


ONLINE_7.X


中给出了


OnLine


对内核参数的要求。在


OnLi ne 7.31X


版中,该文件路径为


/usr/inform ix/release/en_us/0333



74






12






[ Informix


数据库手册


]


该文件内容可能是:



INFORMIX-OnLine Dynamic Server Shared Memory and Kernel Parameters:


========= ================================================== ====



The following kernel parameters must be adjusted to the indicated values


for minimally acceptable Informix Online performance. See your Compaq/Digital


UNIX System Administrators Guide, or the doconfig (8) man page, for information


on adjusting these kernel parameters.



SHMMAX: 2147483647


SHMMIN: 1


SHMALL: Not Applicable


SHMMNI: 150


SHMSEG: 150


SHMBRK: Not Applicable


MAXMEM: Not Applicable


SEMMNI: 400


SEMMNS: 100


SEMMSL: 1600


NFILES: Not Applicable



LOCATION OF SHARED MEMORY:


=========================


The ONCONFIG variable SHMBASE should be set to the following


SHMBASE=0X200000000


可以用


vi /etc/sysconfigtab

< p>
按照如下格式再最后一行开始添加


:


ipc:


shm_max=2147483647


shm_mni=150


shm_seg=150


sem_mni=400


sem_msl=1600


SHMBASE=0X200000000



最好是用图形终 端


xmanager


登陆,用菜单修改


.


然后去检查一下


/etc/sysconfigtab




修改成功后,


R eboot


系统。



将该文件的内容和 操作系统的当前参数进行比较,如果比当前参数大,要把当前参数修改


称该文件要求的值 ,如果比当前参数小,一般不需要再作改动。



不同的


UNIX


系统修改内核参数的方法差异很大。下面介绍几种常用的操作系 统修改内核


参数的方法。


Sun


So laris


最简单,直接编辑


/etc/system


文件,然后


reboot


即可;


Digital


UNIX


可以用

sysconfig


命令进行修改,也可以用


CDE


提供的图形界面的


Kernel Tuner


工具,


因为只修改和


ipc



proc


有关的内核参数,因此不用重新连接内核,重新启动即可生效。


IBM


AIX


可以用集成化管理工具


smit


来修改内核参数。


HP-UX


可以用维护工具


sam


来修改内核参< /p>


数。


SCO


UNIX

< br>可以用


idtune


命令进行修改,也可以用字符界面的 集成化管理工具


sysadmsh



s coadmin




2.1.6


修改


chunk


的属性


6.1


文件方式:




74





13




[ Informix


数据库手册


]



$$ cd /*

当前用户为


informix


,进到


informix



home


目录< /p>


*/


$$ mkdir chunklink


$$ cd chunklink


fep1> cat /dev/null>rootdbs1 /*


建立空文件



物理日志是放在


rootdb


里的


*/


fep1> cat /dev/null>tempdbs1


fep1> cat /dev/null>logdbs1


fep1> cat /dev/null>userdbs1


fep1> cat /dev/null>userdbs2


fep1>chmod 660 * /*


修改权限为可读写


*/


# chown informix *


# chgrp informix *


# chmod 660 * /*


为所有的

< p>
chunkfile


名称


*/

< br>解释:


OnLine


要求


chu nk


文件的


owner



group


均为


informix

< br>,而且存取权限必须为


660


。因此要对所有的


chunk


执行以下命令:



裸设备方式:



逻辑卷一般有厂家帮助建立。



$$ cd /*


当前用户为


informix


,进到


informix


< p>
home


目录


*/


$$ mkdir chunklink


$$ cd chunklink


$$ ln



s /dev/rvol/infodg/vol01 rootdbs1


$$ ln



s /dev/rvol/infodg/vol02 tempdbs1


$$ ln



s /dev/rvol/infodg/vol03 logdbs1


$$ ln



s /dev/rvol/infodg/vol04 userdbs1


$$ ln



s /dev/rvol/infodg/vol05 userdbs2


切换到


root


用户



# cd /usr/informix/chunklink


# chown informix *


# chgrp informix *


# chmod 660 * /*


为所有的

< p>
chunkfile


名称


*/


解释:对于


raw


disk


方式的


chunk


,有些操作系统可能在每次< /p>


reboot


时自动会将


chunk


的设备名的


owner


< br>group


恢复成


root


,存 取权限也会恢复成原来的。这时就需要把以上修


改命令加到该操作系统的启动

< p>
shell script


中。



对于


raw


disk


方式的


chunk


,最好不要直接引用设备名,而是 再创建一个符号链来引用


它。这样当


chunk


的设备名需要改变时(比如


chunk


所在的硬盘出现 故障),可以很快将该


chunk


的符号链指向另一个设备,而 不需要修改


OnLine


的配置。



2.1.7


修改


sqlhosts< /p>


文件




/et c/services


文件中为


Informix


增加一个端口号,只要不和已有的端口号重复即可,假


设用

< br>7777




fepdb1 7777/tcp # Informix listen port


最后,修改


$$INFORMIXDIR/etc/sqlhosts


文件, 为每种通信方式写一行描述:



ipcshm


onipcshm



ipcshm


ipcstr


onipcstr



ipcstr



onsoctcp



Informix


增加一行:



fepdb1 onsoctcp fep1 fepdb1



74






14






[ Informix


数据库手册


]


其中每一列的含义如下:



第一列是< /p>


dbservername


,是数据库


c lient


访问


server


时要给出 的标识符。



第二列是


nettype


,指出该


dbservername


采 用的是哪种通信方式。



第三列是


ho stname


。用


hostname


命 令可以查到该机的


hostname








servicename




onsoctcp



ontlitcp





dbservern ame






etc/services


文件中已经定义的一个服务名,不 能直接写


TCP


端口号。在有些机器上,服务名


不能超过


8


个字符。对


oni pcshm



onipcstr


方式, 建议设成和


dbservername


相同。

< br>


OnLine


的数据库用户


( client)



Server


之间, 可以采用不同的通信方式:



Onipcshm


client



server


之间通过共享内存通信。只有当


client



server


位于同一台机器上时才可


以采用这种方 式。这种方式速度最快,而且所有的操作系统都支持。缺点是可能带来安全性和


可靠性方 面的问题。



Onipcstr


cl ient



server


之间通过


stream


pipe


通信。只有当


client



server


位于同一台机器上时


才可以采用这种方式。这种方式不会有共享内存可能带来 的安全性和可靠性方面的隐患。但是


不是所有的操作系统都支持这种方式,而且在有的操 作系统下,


onipcstr



oni pcshm


明显


慢。



ontlitcp



onsoctcp


client



server


之间通过


TCP/IP


通信。这是当

< p>
client



server

不在同一台机器上时的唯


一选择。


OnLine

< p>
根据当前机器的操作系统支持的网络


API



TLI


还是


socket

< br>,决定是采用


ontlitcp


还是

onsoctcp






OnLine

< br>Server




< p>
















指< /p>







dbservername



client








< p>


访





server











< br>变



INFORMIXSERVER

设成相应的


dbservername


。文件


$$INFORMIXDIR/etc/sqlhosts


中描述了

< p>
dbservername


对应的通信方式的具体参数。

< br>


首先要搞清楚当前版本的


OnLine


是否支持


onipcstr


方式,

TCP/IP


方式中支持的是


ontlitcp

< p>
还是


onsoctcp


。这些信息可以在上面提到 的


ONLINE_7.x


文件中找到。例如:

< br>ONLINE_7.x


可能是这样的:



Machine Specific Notes:


=======================


1. The Network Protocols/Interfaces supported for this platform are:


a. Berkeley sockets using TCP/IP


To use this protocol, the NETTYPE must be set to


in the ONCONFIG and sqlhosts configuration files.



b. IPC using stream pipe


To use this protocol, the NETTYPE must be set to


in the ONCONFIG and sqlhosts configuration files.


根据上述说明我们知道这台机器支持


onipcstr



onsoctcp




2.1.8


修改


onconfig


文件



首先,从配置文件模板


onconfig


中复制 出初始的


onconfig


文件。




74





15




[ Informix


数据库手册


]



$$ cd $$INFORMIXDIR/etc


$$ cp onconfig


然后进行以下修改:



ROOTPATH



的第一个


chunk


的路径


>


ROOTSIZE



的第一个


chunk


的大小


(



KB


为单位


)>


PHYSFILE


<


物理日志的大小


(



KB


为单 位


)>


LOGFILES


<


逻辑日志文件的个数


>


LOGSIZE


<


逻辑日志文件的大 小


(



KB


为 单位


)>


MSGPATH


<$$INFORMIXDIR/>


ALARMPROGRAM <$$INFORMIXDIR/etc/log_>


LTAPEDEV


/dev/null


LTAPESIZE


1024000


DBSERVERNAME


fep1db


DBSERVERALIASES




ipcstr


MULTIPROCESSOR


<



CPU



0


, 多


CPU



1>


NUMCPUVPS



个数


>


LOCKS 10000


BUFFERS

< br><


数据缓冲区的大小,以


page


为单位,一般是


2KB>


PHYSBUFF


320


LOGBUFF


320


LOGSMAX


<


最大逻辑日志文件个数


>


LRU_MAX_DIRTY



写盘的起始条件


>


LRU_MIN_DIRTY



写盘的终止条件


>


DRLOSTFOUND


<$$INFORMIXDIR/etc/und>


OPTCOMPIND 0



以上参数中有几个值需要作进一步说明:



1. <


物理日志的大小


>


OnLine


的性能优化手册中有关于最佳物理日志大小的计算公式。一 般在硬盘空间足够的


情况下


(


物理日志 放在


rootdbs



)


,将物理日志的大小设成


200MB


就可以了。



2



<


逻辑日志文件的大小


>



<


逻辑日志文件的个数


>



<


最大逻辑日志文件个数


>

< br>OnLine


的性能优化手册中有关于最佳逻辑日志大小的计算公式。在硬盘空间 足够的情况



(


逻辑日志准备放在


logdbs



)


,一般可以创建


30



5MB


大小的逻辑日志文件。因为


OnLine


初始化 时,只创建一个


rootdbs


,因此初始化时逻辑日志文件只 能放在


rootdbs


中。为


了把逻辑 日志文件放在我们希望的


logdbs


中,必须在初始化完成后 ,先创建


logdbs


,然后在


log dbs


中创建原定大小和数量的逻辑日志文件,最后将


root dbs


中的逻辑日志文件删掉。因


此,在上面修改参数的时候, 可以将


<


逻辑日志文件的个数


>


设成最小值


3



<< /p>


逻辑日志文件的


大小


>

< br>设成


5MB



<


最大逻辑日志文件个数


>


设成


100




3



<


数据缓冲区的大小


>

< p>
一般设成机器内存的


1/4


1/2


。例如:对于


1GB


内存的 机器,可以设为


256MB-512MB


之间的一个值。



4




写盘的起始条件


>




写盘的终止条件


>



BUFFERS


值比较大(比如大于


256 MB


)时,可以分别设为


1



0




5



DBSERVERALIASES



74






16






[ Informix


数据库手册


]

当该版本的


OnLine


不支持


o nipcstr


方式时,这里只填





文件系统方式的参照文件,具体的


dbspace


的大小根据实际情况调整:




#************************** ************************************************


#


#




INFORMIX SOFTWARE, INC.


#


# Title:


# Description: Informix Dynamic Server Configuration Parameters


#


#************************* *************************************************



# Root Dbspace Configuration



ROOTNAME rootdbs # Root dbspace name


ROOTPATH /usr/informix/chunklink/rootdbs1


# Path for device containing root dbspace


ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)


ROOTSIZE 1000000 # Size of root dbspace (Kbytes)



# Disk Mirroring Configuration Parameters



MIRROR 0 # Mirroring flag (Yes = 1, No = 0)


MIRRORPATH # Path for device containing mirrored root


MIRROROFFSET 0 # Offset into mirrored device (Kbytes)



# Physical Log Configuration



PHYSDBS rootdbs # Location (dbspace) of physical log


PHYSFILE 200000 # Physical log file size (Kbytes)



# Logical Log Configuration



LOGFILES 30 # Number of logical log files


LOGSIZE 500 # Logical log size (Kbytes)




# Diagnostics



MSGPATH /usr/informix/ # System message log file pathCONSOLE


/dev/console # System console message path


ALARMPROGRAM /usr/informix/etc/log_ # Alarm program path


SYSALARMPROGRAM /usr/informix/etc/ # System Alarm program path


TBLSPACE_STATS 1



# System Archive Tape Device



TAPEDEV /usr/informix/backup/ # Tape device path



TAPEBLK 16 # Tape block size (Kbytes)


TAPESIZE 102400000 # Maximum amount of data to put on tape (Kbytes)



# Log Archive Tape Device



74





17




[ Informix


数据库手册


]




LTAPEDEV /dev/null # Log tape device path


LTAPEBLK 16 # Log tape block size (Kbytes)


LTAPESIZE 102400000 # Max amount of data to put on log tape (Kbytes)



# Optical



STAGEBLOB # Informix Dynamic Server/Optical staging area



# System Configuration


SERVERNUM 0 # Unique id corresponding to a Dynamic Server instance


注:在


HDR


环境 这个值必需不同



DBSERVERNAME fep1db # Name of default database server


DBSERVERALIASES fep1db # List of alternate dbservernames


NETTYPE soctcp,2,50,NET # Configure poll thread(s) for nettype


Soctcp


为网络通讯协议



2



poll thread


线程的个数



50


为用户连接个数。



当选用共享内存方式时用


net.


共享内存方式比较 块。



选用网络方式用


cpu


性能会好一些。



DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.


RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)


MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi-processor


NUMCPUVPS 1 # Number of user (cpu) vps


不大于


c pu


的个数



SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one


NOAGE 0 # Process aging


AFF_SPROC 0 # Affinity start processor


AFF_NPROCS 0 # Affinity number of processors



# Shared Memory Parameters



LOCKS 200000 # Maximum number of locks


每个锁占用


44


个字节



BUFFERS 200000 # Maximum number of shared buffers


为内存的


20-30%


NUMAIOVPS # Number of IO vps


PHYSBUFF 128 # Physical log buffer size (Kbytes)


LOGBUFF 64 # Logical log buffer size (Kbytes)


LOGSMAX 100 # Maximum number of logical log files


CLEANERS 1 # Number of buffer cleaner processes


SHMBASE 0x200000000 # Shared memory base address


SHMVIRTSIZE 8000 # initial virtual shared memory segment size


SHMADD 8192 # Size of new shared memory segments (Kbytes)


SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited


CKPTINTVL 300 # Check point interval (in sec)


当数据的修改达到物理日志的


75


%,系统会自动做


checkpoin t



checkpoint


时间在智能 网的应


用里不要超过


15


秒。




LRUS 8 # Number of LRU queues


LRU_MAX_DIRTY 30 # LRU percent dirty begin cleaning limit


LRU_MIN_DIRTY 20 # LRU percent dirty end cleaning limit


LTXHWM 50 # Long transaction high water mark percentage


LTXEHWM 60 # Long transaction high water mark (exclusive)


TXTIMEOUT 0x12c # Transaction timeout (in sec)



74






18






[ Informix


数据库手册


]


STACKSIZE 64 # Stack size (Kbytes)



# System Page Size


# BUFFSIZE - Dynamic Server no longer supports this configuration parameter.


# To determine the page size used by Dynamic Server on your platform


# see the last line of output from the command, 'onstat -b'.



# Recovery Variables


# OFF_RECVRY_THREADS:


# Number of parallel worker threads during fast recovery or an offline restore.


# ON_RECVRY_THREADS:


# Number of parallel worker threads during an online restore.



OFF_RECVRY_THREADS 10 # Default number of offline worker threads


ON_RECVRY_THREADS 1 # Default number of online worker threads



# Data Replication Variables


# DRAUTO: 0 manual, 1 retain type, 2 reverse type


DRAUTO 2 # DR automatic switchover


DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)


注意:在


HDR


环境下由于网络环境的影响建议用


30


,不要用 同步方式


(-1)


DRTIMEOUT 30 # DR network timeout (in sec)


DRLOSTFOUND /usr/informix/etc/und # DR lost+found file path



# CDR Variables


CDR_LOGBUFFERS 2048 # size of log reading buffer pool (Kbytes)


CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)


CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)


CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)


CDR_LOGDELTA 30 # % of log space allowed in queue memory


CDR_NUMCONNECT 16 # Expected connections per server


CDR_NIFRETRY 300 # Connection retry (seconds)


CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)



# Backup/Restore variables


BAR_ACT_LOG /tmp/bar_


BAR_MAX_BACKUP 0


BAR_RETRY 1


BAR_NB_XPORT_COUNT 10


BAR_XFER_BUF_SIZE 31



# Informix Storage Manager variables


ISM_DATA_POOL ISMData # If the data pool name is changed, be sure to






# update $$INFORMIXDIR/bin/onbar. Change to






# ism_catalog -create_bootstrap -pool


ISM_LOG_POOL ISMLogs



# Read Ahead Variables


RA_PAGES # Number of pages to attempt to read ahead


RA_THRESHOLD # Number of pages left before next group



# DBSPACETEMP:


# Dynamic Server equivalent of DBTEMP for SE. This is the list of dbspaces



74





19




[ Informix


数据库手册


]



# that the Dynamic Server SQL Engine will use to create temp tables etc.


# If specified it must be a colon separated list of dbspaces that exist


# when the Dynamic Server system is brought online. If not specified, or if


# all dbspaces specified are invalid, various ad hoc queries will create


# temporary files in /tmp instead.


DBSPACETEMP tempdbs # Default temp dbspaces



# DUMP*:


# The following parameters control the type of diagnostics information which


# is preserved when an unanticipated error condition (assertion failure) occurs


# during Dynamic Server operations.


# For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.



DUMPDIR /tmp # Preserve diagnostics in this directory


DUMPSHMEM 1 # Dump a copy of shared memory


DUMPGCORE 0 # Dump a core image using 'gcore'


DUMPCORE 0 # Dump a core image (Warning:this aborts Dynamic Server)


DUMPCNT 1 # Number of shared memory or gcore dumps for






# a single user's session



FILLFACTOR 90 # Fill factor for building indexes



# method for Dynamic Server to use when determining current time


USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)



# Parallel Database Queries (pdq)


MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority


DS_MAX_QUERIES # Maximum number of decision support queries


DS_TOTAL_MEMORY # Decision support memory (Kbytes)


DS_MAX_SCANS 1048576 # Maximum number of decision support scans



DATASKIP off # List of dbspaces to skip



# OPTCOMPIND


# 0 => Nested loop joins will be preferred (where


# possible) over sortmerge joins and hash joins.


# 1 => If the transaction isolation mode is not


#


# below. Otherwise it behaves as in (0) above.


# 2 => Use costs regardless of the transaction isolation


# mode. Nested loop joins are not necessarily


# preferred. Optimizer bases its decision purely


# on costs.


OPTCOMPIND 2 # To hint the optimizer



ONDBSPACEDOWN 2 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT


LBU_PRESERVE 0 # Preserve last log for log backup


OPCACHEMAX 0 # Maximum optical cache size (Kbytes)



# HETERO_COMMIT (Gateway participation in distributed transactions)


# 1 => Heterogeneous Commit is enabled


# 0 (or any other value) => Heterogeneous Commit is disabled


HETERO_COMMIT 0




74






20






[ Informix


数据库手册


]


# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS


OPT_GOAL -1



# Optimizer DIRECTIVES ON (1/Default) or OFF (0)


DIRECTIVES 1



# Status of restartable restore


RESTARTABLE_RESTORE off


2.1.9


初始化


OnLine


(基本成功)




informix


用户下,执行


oninit -i

< p>
,初始化


OnLine


,创建

root dbspace




检 查初始化是否成功。在


oninit


命令结束后,等待大约


1


分钟左右,执行


onstat


-


,查看


OnLine






态< /p>







...


OnLine

< br>...,
















件< /p>


$$INFORMIXDIR/


文件中记录的信息,分析错误原因, 改正后再执行


oninit


-i


,直 至


成功。执行


dbaccess


,如果 出现终端类型不对的提示信息则需要按以下流程调整终端类型:



export


TERM=vt100;








TERM



TERMCAP








$$INFORMIXD IR/.profile


文件中。



2.1.10


创建其他


dbspace


1


.用


onspaces


命令创建其他

< p>
dbspace


。对于我们前面讨论的例子,过程如下:

< br>


onspaces



c



d tempdbs



p /usr/informix/chunk/tempdbs1



o 0



s 1000000


-t


onspaces



c



d logdbs



p /usr/informix/chunk/logdbs1



o 0



s 2000000


onspaces



c



d datadbs



p /usr/informix/data/data1



o 0



s 2000000


onspaces



a datadbs



p /usr/informix/data/data2



o 0



s 2000000


解释


:tempdbs



dbspace


名字



/usr/informix/chunklink/tempdbs1


对应


chunk


1000000


大小为


1000M


可以按照系统磁盘大小做响应的调整



onspaces



a


为追加



volprint -g infodg



st


可以看到逻辑卷的大小(


for Compaq




SD NAME PLEX PLOFFS DISKOFFS LENGTH DISK-NAME DEVICE



sd rzb24-01 vol01-01 0 0 4194304 rzb24 rzb24


sd rzb24-02 vol02-01 0 4194304 4194304 rzb24 rzb24


sd rzb24-03 vol03-01 0 8388608 4194304 rzb24 rzb24


sd rzb24-04 vol04-01 0 12582912 4194304 rzb24 rzb24


sd rzb24-05 vol05-01 0 16777216 4194304 rzb24 rzb24


sd rzb24-06 vol06-01 0 20971520 4194304 rzb24 rzb24


sd rzb24-07 vol07-01 0 25165824 4194304 rzb24 rzb24


sd rzb24-08 vol08-01 0 29360128 4194304 rzb24 rzb24


sd rzb24-09 vol09-01 0 33554432 4194304 rzb24 rzb24


sd rzb24-10 vol10-01 0 37748736 4194304 rzb24 rzb24


sd rzb24-11 vol11-01 0 41943040 4194304 rzb24 rzb24


sd rzb24-12 vol12-01 0 46137344 4194304 rzb24 rzb24


sd rzb24-13 vol13-01 0 50331648 4194304 rzb24 rzb24


sd rzb24-14 vol14-01 0 54525952 4194304 rzb24 rzb24


sd rzb24-15 vol15-01 0 58720256 4194304 rzb24 rzb24



74





21




[ Informix


数据库手册


]



sd rzb24-16 vol16-01 0 62914560 4194304 rzb24 rzb24


lvdisplay /dev/vg00/lvdb_01


可 以看到逻辑卷的大小


(for hp)


2

.修改


$$INFORMIXDIR/etc/onconfig

中的


DBSPACETEMP


参数



DBSPACETEMP



tempdbs


3


.重新启动


informix


,使修改生效。



$$ onmode



ky


$$ oninit


2.1.11


将 逻辑日志移到


logdbs


(别忘了做)




oninit



I


时逻辑日志是放在


rootdbs


中的,


rootdbs


主要是为了存放物理日志和系统


表,而且空间相对较小,所以一定要把它移到


logdbs


。定时做逻辑日志文件备份,系统只将


已写满的逻辑日志文件备份到 磁带上,然后清空,并释放这些日志文件。做定时备份一定要在


所有逻辑日志文件被写满 之前进行。所以,如果采用定时备份,要注意观察逻辑日志使用状


况。另外,如果经常有 长事务发生,应避免使用定时备份,采用连续备份比较安全。



使


OnLine


处于


Quiescen t


模式



$$ onmode



s



lo gdbs


上创建


30



5MB


的逻辑日志块



$$


onparams



a



d logdbs



s 10000 /*


可以指定文件大小


*/


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


onparams



a



d logdbs


每执行一次创建 一个,共执行


30


次。




74






22






[ Informix


数据库手册


]

进行


0


级备份,使新增的逻辑日志块可用

< br>


$$ ontape



s



L 0


删除


rootdbs


上的


3


个逻辑日志文 件



$$ onmode



l


$$ onmode



l


$$ onmode



l


$$ onmode



c


$$ onparams



d



l 1 -y


$$ onparams



d



l 2 -y


$$ onparams



d



l 3 -y


使


OnLine


恢复在线(


On-Line


)模式



$$ onmode



m


2.1.12


检查


ESQL/C


是否安装成功



创建演示用


database



stores7

< br>。



$$ cd $$INFORMIXDIR/bin


$$ ./dbaccessdemo7


esql/c


编译一个例子程序。



$$ cd $$INFORMIXDIR/demo/esqlc


$$ esql



o demo1


$$ ./demo1


结果应为



DEMO1 Sample ESQL Program running.


Lana Beatty


Frank Albertson


Dick Baxter


DEMO1 Sample Program over.


如 果任何一步与预期结果不符,说明


ESQL/C


没有安装成功。



2.1.13


修改


Client



login script(


成功


)


每个需要访问


OnLine Server


的用户都必须设置几个环境变量。



如果该用户用的是


Korn Shell



Bourne Shell


,修改


$$HOME/.profile


,增加以下几行:



INFORMIXDIR=

< br>的


home


目录


>


INFORMIXSERVER=ipcshm


ONCONFIG=onconfig


PATH=$$PATH:$$INFORMIXDIR/bin


LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$$INFORMIXDIR/lib: $$INFORMIXDIR/lib/esql


export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH


举例:



INFORMIXDIR=/usr/informix


INFORMIXSERVER=fep1db


ONCONFIG=onconfig


PATH=$$PATH:$$INFORMIXDIR/bin



74





23




[ Informix


数据库手册


]



LD_LIBRARY_PATH=$$LD_LIBRAR Y_PATH:$$INFORMIXDIR/lib:$$INFORMIXDIR/lib/esql


export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH


如果该用户用的是


C Shel l


,修改


~/.cshrc


,增加以下 几行:



setenv INFORMIXDIR



home


目录


>


setenv INFORMIXSERVER ipcshm


setenv ONCONFIG onconfig


setenv PATH $$PATH:$$INFORMIXDIR/bin


setenv LD_LIBRARY_PATH $$LD_LIBRARY_PATH:$$INFORMIXDIR/lib:


$$INFORMIXDIR/lib/esql


创建初始的用户数据库



智能网


SCP/SMP


的数据库要求建在


userd bs


上,采用


buffered log


方式。



在下面的叙述中假设要 创建的


database


名叫


scp< /p>




方法一:



创建


database



informix


用户下执行以下命令



$$ echo ‘create database


scp in userdbs with bu


ffered log’ | dbaccess



授权



$$ echo ‘grant dba to <


数据库所有者


>’ | dbaccess min



$$ echo ‘grant connect, resource to <


数据库的其他访问者


>’ | dbaccess min



<


数据库 所有者


>



SCP

中是指负责运行


SCP


软件的用户。同样,在


SMP


中是指负责运



SM P


软件的用户创建初始的表结构,它通过读业务逻辑文件头部的数据库说明部分,自动< /p>


创建该业务所需的所有表结构。



为用户 表的


sql


语句。



dbaccess scp <


2.2


在二台机器上搭建


INFORMIX HDR


环境

< p>
(



cluster


软件


)


2.2.1


配置需求说明



HDR(Hierachical


Data


Replication)



informix


server


产品自带的一个功能,中文称为:

高可用性数据复制),它可以将数据库服务器整个的复制到另外的一台机器上,而且可以做到


同步复制。比如我们对


ServerA


(主机)这边的 数据库中的某个表做操作,那么与


ServerA


< p>


HDR



Server B


(从机)上可立即看到该表的变化。还有如果在


Server A


这边加


Chunk



同时


ServerB


那边也加上了,前提是两台机器上 都存在相同的


Chunk


路径名字。另外,作为


主机的


ServerA


可以正常作业务,但作为从机的


ServerB


处于一种只读状态,不能直接更改


ServerB


上的数据,但可以都数据,因此我们可以将查询业务放到从机 上,从而减轻主机的负


载。



如果主机宕掉,从机可以立刻改变为主机,可以正常作业务。



要想构筑这样的一个环境,要求很高:



两台机器的硬件配置必须相同;



数据库版本必须相同;



操作系统版本必须相同;



Chunk


的路径必须相同;



总之,两台机器必须完全一模一样,包括软件和硬件,因此对于我们来说就很难体验它的



74






24






[ Informix


数据库手册


]

特点,但


HDR


环境是可以在同一台机器上建起来,而且非 常简单,完全符合以上要求。



2.2.2

< br>修改两个


onconfig


文件



NETTYPE


必须为网络类型:


s octcp


或者


tlitcp




SERVERNUM


必须不同而且唯一,因 为要在同一台机器上运行两个


server


< br>


SERVERNAME


名字可以不同;



修改


ROOTPATH



./CHUNK0


,这处很关键,是相对路径;


< /p>


DRAUTO



0



1



2



(0


——代表手工切换,


1

< p>
——从机切到


standard


模式,当主机恢< /p>


复后,自动切回从机状态


,2


——自动切 换,从机变主机,主机变从机


)


修改其它变量,如对于


fep1


# System Archive Tape Device



TAPEDEV /usr/informix/backup/ # Tape device path


TAPEBLK 16 # Tape block size (Kbytes)


TAPESIZE 102400000 # Maximum amount of data to put on tape (Kbytes)



# Log Archive Tape Device



LTAPEDEV /dev/null # Log tape device path


LTAPEBLK 16 # Log tape block size (Kbytes)


LTAPESIZE 102400000 # Max amount of data to put on log tape (Kbytes)


对于


fep2


# System Archive Tape Device



TAPEDEV /usr/informix/backup/ # Tape device path


TAPEBLK 16 # Tape block size (Kbytes)


TAPESIZE 102400000 # Maximum amount of data to put on tape (Kbytes)



# Log Archive Tape Device



LTAPEDEV /dev/null # Log tape device path


LTAPEBLK 16 # Log tape block size (Kbytes)


LTAPESIZE 102400000 # Max amount of data to put on log tape (Kbytes)




修改


sqlhosts


文件,将两个


ser ver


的信息都加入到这个文件中,注意网络端口的配置。



2.2.3 Sqlhosts


文件示例:



fep1db onsoctcp fep1 fep1db


fep2db onsoctcp fep2 fep2db


2.2.4 /etc/services:


fep2db 7777/tcp


fep1db 8888/tcp


2.2.5


做主从机




fep1


上作零级备份和逻辑日志备份:



$$>ontape



s



L 0



74





25




[ Informix


数据库手册


]




Please mount tape 1 on /usr/informix/backup/ and press Return to continue ...


100 percent done.



Please label this tape as number 1 in the arc tape sequence.


This tape contains the following logical logs:



313



Program over.



$$>ontape



a /*


逻辑日志的备份,第一次做双机一般不需要做


*/ < /p>



fep1


设置成主

Server




$$>onmode



d primary fep2db < /p>


将备份文件


ftp


传送到


fep2.



fep2


上做物 理恢复:



$$>onmode



ky


$$>ontape



p /*


做恢复


*/


Please mount tape 1 on /usr/informix/backup/ and press Return to continue ...



Archive Tape Information



Tape type: Archive Backup Tape


Online version: Informix Dynamic Server Version 1


Archive date: Fri Jun 6 13:26:41 2003


User id: informix


Terminal id: /dev/pts/2


Archive level: 0


Tape device: /usr/informix/backup/


Tape blocksize (in k): 16


Tape size (in k): 102400000


Tape number in series: 1



Spaces to restore:1 [rootdbs ]


2 [tempdbs ]


3 [logdbs ]


4 [userdbs ]



Archive Information



Informix Dynamic Server Copyright(C) 1986-1998 Informix Software, Inc.


Initialization Time 06/05/2003 16:35:34


System Page Size 2048


Version 6


Archive CheckPoint Time 06/06/2003 13:26:41



Dbspaces


number flags fchunk nchunks flags owner name


1 1 1 1 N informix rootdbs


2 1 2 1 N informix tempdbs


3 1 3 1 N informix logdbs


4 1 4 1 N informix userdbs



74






26






[ Informix


数据库手册


]



Chunks


chk/dbs offset size free bpages flags pathname


1 1 0 250000 147125 PO- /usr/informix/chunklink/rootdbs1


2 2 0 500000 499947 PO- /usr/informix/chunklink/tempdbs1


3 3 0 500000 497447 PO- /usr/informix/chunklink/logdbs1


4 4 0 500000 498267 PO- /usr/informix/chunklink/userdbs1



Continue restore? (y/n)y


Do you want to back up the logs? (y/n)n


Restore a level 1 archive (y/n) n


Program over.


$$>onmode



d secondary fep1db

< br>如果要求前滚逻辑日志,请让它滚完。查看两个



中是否有 下列信息:



DR:Primary server operational


或者:



DR: Secondary server operational


查看数据库状态:


onstat




你应看到在


Server1


窗口:



Version 3



On-Line (Prim)


你应看到在


Server2


窗口:



Version 3



On-Line (Sec)


这就代表


HDR


已经建立了,我们可以做操作了,注意只有带日 志的数据库可以被复制,


不建日志是无法复制的。



2.2.6


验证双机



复制举例:在


fep1


窗口执行


$$>dbaccessdemo7



log


当执行完成后,我们在< /p>


fep1


上建了一个数据库,而同时


fe p2


窗口上用


Dbaccess


可以看



fep2


上数据库也建好了。注意加


chunk


做好不要使用绝对路经。如果你的

< br>DRAUTO



2


< p>
那么你将


fep1 shutdown



fep2


就会改变状态成为主机。



2.2.7


主从不一致的恢复



如果发现二台主机都为主的状态,因该把时间短的主机用


onmod e



ky


命令关闭,然后再


时间长的主机


onmode



ky


,再启动


oninit


。 再启动第二台主机。正常状态应该是





如果还不行,只有重做主从机了。



2 .3


.有


cluster


软件数据库的 安装方案



这种方式,


2


台主机配置完全一样。数据放在共享盘做


raid.


对外是一个浮动的


ip


地址,



cluster


软件去完成


infomix< /p>


应用进程的切换


,


scp,smp


应用的切换。相对简单。



2.3.1


文件举例:



etc/sqlhosts


gdsdp onsoctcp sdp sqlexec




74





27




[ Informix


数据库手册


]



.profile


EDITOR=vi



export EDITOR



INFORMIXDIR=/usr/informix



INFORMIXSERVER=gdsdp



ONCONFIG=onconfig



PATH=$$PATH:$$INFORMIXDIR/bin



SHLIB_PATH=$$INFORMIXDIR/lib:$$INFORMIXDI R/lib/esql



export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH SHLIB_PATH



export TERM=vt100



ln


ln -s /dev/vgdata/rlvol1 rootdbs


ln -s /dev/vgdata/rlvol1 tempdbs


ln -s /dev/vgdata/rlvol2 logdbs


ln -s /dev/vgdata/rlvol3 datadbs1


ln -s /dev/vgdata/rlvol4 datadbs2



onconfig:


#***************** ************************************************** *******


#


#




INFORMIX SOFTWARE, INC.


#


# Title:


# Description: Informix Dynamic Server Configuration Parameters


#


#************** ************************************************** **********



# Root Dbspace Configuration



ROOTNAME rootdbs # Root dbspace name


ROOTPATH /usr/informix/chunklink/rootdbs


# Path for device containing root dbspace


ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)


ROOTSIZE 500000 # Size of root dbspace (Kbytes)



# Disk Mirroring Configuration Parameters



MIRROR 0 # Mirroring flag (Yes = 1, No = 0)


MIRRORPATH # Path for device containing mirrored root


MIRROROFFSET 0 # Offset into mirrored device (Kbytes)



# Physical Log Configuration



PHYSDBS phydbs # Location (dbspace) of physical log


PHYSFILE 200000 # Physical log file size (Kbytes)



# Logical Log Configuration



LOGFILES 36 # Number of logical log files


LOGSIZE 30000 # Logical log size (Kbytes)



# Diagnostics



74






28






[ Informix


数据库手册


]



MSGPATH /usr/informix/ # System message log file path


CONSOLE /dev/console # System console message path


ALARMPROGRAM /usr/informix/etc/log_ # Alarm program path


SYSALARMPROGRAM /usr/informix/etc/ # System Alarm program path


TBLSPACE_STATS 1



# System Archive Tape Device



TAPEDEV /dev/null #/dev/tapedev


# Tape device path



TAPEBLK 16 # Tape block size (Kbytes)


TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)



# Log Archive Tape Device



LTAPEDEV /dev/null #/dev/tapedev


# Log tape device path


LTAPEBLK 16 # Log tape block size (Kbytes)


LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)



# Optical



STAGEBLOB # Informix Dynamic Server/Optical staging area



# System Configuration



SERVERNUM 0 # Unique id corresponding to a Dynamic Server instance


DBSERVERNAME gdsdp # Name of default database server


DBSERVERALIASES # List of alternate dbservernames


NETTYPE soctcp,3,50,NET # Configure poll thread(s) for nettype


DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.


RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)



MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor


NUMCPUVPS 3 # Number of user (cpu) vps


SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one



NOAGE 0 # Process aging


AFF_SPROC 1 # Affinity start processor


AFF_NPROCS 3 # Affinity number of processors



# Shared Memory Parameters



LOCKS 3000000 #Maximum number of locks


BUFFERS 250000 #Maximum number of shared buffers


NUMAIOVPS 6 # Number of IO vps


PHYSBUFF 512 # Physical log buffer size (Kbytes)


LOGBUFF 256 # Logical log buffer size (Kbytes)


LOGSMAX 60 # Maximum number of logical log files


CLEANERS 8 # Number of buffer cleaner processes


SHMBASE 0x0 # Shared memory base address


SHMVIRTSIZE 51200 # initial virtual shared memory segment size


SHMADD 40000 # Size of new shared memory segments (Kbytes)


SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited



74





29




[ Informix


数据库手册


]



CKPTINTVL 300 # Check point interval (in sec)


LRUS 12 # Number of LRU queues


LRU_MAX_DIRTY 1 # LRU percent dirty begin cleaning limit


LRU_MIN_DIRTY 0 # LRU percent dirty end cleaning limit


LTXHWM 50 # Long transaction high water mark percentage


LTXEHWM 60 # Long transaction high water mark (exclusive)


TXTIMEOUT 0x12c # Transaction timeout (in sec)


STACKSIZE 64 # Stack size (Kbytes)



# System Page Size


# BUFFSIZE - Dynamic Server no longer supports this configuration parameter.


# To determine the page size used by Dynamic Server on your platform


# see the last line of output from the command, 'onstat -b'.



# Recovery Variables


# OFF_RECVRY_THREADS:


# Number of parallel worker threads during fast recovery or an offline restore.


# ON_RECVRY_THREADS:


# Number of parallel worker threads during an online restore.



OFF_RECVRY_THREADS 10 # Default number of offline worker threads


ON_RECVRY_THREADS 1 # Default number of online worker threads



# Data Replication Variables


# DRAUTO: 0 manual, 1 retain type, 2 reverse type


DRAUTO 0 # DR automatic switchover


DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)


DRTIMEOUT 30 # DR network timeout (in sec)


DRLOSTFOUND /usr/informix/etc/und # DR lost+found file path



# CDR Variables


CDR_LOGBUFFERS 2048 # size of log reading buffer pool (Kbytes)


CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)


CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)


CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)


CDR_LOGDELTA 30 # % of log space allowed in queue memory


CDR_NUMCONNECT 16 # Expected connections per server


CDR_NIFRETRY 300 # Connection retry (seconds)


CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)



# Backup/Restore variables


BAR_ACT_LOG /tmp/bar_


BAR_MAX_BACKUP 0


BAR_RETRY 1


BAR_NB_XPORT_COUNT 10


BAR_XFER_BUF_SIZE 31



# Informix Storage Manager variables


ISM_DATA_POOL ISMData # If the data pool name is changed, be sure to






# update $$INFORMIXDIR/bin/onbar. Change to






# ism_catalog -create_bootstrap -pool


ISM_LOG_POOL ISMLogs




74






30






[ Informix


数据库手册


]


# Read Ahead Variables


RA_PAGES # Number of pages to attempt to read ahead


RA_THRESHOLD # Number of pages left before next group



# DBSPACETEMP:


# Dynamic Server equivalent of DBTEMP for SE. This is the list of dbspaces


# that the Dynamic Server SQL Engine will use to create temp tables etc.


# If specified it must be a colon separated list of dbspaces that exist


# when the Dynamic Server system is brought online. If not specified, or if


# all dbspaces specified are invalid, various ad hoc queries will create


# temporary files in /tmp instead.



DBSPACETEMP tempdbs # Default temp dbspaces



# DUMP*:


# The following parameters control the type of diagnostics information which


# is preserved when an unanticipated error condition (assertion failure) occurs


# during Dynamic Server operations.


# For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.



DUMPDIR /tmp # Preserve diagnostics in this directory


DUMPSHMEM 1 # Dump a copy of shared memory


DUMPGCORE 0 # Dump a core image using 'gcore'


DUMPCORE 0 # Dump a core image (Warning:this aborts Dynamic Server)


DUMPCNT 1 # Number of shared memory or gcore dumps for






# a single user's session



FILLFACTOR 90 # Fill factor for building indexes



# method for Dynamic Server to use when determining current time


USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)



# Parallel Database Queries (pdq)


MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority


DS_MAX_QUERIES # Maximum number of decision support queries


DS_TOTAL_MEMORY # Decision support memory (Kbytes)


DS_MAX_SCANS 1048576 # Maximum number of decision support scans



DATASKIP off # List of dbspaces to skip



# OPTCOMPIND


# 0 => Nested loop joins will be preferred (where


# possible) over sortmerge joins and hash joins.


# 1 => If the transaction isolation mode is not


#


# below. Otherwise it behaves as in (0) above.


# 2 => Use costs regardless of the transaction isolation


# mode. Nested loop joins are not necessarily


# preferred. Optimizer bases its decision purely


# on costs.


OPTCOMPIND 2 # To hint the optimizer



ONDBSPACEDOWN 2 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT


LBU_PRESERVE 0 # Preserve last log for log backup



74





31




[ Informix


数据库手册


]



OPCACHEMAX 0 # Maximum optical cache size (Kbytes)



# HETERO_COMMIT (Gateway participation in distributed transactions)


# 1 => Heterogeneous Commit is enabled


# 0 (or any other value) => Heterogeneous Commit is disabled


HETERO_COMMIT 0



# Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS


OPT_GOAL -1



# Optimizer DIRECTIVES ON (1/Default) or OFF (0)


DIRECTIVES 1



# Status of restartable restore


RESTARTABLE_RESTORE off



74






32






[ Informix


数据库手册


]


3





据库的启动和关闭



3.1


数据库的启动:



oninit


3.2


数据库的关闭


:


onmode



ky


3.3


双机的关闭的原则


:


关闭应用


->


关闭从机


->


关闭主机。



Informix< /p>


双机系统出现故障后,首先使用


onstat

< br>–


l


命令分别观察主从双机的逻辑日志使用


情况,目的是确认主机的逻辑日志和从机的逻辑日志之间相差多少,在双机出现问题至今正常


工作的机器的逻辑日志是否完全保留;(可以通过



查看一下该系统在一天内能够写


满几块逻辑日志文件,估算出经过几天所有的逻辑日志 文件可以写满)。



观察


onstat



l


的输出中的


U---C-L


项,在双机正常工作的情况下,主从机


U ---C-L


项为同


一个文件号,出问题后,主机的逻辑日志继 续写入,从机的逻辑日志停止。双机快速恢复就是


要恢复双机系统的逻辑日志。



确认主机的逻辑日志没有被覆盖后,建立双机系统,让双机自动进行逻 辑日志的恢复;也


可以手工进行逻辑日志的恢复,首先修改


on config


中的


ltapedev


将 其指向文件和磁带,需要


重新启动数据库才能生效,然后使用


o ntape



a


命令备份主机逻辑日 志,使用


ontape



l


命令


在从机上进行逻辑日志的恢复。




onconfig


配置文件的修改,在系统正 常后一定要恢复原状。



举例:



hostname



SMPA informixserver



smpa status



online prim


正常工作



hostname



SMPB informixservce



smpb status


:任何的异常情况



在< /p>


SMPB


上,使用


onmode



ky


命令关闭数据库;




SMPA

< br>上,使用


ontape -s -L 0


命令对数据库进行零级备份




SMPB


上,使用


ontape

< p>
-p


命令恢复数据库,同时提问“继续还原”-


Y


,“备份日


志”-


N

< br>;




8



9


之间来回反复;




SMPA


上,提示“备份结束”;




SMPA


上,使用


onmode



d primary smpb


命令建立主机;(注意


onmode



d primary


从机


informixserver



.



SMPB


上,继续进行恢复,当提问“是否恢 复一级归档”-


N


,恢复结束;




SMPB


上,使用


onmode



d secondary smpa


命令建立从机;




74





33




[ Informix


数据库手册


]




SMPB


上,使用


onstat



命令观察 从机的状态,要求从


fast recorery



read only


,该过


程一般要持续


2


< p>
3


个小时;在此过程中,观察系统的



,如果正常的话


log


中会记录

rootdbspace



phydbspace


已经恢复,逻辑日志


****


开始恢复等等。如 果看不到逻辑日志


****


开始恢复的字样,说明系统并没有正 常,如果过了十几个小时后系统仍然是


fast


recore ry



态,这说明逻辑日志并没有从主机传递到从机,需要强制 恢复一下,使用方法如下:关闭从机


数据库→关闭主机数据库→启动主机数据库→启动从 机数据库,这样后系统会自动进行逻辑日


志的同步。





74






34




-nd


-nd


-nd


-nd


-nd


-nd


-nd


-nd



本文更新与2021-01-29 09:41,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/584810.html

informix数据库手册的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文