Informix TRAIN 文档详解(2)

来源:互联网 作者:2 2007-12-03 出处:pcdog.com

informix  安全  操作系统  磁盘空间  服务器存储  

  三、数据库服务器的初始化

  1、数据库服务器初始化时的考虑

  用户在建立和初始化其数据的时候,最重要考虑的问题是:数据存储实体选用哪种方案,rawevice还是cookedfile,是否对数据库空间建立镜像,怎样建立?对于OnLine动态服务器7.1的使用者还可以考虑数据库系统是否需要数据复制的安全系统以及如何建立数据复制等等问题。

  Rawdevice和cookedfile对于OnLine来说其概念和管理是一致的,因此对较小的数据库系统其效果相差无几,但对大数据库系统,由于cookedfile采用unix的I/O机制,而rawdevice则采用On-Line自身的I/O机制,因此在效率上rawdevice会明显快于cookedfile,且rawdevice的数据安全性也高于cookedfile,假设用户不小心删除数据储存实体chunk的文件名后,以cookedfile方式定义的数据库将被删除,而以rawdevice方式定义的数据储存实体Chunk只是描述它的设备文件名被删除,作为真正的存储数据的数据库空间并没有受到影响,通过重新建立设备文件名的方法,该数据储存实体不难恢复,而cookedfile则无法恢复。

  另外从效率上考虑,Rawdevice的使用在unix系统上还有块设备和字符设备之分,用unix命令ls-l列设备目录,我们可以看到,有些设备文件名的标识为b而另一些则为c,其中标识为c的设备为字符设备,作为OnLine数据储存实体来说,字符设备更有利于发挥主机服务器的DMA能力,所以我们总是定义字符设备为数据储存实体。

  数据存储空间的镜像与数据库服务器的复制是OnLine的数据安全机制,我们将在数据安全的章节中给以详细的讲述。

  2、操作系统上的准备工作

  在建立和初始化数据库服务器系统的时候,需要作的准备工作有以下几点:

  1为数据库所使用原始设备计划磁盘空间,并使得在UNIX操作系统上取得该原始设备的描述。

  2修改INFORMIX环境下的配置文件$INFORMIXDIR/etc/sqlhosts和计算机系统对网络节点、网络端口的定义文件/etc/hosts、/etc/hosts.equiv和/etc/services。

  $vi$INFORMIXDIR/etc/sqlhosts

  online7 ontlitcp changsha sqlexec7

  (虚拟服务器名) (网络协议类型) (主机名) (服务端口名)

  # vi/etc/hosts

  132.147.162.1 changsha

  (网络结点) (主机名)

  #vi/etc/hosts.equiv

  changsha

  (主机名)

  # vi/etc/services

  sqlexec7 8888/tcp

  (服务端口名) (端口号)

  3 调节操作系统的核心参数,以适应OnLine动态服务器7.1对unix在共享内存及信号量等方面的需要。

  用系统提供的参数管理的工具(例如SCOUNIX的sysadmsh)来进行调整。需要调整的参数也因数据库产品的版本不同而有所不同,具体可以在成功地安装了数据库服务器后,查看$INFORMIX-DIR/release/ONLINE_7.1中对操作系统参数要求的说明。

  例如对于在SCOUNIX3.2.4.2平台上使用OnLine7的用户,需要调整的核心参数有SHM-MAX、SHMSEG、SHMMNI、SEMMNI和SEMMSL。因此用户可注册到root,然后运行sysad-msh,在菜单中选择System,然后选择Configure,再选择Kernel,在Kernel选项中选择Parameter,然后调整第9项SharedData中的参数SHMMAX、SHMSEG和SHMMNI以及第8项Semphore中的参数SEMMNI和SEMMSL,设置完毕后在Kernel选项中选择Rebuild,重新构造unix引导核心。然后退出sysadmsh,并重新启动unix。同时需要注意的是,在重新构造核心后,数据库服务器存储原始设备名的属主和组定义的改变。

  3、建立数据在磁盘上组织实体

  数据在磁盘上以数据存储块的形式存在,但在逻辑上则是以数据库空间的形式存在。每一个数据库空间至少有一个数据存储块,其中最先定义的数据存储块为主数据存储块,而其它的数据存储块则为附加数据存储块。同时在所有的数据库空间中必定有一个根数据库空间(rootdbs)。建立数据在磁盘上的组织实体是建立与逻辑概念的数据库空间相对应的数据存储块。数据存储块的组织方式有两种:原始磁盘设备形式和UNIX文件形式。相比起来,原始磁盘设备形式具有较高的运行效率和可靠性,但是原始磁盘设备形式的数据存储块的建立需要数据库管理员对数据库服务器所运行的系统的磁盘设备的描述具有足够的知识和经验。

  原始磁盘设备形式的数据存储实体的建立方法是将一个特定的原始磁盘(或部分磁盘)用UNIX的链接命令ln链接到一个便于记忆和管理的设备文件。例如在AT&TSVR4系统中,有一个磁盘/dev/rdsk/c0t1d1,而定义中的原始磁盘设备名为rootdbs1,因此数据库管理员以root用户注册,然后用以下的命令来构造数据存储实体:

  #cd$INFORMIXDIR

  #ln/dev/rdsk/c0t1d1rootdbs1

  #chmod660rootdbs1

  #chowninformixrootdbs1

  #chgrpinformixrootdbs1

  UNIX文件形式的数据存储实体的建立方法是产生一个0字节的UNIX文件,使用命令如下:

  #cd$INFORMIXDIR

  #cat/dev/null>rootdbs1

  #chowninformixrootdbs1

  #chgrpinformixrootdbs1

  4、建立数据库服务器共享内存

  至此,我们可以开始初始化数据库服务器,以informix用户注册,用命令onmonitor命令。在初始化前必须正确地定义了环境变量INFORMIXDIR、PATH和INFORMIXSERVER以及文件$INFORMIXDIR/etc/sqlhosts、/etc/hosts、/etc/hosts.equiv和/etc/services。

  首先注册到informix,运行onmonitor,在菜单中选择Parameter,然后选择Initialize,便进入数据库空间初始化的屏幕。然后设置在屏幕上显示的参数。

  INTIALIZATION:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  DISKPARAMETERS

  PageSize[2]KbytesMirror[N]

  TapeDev.[/dev/rct0]

  BlockSize[16]KbytesTotalTapeSize[150000]Kbytes

  LogTapeDev.[/dev/rct0]

  BlockSize[16]KbytesTotalTapeSize[150000]Kbytes

  BootName[rootdbs]RootSize[20000]Kbytes

  PrimaryPath[/usr/informix/rootdbs1]

  Offset[0]Kbytes

  MirrorPath[]

  Offset[0]Kbytes

  Phy.LogSize[1000]KbytesLog.LogSize[500]Kbytes

  NumberofLogicalLogs[6]

  第一屏设置完成后按ESC,onmonitor在完成数据库空间初始化以后便接着要求用户设置共享内存。如果用户在以后需要调整共享内存时可以运行onmonitor,然后选择Parameters菜单,再选择Shared-Memory项。对于初次调整共享内存,用户需要注意的是ServerNumber是不可以重复的,并且ServerName以小写为好,尤其是对于用户需要建立分布式数据库系统的情况更为重要。可以说对用户影响最大的BUFFERS和LOCKS。

  SHAREDMEMORY:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  SHAREDMEMORYPARAMETERS

  ServerNumber[10]ServerName[online7]

  ServerAliases[]

  DbspaceTemp[]

  DeadlockTimeout[60]SecsNumberofPageCleaners[1]

  ForcedResidency[N]StackSize(Kbytes)[32]

  NonRes.SegSize(Kbytes)[8000]

  PhysicalLogBufferSize[32]Kbytes

  LogicalLogBufferSize[32]Kbytes

  MAX#ofLogicalLogs[6]TransactionTimeout[300]

  MAX#ofTransactions[20]LongTXHWM[50]

  MAX#ofUserthreads[20]LongTXHWMExclusive[60]

  MAX#ofLocks[2000]IndexPageFillFactor[90]

  MAX#ofBuffers[200]AddSegSize(Kbytes)[8192]

  MAX#ofChunks[8]TotalMemory(Kbytes)[0]

  MAX#ofOpenTblspaces[200]

  MAX#ofDbspaces[8]

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

  Sharedmemorysize[864]KbytesPagesize[2]Kbytes

  EnterauniquevaluetobeassociatedwiththisversionofINFORMIX-OnLine.

  设置完共享内存后按ESC键,OnLine便初始化共享内存,当OnLine成功地初始化共享内存后,OnLine便进入第三个屏幕数据库服务器性能参数调整。在这个屏幕中用户说明OnLine动态服务器7.1所运行的计算机是否一个SMP体系结构的计算机,若是则置MultiprocessorMachine为Y,否则为N。当MultiprocessorMachine为Y时,用户可以进一步地设置有多少个服务器进程与CPU结合(NumProcstoAffinity),并且从第几个CPU开始与数据库服务器进程结合(Procnumtostartwith)。如果该计算机为单处理器计算机系统,则设置SingleCPUVP为Y,否则为N。怎样设置CPUVP和AIOVP,在“InformixODS性能指南”一书中有详细介绍。在屏幕的右下方是该数据库服务器的网络链接形式的定义,它必须与$INFORMIXDIR/etc/sqlhosts中的设置相符。例如在$INFORMIX-DIR/etc/sqlhosts中定义数据库服务器online的网络链接形式为onsoctcp,则在NETTYPEsettings中设置Protocol为soctcp,其它项可先用其缺省值。

  PERFORMANCE:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  PERFORMANCETUNINGPARAMETERS

  MultiprocessorMachine[N]LRUMaxDirty[60]

  NumProcstoAffinity[0]LRUMinDirty[50]

  Procsnumtostartwith[0]CheckpointInterval[300]

  NumofReadAheadPages[4]

  CPUVPs[1]ReadAheadThreashold[2]

  AIOVps[2]

  SingleCPUVP[Y]NETTYPEsettings:

  UseOSTime[N]ProtocolThreadsUsersVP-class

  DisablePriorityAging[N][soctcp][][][]

  Off-LineRecoveryThreads[10][][][][]

  On-LineRecoveryThreads[1][][][][]

  NumofLRUSqueues[8][][][][]

  设置完这一屏参数后,按ESC。接下来我们将设置动态数据复制、运行监控和并行数据操作等参数,由于目前数据库系统处于初建阶段,暂不考虑动态数据复制,当系统进入该屏幕后按ESC。

  DATAREPLICATION:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  DATAREPLICATIONPARAMETERS

  Interval[30]

  Timeout[30]

  Auto[0]

  Lost&Found[/usr/informix/etc/dr.lostfound]

  这时系统进入运行监控屏幕,在这屏幕中我们将定义系统运行的信息日志文件以及当系统运行发现问题时,系统的运行状态将写到那一个目录下。

  DIAGNOSTICS:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  DIAGNOSTICPARAMETERS

  MessageLog[/usr/informix/online.log]

  ConsoleMsgs.[/dev/console]

  AlamProgram[]

  DumpSharedMemory[Y]

  DumpGcore[N]

  DumpCore[N]

  DumpCount[2]

  DumpDirectory[/tmp]

  设置完运行监控参数后,按ESC键。这时系统进入最后一个设置屏幕,并行数据操作屏幕,由于我们刚开始建立数据库系统,暂不考虑并行数据操作参数的设置。因此我们按ESC键来结束我们的数据库服务器初始化操作过程。

  PDQ:MakedesiredchangesandpressESCtorecordchanges.

  PressInterrupttoabortchanges.PressF2orCTRL-Fforfield-levelhelp.

  PARALLELDATABASEQUERIESPARAMETERS

  PDQPriority[100]

  MaximunPriority[100]

  DecisionSupportQueries[10]

  DecisionSupportMemory(Kbytes)[8192]

  MaximunDecisionSupportScans[4]

  Dataskip[]

  OptimizerHint[0]

  当数据库服务器初始化成功时,系统处于quencent状态。这时用户可在菜单上选择Exit,退出Parameters,然后选择Mode,再选择Online,INFORMIX-OnLine便进入online状态。

  5、初始化处理器资源

  OnLine动态服务器7.1采用多进程多线索体系结构,即用较少的数据库服务器进程来作所有的数据库操作,因此处理器资源的利用将直接影响用户系统的运行性能。处理器资源的初始化可以的数据库系统初始化的过程中实现,也可以在以后用onmonitor实用程序的Parameters菜单中的Perf-ormance项来进行,参数调整以后需重新启动数据库服务器才能有效。同时在系统的运行过程中,用户可以根据自己的需要,通过onmonitor实用程序的Mode菜单中的Add-proc和Dropproc随时调整系统的处理器资源,而不需要重新启动数据库服务器。

  6、数据库服务器的状态

  INFORMIX-OnLine具有五个不同的状态,它们分别是online、quiesent、recovery、shut-down和offline。这五个状态分别是为OnLine运行中不同目的而设计的。

  Mode:StartupOn-lineGraceful-shutdownImmediate-shutdownTake-offline...

  online状态是系统响应联机用户数据库访问的状态。在这个状态下,用户可以查询、插入、修改和删除他们的数据,以及各种简单或复杂的事务处理。

  quiesent状态是数据库管理员管理系统的状态。在这个状态下,除了数据库管理员,任何普通用户都不能进入数据库系统,不能对数据库作任何的访问和操作。通常在这个状态下,数据库管理员进行数据备份、批量处理、调整OnLine参数以及其它各种数据库系统的管理。

  recovery状态是OnLine为保持数据库一致性而进行的内部事务处理状态,因此这个状态拒绝任何人访问数据库系统,包括数据库管理员。

  shutdown状态是OnLine关闭前的一个等待联机退出的状态。在这个状态下,已经进入数据库系统,并且正在进行数据库访问或操作的用户被要求尽快结束工作,退出数据库系统,而尚未联机和那些没有进行数据库访问和操作的用户将被拒绝进入数据库系统。

  offline状态是OnLine处于关闭的状态。

  7、数据库服务器的启动与关闭

  启动和关闭OnLine最简单的方法onmonitor,选择Mode,然后用Startup和Online来启动数据库服务器。或者用Take-offine来关闭数据库服务器。

  通过命令形式,oninit启动数据库服务器;onmode-ky关闭数据库服务器。

  从系统管理的角度来看,最好是在系统启动的最后自动启动数据库服务器和在系统关闭时最先关闭数据库服务器。这样便需要建立启动文件和关闭文件。

  以SCOUNIX为例,启动文件建立在/etc/rc2.d目录下,其名字可以是S99informix,启动文件如下:

  INFORMIXSERVER=online7

  INFORMIXDIR=/usr/informix

  PATH=$PATH:$INFORMIXDIR/bin

  exportINFORMIXSERVERINFORMIXDIRPATH

  exho"StartupOnLineDynamicServer"

  oninit&

  ipcs-bm

  命令ipcs用于检查unix系统的共享内存和信号量,用这种方法可以很容易地知道数据库服务器是否正常地启动。

  关闭文件建立在/etc/rc0.d目录下,其名字可以是K01informix,关闭文件的内容如下:

  INFORMIXSERVER=online7

  INFORMIXDIR=/usr/informix

  PATH=$PATH:$INFORMIXDIR/bin

  exportINFORMIXSERVERINFORMIXDIRPATH

  echo"StopOnLineDynamicServer"

  onmode-ky&

  ipcs-bm



上一篇:Informix的监控和管理命令(2)
下一篇:Informix TRAIN 文档详解(3)