版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、INFORMIX 数据库维护指南(一)日常维护操作规程目录一 保存好 INFORMIX 的系统信息 2.二 监控数据空间以及逻辑日志空间的使用情况 3三 数据的备份 5.四 数据的卸出与装载 6.五 INFORMIX 性能的调整 7.六 对用户的监控 8.七 对IFNORMIX IDS 内存的监控 13八 对IFNORMIX IDS 锁的监控 15九 用于查询机数据同步的备份操作规程 16十 系统的监控方法的汇总 16保存好 INFORMIX 的系统信息请保存好 INFORMIX 如下五类信息:1 ONCONFIG 文件;2 INFORMIX 用户的 .profile 文件3. INFORMI
2、X 逻辑日志信息 (可用on stat -获得)4所有 Dbspace 以及每个 Dbspace 的所有 Chunk 的信息:1 ) . 所有 Dbspace 的名字;2). 每个 Dbspace 的所有 Chunk 的 path,offset,size.INFORMIX 极力推荐 Chunk 的 Path 使用 Link, 这使得真正存放数据的设备或文件 具有重新定位的可能性。在使用 Link 情况下,请保存每个 Link 所指向的设备或文件的信息。可用:Is -列岀各个Link所指向的设备或文件。用"onstat -d > file “可在file中保存所有 Dbspace
3、 以及每个 Dbspace 的所有 Chunk 的信息 ( size 是以 page 为单位,而建立 Chunk 时是以 K 为单位 ),但请注 意,在使用Link情况下,on stat -d不含有每个Link所指向的设备或文件的信息。5所有 Database 以及所含的 Table 的信息。可使用 dbschema 获得该信息:例: dbschema -d stores7 -ss其中的 -ss 指定把 lock modes, and extent sizes 信息也包含进来;如上信息为 INFORMIX 系统的恢复提供了条件。下面例举三种典型情况:典型情况 1 :存放某个 dbspace 的
4、设备或文件坏掉了。这时候只要将该 dbspace 的 Path 重新 Link 到好的设备或文件上,然后用 ontape 把数据及逻辑日志备份恢复上去就可以了。如果 Chunk 的 Path 用的是设备或文件处理起来就复杂的多。典型情况 2:INFORMIX 的运行代码坏掉了但数据完好无损。这时的处理步骤为:1). 从新安装 INFORMIX IDS ;2). 把保存的 INFORMIX 用户的 .profile 文件 copy 到 informix user home 下,把保存的 ONCONFIG 文件 copy 到 $INFORMIXDIR/etc 下,并把环境变量 ONCONFIG 指
5、向该 ONCONFIG 文件;3). 重新启动 IDS 即可 ( 注意:在启动 IDS 时 ,如果使用 oninit 千万不能加-iy 参数,这样一来反而会破坏原来完好的数据)。典型情况 3 :INFORMIX 的运行代码和数据都坏掉了。这时的处理步骤为:1) . 从新安装 INFORMIX IDS ;2) . 把保存的 INFORMIX 用户的 .profile 文件 copy 到 informix user home 下, 把保存的 ONCONFIG 文件 copy 到 $INFORMIXDIR/etc 下,并把环境变量 ONCONFIG 指向该 ONCONFIG 文件; 这里要注意 LO
6、GFILES , LOGSIZE 这俩个参数,要改小到 rootdbs 能放下 所有指定的逻辑日志 ;3) . 根据保存的所有 Dbspace 以及每个 Dbspace 的所有 Chunk 的信息重建除 rootdbs 以外的所有 Dbspace ( rootdbs 的信息含在 ONCONFIG 文件中) 这里要注意在重建 Dbspace 时,每一个 Dbspace 和每一个 Chunk 要严格 按照原来on stat-d的信息标岀的顺序来建(on stat 信息中的 Dbspace 的“number “与 Chunk 的 “chk/dbs ”) :4) . 根据保存的 INFORMIX 逻辑
7、日志信息重建逻辑日志;5) . 用 ontape 把数据及逻辑日志备份恢复上去。监控数据空间以及逻辑日志空间的使用情况用”on stat -d ”来监控数据空间的使用情况。主要是查看有没有足够的空间以适于数据 插入的需求,如下图所示:Monitoring Chunk Usageadd-xes s numkier f覺 uhixik nchnunkownr nam-e8 total1 W imf'ozmdsiMonitor free L «pace on chunks LSadd-FES £erhk/ dhsof f s e ts 1 zefreebpagesB12E
8、281102500405POB12fcO22252525002247POB134302JSQSQ25000MOB13O58337S7550004447POBUOfO44025002447POauiBS53126001000597POB13ae0 1B13b24 2B13b68 3BUbacr 44 active.ChunksList thunks that are offline:SELECT chknumj dbsnumFKOM svsehunksWHERE is_offline = I ormis_offlinc = IList chunks that are full:SELEC T c
9、hknurn dbsnumFROM sysichunksWHERE nftee< 100如果空间不足,则需要加Chunk (加Chunk的命令在下面叙述)用on stat -来监控逻辑日志的使用情况。如下图所示:Monitoring Logical Log SpacePhysical LoggingBuffer bufusedl bufsize nu.nvpi.g£0 nuirwxits pages7io10*F - I rce. availahle 1t>r useB Backed 叩C = Current!yeccnini; IninsuctionsIJ - In u
10、seA Newly addedL Contains Inst checkpointa ddre =3 sHioib皀匸U-B-0UC-L 3i qid begin a ize usedused838a5c100233 25010032d 2&0100427 25023794 . BO当标有 U”(但后不跟 B”)和标有 C”的log的个数多于50% 时,请备份逻辑日三数据的备份请经常备份数据。建议每天做一次零级备份。在每次系统做过调整后尤其是做过重大调整 后,做一次零级备份。监控逻辑日志的使用情况,根据其使用情况,及时做备份。数据的备份可用两种方法:1. on tape2. dbexp
11、ort这两种方法的区别是,表1). ontape 产生的是二进制流的数据,只能用于本系统的恢复或是二进制兼容的系统上的 恢复; dbexport 产生的是 ASCII 数据,可以用于非二进制兼容的系统上的恢复 ; 2).ontape 含有 IDS 的系统信息,而 dbexport 不含有 IDS 的系统信息,只含有数据库 及数据信息 ;3). 在数据量较大的情况下, ontape 比 dbimport 恢复较快;4).dbexport 出来的文件的大小受到 OS 文件的大小的限制。 32 位的情况下,不能大于 2G。1 ontape -s : 对数据的备份按提示输入本次备份的级数 (0 级,
12、1 级,2 级)0 级备份是整个 ONLINE 的备份1 级备份是在 0 级基础上所有修改部分的内容的备份2 级备份是在 0 级或 1 级的基础上所有修改部分的内容的备份2 ontape -a : 对逻辑日志的备份 ( 自动方式 )ontape -c : 对逻辑日志的备份 ( 连续方式 )3 ontape -r : 对备份的恢复按提示依次恢复数据备份 (0 级,1级,2 级)和逻辑日志备份四 数据的卸出与装载1 卸出dbexport 用于将整个数据库卸出至一个 ascii 文件dbexport -t device -b blocksize -s tapesize database-o dire
13、ctoryonunload 用于将数据库以二进制格式卸出至磁带onunload -t device -b blocksize -s tapesize database2 装载dbimport 用于将一 ascii 文件装入一个数据库dbimport -t device -b blocksize -s tapesize database-i directorydbload用于将一个或多个 ascii 文件装入一个或多个已存在的表dbload -d database -c commandfileonload用于装载以 onunload 命令卸出的数据onload database -t devic
14、e -b blocksize -s tapesize* dbexport 的一个常见错误的处理方法 :如果表中的数据含有非法字符,当 dbexport 在卸出该表时会往往断掉或挂起,可用如 下方法处理:1 ) 用 “dbschema -d 数据库名 -t 表名 ”卸出该表的定义;2 ) 用上面卸出该表的定义创建一个新表;3 ) 确认该新表与原表完全一致(包括index, trigger, lockmode 等等)4) 用“INSERT INTO 新表名 SELECT * FROM 原表名 “ 把数据倒到新表中;5 ) 确认该新表数据的与原表的数据完全一致;6 ) DROP 原表;7) RENA
15、ME TABLE 新表名 TO 原表名 ;8 ) 再启动 dbexport 。五 INFORMIX 性能的调整INFORMIX 的性能基本取决于应用程序的结构(作用 70% )以及 INFORMIX IDS 的参数设 置(作用 30% )。在日常维护中请注意一下三点:1 经常 Updating Statistics:UPDATE STATISTICS LOW|MEDIUM|HIGH 建议使用参数 “hinh ”,这会使查询效率大大提高。上面的语句是针对整个 Database 的,在数据量大时,做的时间较长。另外的一个选择是针对重点的 Table 做 UPDATE STATISTICS:UPDA
16、TE STATISTICS LOW|MEDIUM|HIGHFOR TABLE tabnam e;2 在 INFORMIX IDS online一段时间后,请 offline 然后再 online 一次。这样一来可回收吊死的死进程所占用的内存,使得 IDS 的性能提高。3 对于经常做为查询条件的列,如果其上没有 Index, 请为其建 Index 。六对用户的监控1. 使用on stat -u来查看用户线程的大致情况,其中包括系统设定的用户数,当前的用户数和本次IDS on li ne以来曾经达到的最多的用户数。2. 使用on stat -g ses查看用户线程的情况,如下图所示:on stat
17、 -g sessession幷 RS AMusediduserthreadttypidkostnaraethreadsmemoryTnemory14ir.Ior mix二0-00192479213metcaIf匸 t ypa436orion112250010200612metcalfLtVpS420orion113107211246411ttypB404orion1572444BSL210metca Ltttyp73eaorion157344435129metcalfttypfi312oriometcalftty pl非6orion17372B500527metcal
18、fttypS353orion165516405126metcalfttyp4337orion17372B505B05metc&lfttypQ321orion1506164metcaIfttypl316orion190112453723metcalfttyp310orion1162S41220B2inEt calf-0-06192562Q1metcaIf0081923844sessi on idotherThe sessi on id of the sessi on. This id is used in on stat opti ons.logi n process. tty pid
19、host nameThe log in n ame of the clie nt applicatio nThe tty of the clie nt applicati on process.The process id of the clie nt applicati on process.The host n ame of the mach ine running the clie nt applicati on process.#rsam threadsThe nu mber of threads associated with the sessi on.Normally, on ly
20、 one thread is allocated per sessi on,un lessa sort or in dex build is occurri ng.total memorytheMemory allocated with in server shared memory for sessi on.used memoryMemory used within server shared memory for the sessi on.on stat -g ses 1289seas ionIRSAMto匸Blusediduserthreadttypidhoetnamethreadsme
21、morymemoryvpyperttys318023jupi匸er1942080819764tldnamer s t cbflagsstatus1323sqlexecQ44e3cY-P-co ndwait(netnarm)Memory poolscount 3nameclassaddrtotalsizefree si zettallocfrag#freefrag12B9V4d4401028672051524314521289_S0RT_CV52daQlQ3522554204475L289S0RT1V73920103031042874S753 .使用 on statg ses sessi on_
22、id查看某个用户线程的情况,如下图所示:name ovezrhsad uckey f iletableRise log blotg已nt匚b 匚已tEqficbf71172283441464052642 12 0432DID o u1321阳£4H464nainte 宰C±> opentable ru blobio t mpr ez! ralloc Ostcb 串口 Lt- i t-.二rda.h ad Osenve9 4e7 4 2 0 r7 o 6 6. f 00000 3 0104 1L1M巴 Cl40153 12220L0152 15 56L774001376
23、52764 2646407oeSeesSQLCurrentIsoLockIdtyp已DatabaseLvlMode12R号ncCRNot Wait148pavsedqlrrSEOE r 1 *e* FVI4.Lastselect 匚ontactsSQL statenient :con_ long_dcscrfromcont nu七吕wherecon callnum rowsize8a9User-created Temp tables : partnuiTL tabname 60064 8 tmp_release_nuin 600643tmpc-asenuin600642tmp cus numt
24、idThe thread idn ameThe thread n amerstcbThe address of thersam task control block for thethread.FlagsStatus in formatio n for the thread.Positio n 1S Waiti ng on a mutexY Waiti ng on a con diti onL Waiti ng on a lockB Waiti ng on a bufferC Waiti ng on a checkpo intX Long tran sacti on clea nupG Wai
25、ti ng on the log buffer writeT Waiti ng on a tran sacti onPosition 2* Transaction active while I/O failure occurred (related toarchive activities)Position 3A ArchivingB Begin work has been loggedP Coordinator or Subordinate prepared (distributed transactions)X XA preparedC CommittingR Rolling back o
26、r rolled backH Heuristically abortingPosition 4P Primary thread for a sessionPosition 5R In read rsam callX Process in critical sectionPosition 7M Special monitorD Special daemon threadC Cleanup threadF Special buffer flusher thread (page cleaner) B Special btree cleaner threadcurstkSize of the stac
27、k for this thread.status Current status of this thread.Name, Free, UsedThe information in these columns are abreakdown of theexact usage of the pools listed for the session. Session Id The session id of the user executing the SQL statement.You can find the user name by executing the -g sescommand an
28、d finding the corresponding session id. Stmt typeThe statement type such as SELECT, UPDATE,DELETE, INSERT.Current DatabaseThe name of the current database for the session.onstatIsolation levelLock modeWait x, whereSQL ERRISAM ERR F.E. Vers process.The current isolation level (CR = committed read, RR
29、 = repeatable read, CS = cursor stability, DR = dirty read, NL = no logging).The current lock mode (Either Not Wait orx = number of seconds to wait).The last SQL error.The last ISAM error.4. 可用 onmode -zsess-id 来杀掉某个用户线程。The Informix version of the client application七对IFNORMIX IDS 内存的监控INFORMIX IDS
30、的内存分成下图的三部分:Resident PortionBuffer pool and other system data struciuresVirtual PortionMainly for thread controlinformationMessage Port ionUsed tocomiTiunicatewith applictitions1. 使用on stat -g seg来查看这三大部分的状态:on stat -g segSegme nt Summary:(reside nt segme nts are not locked)id key addr size ovhd cla
31、ss blkused blkfree32 1381451777 800000 987136 372 R117 433 1381451778 8f1000 4096000 252 V 33316734 1381451779 cd9000 1048576 204 M 10622其中的Message Portion 是用于 Client进程与Server的连接选用 Share Memory方式时的通讯区,系统自己控制。Reside nt Portio n是Server用于存放数据和锁的区域。它的大小取决于BUFFERS和LOCKS这俩个参数大小的设置,在物理内存的60 -70 % 的上限之下原则上越
32、大越好。这里重点要监控是 Virtual Portion ,既上面的V段。V段是Client线程所占用的的内存,它的大小完全取决于当前连接上来的应用的个数和类型。由于受到OS参数的限制,V段的个数不能过多,V当段的个数过多时,请调大SHMVIRTSIZE 和口 SHMADD 这两个参数。2. 用on stat -g mem来查看各个线程,进程的内存使用情况:onstat -g memPool Summary:nameclassaddrtotilsizefreesfrallocfragfit reefragr-esidentR1002 01B174409622r-es - bn£
33、163;RalacOlQ4112294141222gl-obalVa5aa0101804152&97653023mtVa 5a 01B20316166736B096945rsam.VaSeSOlB22937&6775155aidVa62e01B105678L2G2S&2214JglsVa&2e0182457634 0di ctpoolVa63201B0123&6461procpaolV8192711241XTFxnemV40&6001746443inain loop()V76001B6553617B7213752Va76c01B81322&
34、;0091shinconM54-07212144223V7730108123344S14Va78a01S163 0430482071SV0103344917Va7aa01Q丄心自A2071BVaBd4O106.192S344丄Lg£lushpoolVa3eOO10S157151请重点注意那些"n ame ”为数字且"totalsize ”很大的用户线程,用on stat-g ses sessi on 号(这里sessi on 号既是 on stat -g mem 中的 name ”来查看该线程正在做什么3. 用onmode-F回收不用的内存。八 对IFNORMIX
35、 IDS 锁的监控可用on stat -来监控锁的使用状态。INFORMIXIDS 的LOCK是根据用户的线程的需要自动加载和解除的。在日常的维护中对LOCK产生关注往往是由于某个表被某个用户的线程锁住而别用户的线程不能存取该表。这时可用on stat -u与on stat -k来查岀谁锁住了该表。例:onstat -uaddressflagsseseid口 serttywaittoutLo-cZsnreads nwzrites1infcmix-Q0050330Informix- 000027fial20e04P- - g.7Informix- 00010P- -D9Informix- 0&a
36、mp;000al2174cL-PR-26i°egttyp2 aQlf8d4 -1100al21b£0Y-BF-23liig600onstataddresswtistowpeflklisttypethisnumrowidkey#/bsiz00RLR-tS1000022050riL21bf 0aOLfB38HDR<-IX10008500aOlffidi*312174cal21bfDa01fa40HDR+X1000851000aoifgoaGal21bf0a01f970HDR+X1000852002aOlf970GaL21bf0aoifaecHLR+X10008S10CI1
37、且Olf且4口00aoif906HDR+X1000853003aOlfbeD0A12174C0s1Q00022050这个例子是说用户joeg的程序由于在等待(wait )要存取的表老是被锁在那走不下去了,那 么是谁锁了这个表呢?通过上面按箭头的查找发现是lizg的程序锁了该表,也许是 lizg做Update 做了一半既没有 commit 也没有rollback 就去喝茶啦。这时可用on stat -g ses 23 来看看lizg到底在干什么,通知 lizg下来就行了。九 用于查询机数据同步的备份操作规程备份要求:每日备份方法: dbshema+shell(unload)dbschema -d
38、 数据库名 > db.sql 把数据库中的所有表的定义放到 db.sql 文件中;unload to 文件名 select * from 表名 把表中的数据倒到文件中;( unload 的 shell 范例请见后面的附件 ) 查询机上的数据恢复要求:每日 查询机上的数据恢复方法: dbshema+shell(load) dbaccess 数据库名 db.sql 在数据库中生成在上步中所倒出的所有表的定义;load from 文件名 insert into 表名 把文件中的数据倒到表中( load 的 shell 范例请见后面的附件 )十 系统的监控方法的汇总1 总体( GENERAL )
39、性能监测命令:on stat - p说明:输出中的两个 %cache ,第一个是读的命中率,第二个是写的命中率,这两个值应分别 在 90% ,80% 以上, ovlock 、 ovuserthread 、 ovbuff 这三项一定要是 0,否则相关的资源 不够。* 注:如果数据库都是 UNBUFFER 的,则上述的两个 %cache 的值低不一定是性能低。2. on stat -m此命令报告数据库执行中的日志情况,要经常使用此命令观测数据库有无出错信息,并注意检 查点的执行时间,如果执行时间持续在 10 秒以上,则需要进行相应的调整以减少检查点持续 的时间。3. on stat -D观测数据库
40、各 dbspace 的读写情况,对于使用磁盘阵列(采用 RAID1+0 或 RAID5 )的用 户,此命令没有什么影响,但对于使用多个硬盘来配置数据库的用户来说,此项非常重要,根 据此项的输出,调整各 dbspace 在硬盘上的分布,以求各硬盘的 I/O 大致相等,从而使的系 统的 I/O 性能最优化。4. 检查数据的完整性Check reserve pages oncheck -crCheck extents oncheck -ceCheck system catalog tables oncheck -cc database_nameCheck data oncheck -cD datab
41、ase_nameCheck indexes oncheck -cI database_name5 查看系统状态onstat -l查看当前 ONLINE 状态 查看日志状态-u查看用户线索-m查看 message log-p查看 profile-z清空 profile-d查看 DBspaces 和 Chunk-F查看磁盘的读写方式-r n每隔 n 秒重复一次查看操作-g ath-g glo查看所有的线索 查看多线索的全局信息-g seg查看内存 segment 状态-g mgm查看内存管理信息-g ioq查看磁盘 I/O 队列-g ses查看 session 信息-g sql查看 sql 信息6
42、修改系统参数onmonitor ->Parameters 请注意使用初始化选项 initialize !7 日志管理日志管理中 应常用 onmonitor -> Status或 onstat -l 查看逻辑日志状态及时做逻辑日志备份$onparams -a -d DBspace增加一个逻辑日志-d -l Logid 删除一个逻辑日志-p -s size -d DBspace修改物理日志的大小和位置8 改变当前的 ONLINE$ onmode -ky: on-line -> off-line$ oninit:off-line -> on-line$ oninit -s:o
43、ff-line -> quiescent$ onmode -m: quiescent -> on-line$ onmode -u: on-line -> quiescent, immediately shutdown-s :on-line -> quiescent, graceful shutdown$ onmode -k: on-line -> quiescent9 增加 dbspace 和 chunk :以 informix 用户注册,执行 onmonitor-> Dbspace -> Create( 增加 dbspace )-> Dbspace -> Add_chunk( 增加 chunk )10 设置磁带机设备onmonitor -> Archive对其中的:Tape Dev 指定磁带机设备名Block Size 指定磁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中综合实践活动七年级下册《校园节能倡议行动》核心知识清单
- 小学二年级数学下册《四宫格数独:推理初体验》教学设计
- 初中八年级生物《植物的有性生殖:传粉与受精的奥秘》教学设计
- 桑植道路施工方案
- 忠县储气库施工方案
- 医院施工方案文本
- 盲校高中语文(人教版·盲文版)高三必修5《归去来兮辞并序》深度知识清单
- 金融学(商业银行管理人员在职培训)
- 初中物理八年级上册《长度和时间的测量》单元开启课教案
- 小学二年级音乐唱歌课《乃哟乃》教案
- 九上化学29天早背晚默
- 数字时代劳动形态变革的法治回应
- 娱乐类新闻稿件范文
- 全国身份证前六位、区号、邮编-编码大全
- 建筑电气工程施工方案42208
- 七上语文期末考试复习计划表
- 发展速度灵敏素质(教学设计)人教版体育三年级下册
- 2023年玻璃深加工机械企业风险管理与内控
- 跨境电子商务教案
- GB/T 30790.2-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第2部分:环境分类
- 做好物业工程部痕迹管理
评论
0/150
提交评论