Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103753744
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-04-08 21:24:10

作者:Neo  出处:Unix爱好者家园unix-cd.com 
许多数据库操作可以在菜单式交互环境onmonitor中完成,下面提供一组命令,使用户可以方便地以命令方式管理数据库,以下命令除了oninit外,其他命令必须在数据库初始化后方可运行.  


一 oncheck  检查、修复、显示  

根据命令的选项,oncheck有以下功能  
1、检查数据库的一致性  
2、修复不一致的索引  
3、显示数据库信息  
oncheck只能修复索引带来的不一致性,对数据表之间的不一致性无能为力。  

[语法]  
oncheck    [c类选项]  [p类选项]  [-qny]  
[{数据库[:[主]表[,片断空间|#索引]]|表空间|块} {行号|页号}]  
[说明]  
数据库指需检查的数据库(database), 主指表的主人(owner),表指数据表(table),片断空间指包含需要检查的片断(fragment)的表空间(tblspace),块指数据块(chunk),行号指要检查的行(rowid),c类选项表示检查,p类选项表示显示, -y 选项指对所有的提问回答YES,即自动修复索引,-n选项指对所有问题回答NO,-q选项表示只当有错误时才出提示信息.  
c 类选项说明  
-cr 保留页(reserved   page)  
-ce 扩展(extends)  
-cc 数据库目录  
-ci 表索引库  
-cI 表索引和行号(rowid)库  
-cd 包含位图(bitmap)的表空间(TBLspace)  

p  类选项说明  
-pr 保留页(reserved   page)  
-pe 扩展(extends)  
-pc 数据库目录  
-pk 索引关键字  
-pl 叶节点关键字  
-pL 叶节点关键字,行号数据库  
-pd 表空间(TBLspace)数据行(row)  
-pt 表空间报告数据库  
-pT 表空间磁盘工具报告数据库  




[例子]  
oncheck -cc  
oncheck -cD stores7:catalog  
oncheck -cI -n stores7:customer#zip_ix  



二 oninit 启动数据库  

oninit 命令将在离线(off-line)状态的数据库启动为在线(on-line)模式,数据库有六种工作模式,它们是  
离线(off-line) 不运行状态  
静模式(quiescent) 在此模式下,用户不能连接到数据库,但可用onstat等命 令查看数据库信息  
在线(on-line) 数据库运行状态  
只读(read-only) 只能读数据库但不能写  
恢复(recovery) 是一种临时状态,存在于从离线模式到静模式之间  
关闭(shutdown) 是一种临时状态,存在于从在线模式到静模式或离线模式  

oninit 命令将在离线(off-line)状态的数据库启动为在线(on-line)模式,并初始化共享内存(shared memory),在作初始化之前,应先设置环境变量INformIXSERVER,否则数据库不建立sysmaster表,必须以root或informix注册才能执行本命令,本命令不但能初始化共享内存,还能初始化磁盘空间.  

[语法] oninit [-p] [-s]  
或 oninit -i   [-s]  

[说明] 第一行用法为只初始化共享内存  
-p 不检测临时表  
-s 将数据库转换成静模式  

第二行用法为同时初始化磁盘空间,使用时必须慎重,因为此命令将破坏所有数据  
-s 将数据库转换成静模式  

[例子]  
oninit  
oninit  -s  



三 onload  建立数据库或表  

onload在指定数据空间建立一个 数据库或表,并从一个磁盘或磁带文件中读入数据(由onunload生成的数据)  

[语法] onload [-l]  [-t  磁带设备]  [-b 块大小]  [-s  磁带大小]  
[-d  数据空间] 数据库 [:[主.] 表]  
[{-i  旧索引名  新索引名}]  
[{-fd  旧数据空间名  新数据空间名}]  

[说明]  
若未指定数据来源参数,则以环境变量TAPEDEV为参数,  
-l 选项指定onload 从环境变量 LTAPEDEV  LTAPEBLK  LTAPESIZE中指定的参数为设备、块大小、磁带大小,若使用了 -t ,-b, -s选项,则以-t -b -s指定的参数为准  
-t 指定设备  
-b 指定块大小  
-s 指定磁带大小  
-d 选项指定数据表将使用的数据空间  
-i  选项将旧索引名转换成新索引名  
-fd 选项将旧数据空间名转换成新数据空间名  



四  onlog 显示逻辑日志内容  

本命令显示一个磁盘或磁带上的逻辑日志文件内容,在跟踪调试时有广泛的用途  

[语法] onlog  [-l] [-q]  [-d  磁带设备] [-n 日志文件号] [-u 用户名][-t 表空间号]  [-x  事务号]  

[说明]  

-l 近可能多地显示每个日志文件的信息  

-q 不显示程序头  

-d 从指定磁带设备中读文件  

-n 显示指定日志  

-u 显示指定用户的日志  

-t 显示指定表空间号(tblspace_num)日志  

-x 显示指定事务号(transaction_id)日志  


五 onmode 改变模式和共享内存  

本命令有以下功能:改变数据库工作模式,设置检测点(checkpoint),改变共享内存(shared memory)区,切换逻辑日志文件,杀死一个数据库服务期(server session),杀死一个数据库事务(transaction),设置数据复制类型(data-replication type),增加一段共享内存,增加或删除一个虚拟处理器,设置决策支持(decision-support)参数,释放无用内存段.只有用root或informix注册才能使用此命令  

下面按功能说明用法  

改变工作模式  
onmode  [-k]  [-m]  [-s]  [-u]  

-k 转到离线(off-line)模式  
-m 从静模式(quiescent)转到在线(on-line)模式  
-s 从在线模式转到静模式,允许所有正进行的业务做完,但不允许新的连接  
-u 从在线模式立即转到静模式,不等业务做完  

设置检测点(checkpoint)  

onmode  -c  

改变共享内存驻留  

onmode  {-n|-r}  

-n 立即停止共享内存的强制驻留  
-r 立即开始共享内存的强制驻留  

切换逻辑日志文件,切换到下一逻辑日志文件  

onmode  -l  

杀死数据库服务期(server  session)  

onmode  -z 服务期号  

服务期号可由 onstat -n  命令获得  

杀死事务(transaction)  

onmode  -Z 事务地址  

杀死一个分配在指定地址上的事务,地址可由 onstat  -x 获得  


设置数据复制(data-replication)类型  

onmode -d { standard|primary 数据服务名|secondary 数据服务名}  
使用 -d  standard 选项,则切断数据复制模式,将当前数据库服务器转换成标准模式  
使用 -d primary  选项,则试图连接指定的数据库服务器,若成功则将指定的数据库服务器设为基本服务器,且将数据复制开启(将基本数据库服务器置为on-line,将第二数据库服务器置为read-only)  
使用 -d  secondary 选项,则试图连接指定的数据库服务器,若成功则将指定的数据库服务器设为第二服务器,且将数据复制开启  

增加共享内存  

onmode  -a  段大小  
段大小的单位为千字节  

增加或删除虚拟处理器  

onmode -p  [+] 数字  {CPU|AIO|SHM|TLI|SOC}  
     或 onmode -p    -  数字 CPU  
上一行为增加虚拟处理器,下一行为删除虚拟处理器,一次只能增加或删除一种类型的处理器  


改变决策支持(decision_support)参数  

onmode  -D   优先级数  
onmode  -M   千字节数  
onmode  -Q   查询数  
onmode  -S   搜索数  

以上选项设定四个环境变量,  
-D  设定 MAX_PDQPRIORITY  
-M  设定 DS_TOTAL_MEMORY  
-Q  设定 DS_MAX_QUERIES  
-S  设定 DS_MAX_SCANS  

释放无用内存  

onmode  -F  

六 onparams  改变日志设定((log-Configuration)参数  

本命令有以下功能:增加一个逻辑日志文件,删除一个逻辑日志文件,改变物理日志的大小和位置,执行本命令时数据库必须在静模式(quiescent)下,且必须以root或informix用户注册.下面按功能说明用法.  

增加一个逻辑日志  
onparams  -a  -d  数据空间 [-s 大小] [-y]  
数据空间(dbspace)由 -d 指定,大小由 -s 指定,单位为千字节, -y 选项对所有的提问回答YES  

删除一个逻辑日志  
onparams -d  -l  逻辑日志号  [-y]  
逻辑日志号可由 onstat -l 获得  

改变物理日志文件大小或位置  

onparams -p  [-s  大小] [-d  数据空间 ] [-y]  



七 onspaces 改变数据空间((dbspaces)  

本命令有以下功能:建立和删除一个数据空间(dbspaces)或临时数据空间,增加和删除一个块(chunk),开始或结束镜相(mirroring),改变块(chunk)状态,设置DATASKIP参数,执行本命令必须以 root 或 informix 注册.  



建立数据空间或临时数据空间  
onspaces   -c -d  数据空间名  [-t] -p 路径 -o 偏移 -s 大小  
  [ -m  路径  偏移]  
加t选项指建立临时数据空间,m 后的路径和偏移指镜相块的路径和偏移  

删除数据空间或临时数据空间  

onspaces  -d 数据空间名  

增加一个块  
onspaces  -a  数据空间名  -p 路径名 -o 偏移  -s  大小  
  [-m  路径  偏移]  

删除一个块  
onspaces  -d   数据空间名  -p 路径名  -o  偏移  

开始镜相  
onspaces  -m  数据空间名  [-p 路径 -o 偏移 -m 路径 偏移|  
     -f 文件名]  
结束镜相  
onspaces  -r  数据空间名  

改变镜相块(mirrored chunk)状态  
onspaces  -s  数据空间名 -p 路径  -o 偏移  { -D|-O}  
改变一个镜相块的状态,-D选项将其关闭(take down),-O选项将其重开(restore)并置于在线(on-line)状态  

设置DATASKIP 值  
onspaces -f  {OFF|ON}  { 数据空间表}  
将DATASKIP值设为 ON 或OFF  


八 onstat  显示数据库状态  

本命令显示数据库在执行本命令时的状态,执行本命令时不在共享内存上加锁,故执行时不会影响正常运行.  

[语法] onstat  [选项]  

[选项说明]  

若不带任何选项执行 onstat ,则相当于执行了 onstat  -pu  

-- 列出本命令的所有选项  

-a 执行 onstat -a 相当于执行了 onstat -cuskbtdlp (所有小写选项)  

-b 显示正在使用的缓冲区  

-B 显示所有的缓冲区(不仅是正在使用的)  

-c 显示ONCONFIG 文件内容,数据库首先检测你是否定义了环境变量  
ONCONFIG,若有则显示 $INformIX/etc/$ONCONFIG 文件的内容,若未定义,则显示  
$INformIX/etc/onconfig文件的内容,此文件包含了许多系统需要的定义和设置.  

-C 显示B+树清除(B+ tree cleaner)情况  

-d 显示每个数据空间(dbspace)的块(chunk)信息  

-D 显示每个数据空间头50个块的页(page)读写的情况  

-F 显示每一种类型的写回磁盘(flush pages to disk)的统计数  

-h 显示哈西链(hash chain)缓冲区信息  

-i 进入onstat的交互方式,可直接敲入onstat命令,使用CTRL-d 退出交互方式  
-k 显示活动锁(active lock)的信息  

-l 显示物理日志和逻辑日志的信息  

-m 显示20个系统最近用到的系统信息日志  

-o  [文件名] 将当前共享内存段内容写入指定文件,缺省为 onstat.out  

-p 显示各项统计数  
第一部分为显示读写情况,从左至右分为八部分,依次是:  
dskreads  实际读磁盘的次数  
pagreads 读到的页数  
bufreads 从缓冲区(共享内存中)读的次数  
%cached (bufreads-dskreads)/bufreads  
dskwrits 实际写磁盘次数(包括写日志)  
pagwrits 写的页数  
bufwrits 写缓冲区(共享内存)的次数  
%cached (bufwrites-dskwrite)/bufwrits  
若发现缓冲区利用率太低,则会降低数据库的速度,此时应使用onmode命令增加共享内存或改进程序中的数据库访问方法  

第二部分显示ISAM(索引顺序存取)调用情况,这是一种最低级的调用,不一定和SQL语句一一对应,一次SQL可能执行多次ISAM调用,这些数字是多个实际库服务器的总统计数,故不能用于监测单个数据库,除非目前只有一个活动的数据库服务器或只存在一个数据库,从左至右依次是:  
isamtot 总调用次数  
open 打开表空间(tblspace)时的次数  
start 在索引中定位时的次数  
read 读时的次数  
write 写时的次数  
rewrite 更新时的次数  
delete 删除时的次数  
commit 执行一次iscommit()时的次数,不一定与COMMIT WORK 一一对应  
rollbk 回滚时的次数  

第三部分显示对资源请求时不能满足的次数,从左至右依次是:  
ovlock 执行锁操作请求超过定义的最大值的次数(最大值由 ONCONFIG 文件中的LOCKS定义)  
ovuserthreads 用户试图超过定义的最大用户线索的次数(最大值由 ONCONFIG 文件中的USERTHREADS定义)  
ovbuff 系统试图超过定义的最大共享内存缓冲区的次数(Informix数据库常用命令快速索引  
阅读(1175) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~