许多数据库操作可以在菜单式交互环境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数据库常用命令快速索引
| | |