informix常用命令
- 格式:doc
- 大小:36.50 KB
- 文档页数:5
华为产品维护资料汇编 TELLIN智能网维护资料数据库基础知识目录目录第1章 Informix数据库常用命令介绍 (1)1.1 概述 (1)1.1.1 oninit (1)1.1.2 dbexport (2)1.1.3 dbimport (4)1.1.4 dbload (5)1.1.5 dbschema (7)1.1.6 oncheck (8)1.1.7 onload (9)1.1.8 onlog (10)1.1.9 onmode (11)1.1.10 onparams (13)1.1.11 onspaces (13)1.1.12 onstat (14)1.1.13 ontape (19)1.1.14 onunload (21)第1章 Informix数据库常用命令介绍1.1 概述Informix数据库服务器提供了在shell提示符下直接执行管理任务功能的应用程序。
列出这些应用程序:表1-1提示符下直接执行管理任务功能的应用程序以下对这些应用程序逐一简要说明。
1.1.2 oninit1. 功能说明oninit 应用程序用于改变系统的运行模式。
数据库有六种工作模式,它们是:离线(off-line)不运行状态●静模式(quiescent)在此模式下,用户不能连接到数据库,但可用onstat等命令查看数据库信息●在线(on-line)数据库运行状态●只读(read-only)只能读数据库但不能写●恢复(recovery)是一种临时状态,存在于从离线模式到静模式之间●关闭(shutdown)是一种临时状态,存在于从在线模式到静模式或离线模式oninit命令将在离线(off-line)状态的数据库启动为在线(on-line)模式,并初始化共享内存(shared memory),在作初始化之前,应先设置环境变量INFORMIXSERVER,否则数据库不建立sysmaster表,必须以root或informix注册才能执行本命令,本命令不但能初始化共享内存,还能初始化磁盘空间。
Informix 常用管理命令常用Informix Online工具1 oncheck基本功能: 检查, 修复, 显示相关内容2 oninit2 .1 仅初始化共享内存●oninit启动数据库服务器●oninit –p启动数据库服务器,不搜索临时表.(速度更快)●附加--s参数表示初始化到quiescent状态2 .2初始化磁盘空间及共享内存●oninit –i初始化数据库服务器, 原先所有信息丢失●oninit –is初始化数据库服务器到quiescen状态, 原先所有信息丢失3 onload4 onlog5 onmode5 .1 改变Online状态5 .2 强迫检测点●onmode -c :强迫检测点事件(checkpoint)发生,强迫逻辑日志文件释放。
5 .3 改变共享内存驻留●onmode -n :终止Online共享内存驻留部分强迫驻留。
●onmode -r :启动Online共享内存驻留部分强迫驻留。
●onmode -F :释放未使用的共享内存5 .4 选择逻辑日志文件●onmode –l:从当前逻辑日志文件开始,选择下一个逻辑日志文件6 onparamsUsage: onparams { -a -d DBspace [-s size] |-d -l logid [-y] |-p -s size [-d DBspace] [-y] }( -y - Automatically responds "yes" to all prompts)6 .1 增加逻辑日志-a - Add a logical log6 .2 删除逻辑日志-d - Drop a logical log6 .3 改变物理日志大小和位置-p - Change physical log size and location7 onspacesonspaces { -a spacename -p pathname -o offset -s size [-m path offset] |-c {-d DBspace [-t] | -b BLOBspace -g pagesize}-p pathname -o offset -s size [-m path offset] |-d spacename [-p pathname -o offset] [-y] |-f[y] off [DBspace-list] | on [DBspace-list] |-m spacename {-p pathname -o offset -m path offset [-y] |-f filename} |-r spacename [-y] |-s spacename -p pathname -o offset {-O | -D} [-y] }7 .1 创建数据空间-c - Create a DBspace or BLOBspace7 .2 删除数据空间-d - Drop a DBspace, BLOBspace or chunk7 .3 增加数据块(chunk)-a - Add a chunk to a DBspace or BLOBspace7 .4 删除数据块(chunk)-d - Drop a DBspace, BLOBspace or chunk7 .5 设置镜相-m - Add mirroring to an existing DBspace or BLOBspace7 .6 取消镜相-r - Turn mirroring off for a DBspace or BLOBspace7 .7 改变数据块状态-s - Change the status of a chunk7 .8 设置DATASKIP参数-f - Change dataskip default for specified DBspaces8 onstat8 .1显示数据空间dbspace状态信息onstat -d显示如下:INFORMIX-OnLine Version 7.13.UC1 -- On-Line -- Up 17:28:27 -- 17512 KbytesDbspacesaddress number flags fchunk nchunks flags owner namec24220e8 1 1 1 1 N informix rootdbsc24223d8 2 1 2 1 N informix workdbsc2422440 3 1 3 1 N informix recorddbs3 active, 2047 maximumChunksaddress chk/dbs offset size free bpages flags pathnamec2422150 1 1 0 25000 15815 PO- /opt/informix/data/ot c2422228 2 2 0 25000 23803 PO- /opt/informix/data/ws c2422300 3 3 0 25000 24939 PO- /opt/informix/data/rs8 .1.1Dbspaces注释:8 .1.2Chunks 注释8 .2显示会话连接信息●Onstat –g ses [session id]例如: onstat –g sesINFORMIX-OnLine Version 7.13.UC1 -- On-Line -- Up 08:09:00 -- 22176 Kbytessession #RSAM total used id user tty pid hostname threads memory memory 67 informix - 0 - 0 8192 7024 64 tellin ttyp2 1255 TELLIN 1 172032 167176 59 tellin ttyp6 29772 TELLIN 1 57344 27584 55 informix - 0 - 0 8192 70246 informix - 0 - 0 16384 8256附:●根据session id可以用onstat –g sql [id]获得SQL语句的信息●ps –ef|grep [pid] 可以得到该进程名称信息8 .3显示SQL语句状态onstat –g sql [sesion id]8 .4显示系统信息日志onstat –m8 .5显示profileonstat –p8 .6显示LRU状态(Least-Recent Used)例如:onstat –R显示如下:8 buffer LRU queue pairs# f/m length % of pair total0 f 24 96.0% 251 m 1 4.0%2 f 25 100.0% 253 m 0 0.0%4 f 26 100.0% 265 m 0 0.0%6 f 25 100.0% 257 m 0 0.0%8 f 25 100.0% 259 m 0 0.0%10 F 24 100.0% 2411 m 0 0.0%12 f 24 96.0% 2513 m 1 4.0%14 f 25 100.0% 2515 m 0 0.0%2 dirty, 200 queued, 200 total, 256 hash buckets, 2048 buffer size start clean at 60% (of pair total) dirty, or 15 buffs dirty, stop at 50%附:f:表示FLRU(Free/unmodified Least-Recent Used) m:表示MLRU(Modified LRU)LRU的数目对应ONCONFIG中的LRUS参数(示例中为8)当MLRU过大时,可调整ONCONFIG中CLEANER参数用onmode –c(强迫检测点发生)命令刷新MLRU.8 .7查看内存信息表●Lock TableOnstat –k :显示行一级Lock信息●Transaction TableOnstat –x: 显示事务信息表●User TableOnstat –u: 显示用户线程信息●BuffersOnstat –b: 当前使用的缓冲区信息/onstat –B :显示所有缓冲区信息8 .8查看当前活动线程onstat –g act8 .9查看网络状态●网络服务信息onstat –g ntd●网络邮件信息onstat –g ntm●网络用户信息onstat –g ntu9 ontape9 .1备份Online管理的文档数据9 .2改变数据库日志状态9 .3备份逻辑日志文件9 .4连续逻辑日志文件备份9 .5从备份文档恢复数据9 .6使用数据复制10 onunload功能: 把数据库和表写到磁盘或磁带文件中.。
dbaccess是捆绑在Informix-Online DB Server上的一套DBMS实例程序,可以做到:①.利用该工具可以做到创建和删除数据库.②.查询数据库中各种信息,编辑使用SQL语句.③.创建,更改,删除数据库基表.④.增加,删除,修改数据库中原始记录.⑤.从OS(操作系统)文件中装载数据到数据库中.⑥.将数据库中的数据卸出到一个OS(操作系统)文件中.⑦.创建回收权限.⑧.利用该工具可以创建,删除,修改Procedure(过程)。
dbexport使用dbexport命令进行数据备份1.dbexport命令简介:dbexport命令以ASCII码格式将整个数据库写到文件或备份介质上(如磁带)。
dbexport卸出的文件包括数据库模式文件和数据文件。
出错和警告信息将被写入一个称为Dbexport.out的文件中。
2.dbexport 命令语法如下:dbexport [-X] [-c] [-q] [-d] [-ss] [{-o -t -b -s [-f ]}] <database>以上命令中参数的意义如下:<>中包括的内容为必选项,[ ]中的内容为可选项。
-c:指示如果没有错误,则输出全部信息。
-q:不对SQL语句、出错信息及警告信息作出响应。
-d:仅输出blob描述符,不输出blob数据。
-ss:在模式文件中输出特定于服务器的用于创建数据库和表的信息,比如:初始的extent和附加的extent的大小、上锁方式、表所驻留的dbspace等信息。
-o:指定数据输出文件的磁盘目录。
-t:指定数据输出文件的备份介质名称。
-b:指定备份介质块大小。
-s:指定备份介质的最大存储量。
-f:用于指定存储在备份介质上的模式文件名。
database:指定备份的数据库名称。
3.使用dbexport功能及需注意的问题:1)执行dbexport命令必须是Informix用户或具有DBA访问权限的用户;2)用dbexport备份的数据必须用dbimport命令恢复;3)用户可以通过编辑模式文件来改变dbimport生成的数据库,如改变数据库名称或相关的表信息;4)dbexport以独占方式(exclusive mode)占用数据库,备份期间其他用户不能对数据库进行查询和修改及插入操作;5)模式文件不保留数据库的日志文件,用户使用dbimport命令建立数据库时必须为新建数据库选择一种日志方式(ANSI、buffered、nobuffered类型);6)用户可以使用dbexport/dbimport命令,将Informix-online和Informix-SE下的数据进行相互转换;也可以将数据在Informix-online的不同版本之间转换,这种转换对数据库服务器的结构和online的配置没有特别要求;7)使用dbexport/dbimport命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。
Unix系统及数据库常用操作命令oninit 数据库启动onmode -ky 数据库关闭onstat -l 查看逻辑日志使用情况ontape -c 连续备份逻辑日志onstat -g iof 查看每个chunk 的 I/O 情况onstat -g mem 查看数据库内存的情况onstat -d 查看数据库chunk 的使用情况ontape -s -L 0 数据库 0 级备份dbimport <database> -d <dbspace> -i <dir> 数据恢复(硬盘)dbexport <database> -o <dir> 数据备份(硬盘)update staistics (high) (low) 数据库数据抽样统计ontape -r 数据恢复(磁带)onstat -c 配置情况onstat - 数据库状态信息ps –ef |grep cmcld 查看MC/Service Guard 进程cmviewcl 查看MC/Service Guard 运行情况cmruncl [ f ] 启动群集cmhaltcl [ -f ] 终止群集cmrunnode node 启动群集中的一个结点例: # cmrunnode HPK460-1cmhaltnode mode 终止群集中的一个结点例: # cmhaltnode HPK460-1cmrunpkg -n node pkg 在节点node 上运行 pkg 包例: # cmrunpkg -n HPK460-1 pkg1cmhaltpkg -n node pkg 在节点node 上终止运行 pkg 包例: # cmhaltpkg -n HPK460-1 pkg1cmmodpkg -e -n node pkg 允许在节点 node 上运行pkg 包例: # cmmodpkg -e -n HPK460-1 pkg1cmmodpkg -d -n node pkg 禁止在节点 node 上运行pkg 包例: # cmmodpkg -d -n HPK460-1 pkg1cm 系列命令,均可附加参数“-v”,以冗余模式显示执行结果;参数“-f”表示强制执行而忽略错误警告。
1. dbexport将数据库以ASCII方式下载。
该命令常用于迁移数据库。
如:命令dbexport -o /informix/db_export stores7,将数据库stores7 下载到/informix/db_export/stores7.exp 目录下。
数据库模式文件存放在/informix/db_export/stores7.exp/stores7.sql 下。
2. dbimport与dbexport 配合使用,根据dbexport 的输出创建数据库。
如:命令dbimport -c -i /informix/db_export stores7根据上例中输出结果创建数据库。
3. dbload将ASCII 文件中的数据传送到数据库中。
4. dbschema将数据库的模式输出到文件中,可用于重建数据库或表。
5. oncheck数据一致性检查和索引修复工具。
常用选项有:oncheck -ce 检查Chunks 和extentsoncheck -cd 检查数据行oncheck -ci 检查索引值oncheck -cI 检查索引值和rowidoncheck -cr 检查系统保留页oncheck -cc 检查系统目录表6. oninit启动OnLine7. onlog显示系统逻辑日志的内容。
常用选项有:onlog -l 显示已经备份到磁带上的日志信息8. onmode改变OnLine 的运行模式,强制检查点动作,切换逻辑日志以及杀死指定的进程。
常用选项有:onmode -k 关闭OnLineonmode -c 强制检查点动作onmode -l 切换逻辑日志到下一个逻辑日志文件onmode -z 杀死指定的进程onmode -F 释放多余的内存onmode -a 动态分配内存9. onparams改变OnLine 的逻辑日志和物理日志的配置参数。
(添加逻辑日志时使用)10. onspaces创建、删除和修改dbspace、chunk工具。
informix常用命令.2008年01月10日星期四 00:35一、常用命令oninit 将系统从off-line模式变为on-line模式oninit -iy (初始化数据库,删除所有dbspace和chunk)oninit -s (脱机-->静态)onmode -ky offlineonmode -s graceful shutdown-->quiescent(联机到静态,让用户处理完成)onmode -u immediate shutdown-->quiescent(联机到静态,所有用户立即终止)onmode -m quiescent--->onlineonmode -z sid 删除某sessiononmode -l 将当前正在使用的逻辑日志下移onmode -c 强制执行检查点操作即onmonitor->force ckptonstat - 查看服务器状态onstat -d 查看dbspace和chunk情况onstat -l 查看逻辑日志onstat -F 查看写入磁盘的页刷新和类型情况,从共享内存缓冲区向磁盘写入页面有三种方式(fg:前台写 LRU:队列写 chunk:块写)onstat -R 打印LRU队列onstat -p 显示系统的基本I/O与性能配置文件onstat -c 查看onconfig文件onstat -m 查看消息日志onstat -f 查看受DATASKIP影响的dbspaceonstat -x 查看事务onstat -k 显示所有活动的锁onstat -g sub_option 运行多线索选项onstat -g ses/sqlonstat -r <value> 每隔<value>秒后重复选项onstat -g act 显示系统中所有的活动线索onstat -g ath -r 2 每隔两秒显示系统中所有的活动的线索onstat -i 交互方式>sql>sql sidipcs 查看共享内存情况ipcrm 删除某个共享内存ipcrm -m idipcrm -s idOntape命令:1)零级(一级或二级)备份$>ontape -s$>ontape -s -L 0$>ontape -s -L 1$>ontape -s -L 2自动备份逻辑日志文件$>ontape -a3)连续逻辑日志备份(日志文件写满一个,online系统自动备份一个,你可以插盘磁带到磁带机上,让IDS自动备份。
要占用磁带机)$>ontape -c4)备份恢复(对应零级备份或一级备份或二级备份)$>ontape -r (详细过程见ontape恢复文挡)5)备份恢复几个DBSPACE(一定要存在逻辑日志备份,否则物理恢复完后,还是不能用)$>ontape -r -D dbs1 dbs2 。
6)配置HDR时使用的物理恢复$>ontape -p7)修改数据库日志模式$>ontape -s -B db_name 修改为buffer_log 即缓冲日志模式$>ontape -s -U db_name 修改为unbuffer_log 即非缓冲日志模式$>ontape -s -N db_name 修改为无日志模式数据库不含日志,即不支持事务,对数据库的任何修改都不会记录到逻辑日志中去$>ontape -s -A db_name 修改为ansi logging模式,从这个模式无法改到其它模式,因此一般不要用该项。
oncheck 命令oncheck -pe extendoncheck -ceoncheck -cr reserved pagesoncheck -cd TBLspace data rows including bitmaponcheck -ci table indexes databases对逻辑日志的操作:以informix用户登录,$ onmode -uy (由Online切换到Quiescent状态,所有用户立即中止) onmode -m (切换到Online)$ onparams -a -d logdbs -s 100000其中logdbs为dbspaces 名,-s 100000 表示增加了100M空间。
再连续执行4遍上述命令,这样新的逻辑日志空间总共为500M,可以用onstat -l 查看逻辑日志情况,接下来就要删除前面3个旧逻辑日志,删除前做一个0级备份# ontape -s -L 0执行该命令做0级备份,建议: 如果允许可以每天在业务系统结束工作后做一次0级备份,做完备份后管理好备份磁带,做好标记。
$ onparams -d -l logidlogid 为逻辑日志id号,可以用onstat -l 查看,然后就可根据id 号删除3个旧逻辑日志。
将当前正在使用的逻辑日志下移$onmode -l三、DBSPACE及数据库导入导出1.增加一个新的dbspace:(datadbs,15M, 偏移为0)onspaces -c -d datadbs -p /home/informix/datadbs -o 0 -s 150002.在datadbs这一个dbspace中增加一个chunk:(datadbs_chunk1)onspaces -a datadbs -p /home/informix/datadbs_chunk1 -o 0 -s 150003.将上述chunk删除onspaces -d datadbs -p /home/informix/datadbs_chunk1 -o 04.删除dbspace(仅当要删除的dbspace空间没有数据时才可删除)onspace -d datadbs导出数据库:用dbexport工具将数据卸成文本,并装载到其它服务器上。
(1)卸载文本的步骤如下:用informix用户注册dbexport cleardb -o WORKDIR -ss当系统提示dbexport completed!数据卸载完毕。
其中:-ss 确保数据库的建库信息或建表信息被保留如日志模式、初始extent尺寸、lock mode、表所在dbspace等。
-o 指定存放卸载数据的目录数据存放在目录cleardb.exp目录下,其中包含cleardb.sql和形如*.unl的文件,提示信息存放在dbexport.out文件中。
(2)装载文本的步骤如下:用informix用户注册确保数据库处于On_Line状态,服务器上没有同名数据库。
dbimport cleardb -i WORKDIR当系统dbimport completed!提示数据装载完毕。
其中:-i 指定从何处装载。
如何在不破坏库本身信息情况下(如行级锁等)将数据库卸载到磁带设备,并装载在其它服务器上?1)卸载的步骤如下:用DBA用户注册将存放数据的磁带插入磁带机,确认磁带及磁带机完好可用。
dbexport cleardb -t /dev/rmt/0m -b 512k -s 2048000k -ss当系统提示dbexport completed!数据卸载完毕。
其中:-ss 确保数据库的建库信息或建表信息被保留如日志模式,初始extent 尺寸,lockmode,表所在dbspace-t 磁带设备/dev/rmt/0m-s 磁带容量2G-b 块大小512KB提示信息存放在dbexport.out文件中2)装载的步骤如下:用DBA用户注册将存放卸载数据的磁带放在磁带机上,确认磁带机正常,确认数据库系统处于On_Line状态,服务器上没有同名数据库。
$ dbimport cleardb -t /dev/rmt/0m -b 512k -s 2048000k当系统dbimport completed 提示数据装载完毕!提示信息存放在dbimport.out 文件中。
重建表格:1) dbschema -d dbname -t tabname -ss tabname.sql /*将表格结构放进tabname.sql*/编辑此文件并在create table语句末尾增加新的区域长度暂时将生成表格索引的tabname.sql部分标为说明语句,即在索引句前后加上“{}”,例如:{ create index xl on customer(last_name); create index x2 on customer(cust_nbr);}最好在后面生成索引,因为这样表格能快速装入,索引能在连续磁盘空间生成,使其更加有效。
2)锁定表格lock table tabname in exclusive mode;3)用SQL UNLOAD 将表格卸载到磁盘或磁带中unload to file_or_tape_path select * from tabnameunload to "/usr/data/unload/customer.unl" select * from customer;检查表中的行数(用SQL中的Table/Info命令),验证卸载是否成功。
比较这个数与装入完成后SQL显示的消息。
用此验证file_or_tape_path中的行数:wc -l file_or_tape_path4)删除表格5)用dbaccess生产表格并运行tabname.sql。
这时不要生成索引6)用SQL的LOAD FROM 或用 dbload重新装入表格load from file_or_tape_path insert into tabname;load form "/usr/data/unload/customer.unl" insert into customer;对于日志数据库,上面的装入语句可能产生长事务或“to many lock”错误。
这时建议用dbload之类的实用程序将数据插入表中。
dbload的 -n 选项强制在插入一定行后进行commit work(建议选1000行)。
检查表中的行数(用SQL中的Table/Info命令),验证装入是否成功。
7)如要生产索引,运行第一步中标为说明语句的tabname.sql部分。
8)更新表格统计信息update statistics on tabname;。