informix经常使用命令

1、经常使用命令
oninit        将系统从off-line模式变为on-line模式
oninit -iy   (初始化数据库,删除全部dbspace和chunk)
oninit -s    (脱机-->静态)

onmode -ky   offline
onmode -s    graceful shutdown-->quiescent(联机到静态,让用户处理完成)
onmode -u    immediate shutdown-->quiescent(联机到静态,全部用户当即终止)
onmode -m    quiescent--->online
onmode -z sid  删除某session

onmode -l   将当前正在使用的逻辑日志下移
onmode -c   强制执行检查点操做 即onmonitor->force ckpt

onstat -     查看服务器状态
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影响的dbspace
onstat -x    查看事务
onstat -k    显示全部活动的锁

onstat -g sub_option 运行多线索选项 
onstat -g ses/sql 
onstat -r <value> 每隔<value>秒后重复选项 
onstat -g act   显示系统中全部的活动线索 
onstat -g ath -r 2 每隔两秒显示系统中全部的活动的线索 

onstat -i     交互方式 
>sql
>sql sid


ipcs         查看共享内存状况
ipcrm        删除某个共享内存
ipcrm -m id 
ipcrm -s id


Ontape命令:
1)零级(一级或二级)备份
$>ontape -s
$>ontape -s -L 0
$>ontape -s -L 1
$>ontape -s -L 2

自动备份逻辑日志文件 
$>ontape -a

3)连续逻辑日志备份(日志文件写满一个,online系统自动备份一个,你能够插盘磁带到磁带机上,让IDS自动备份。要占用磁带机)
$>ontape -c

4)备份恢复(对应零级备份或一级备份或二级备份)
$>ontape -r (详细过程见ontape恢复文挡)

5)备份恢复几个DBSPACE(必定要存在逻辑日志备份,不然物理恢复完后,仍是不能用)
$>ontape -r -D dbs1 dbs2 。。。

6)配置HDR时使用的物理恢复
$>ontape -p

7)修改数据库日志模式
$>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       extend
oncheck -ce
oncheck -cr       reserved pages
oncheck -cd       TBLspace data rows including bitmap
oncheck -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 logid

         logid 为逻辑日志id号,能够用onstat -l 查看,而后就可根据id号删
         除3个旧逻辑日志。 

        将当前正在使用的逻辑日志下移
        $onmode -l 


3、DBSPACE及数据库导入导出

1.增长一个新的dbspace:(datadbs,15M, 偏移为0)
onspaces -c -d datadbs -p /home/informix/datadbs -o 0 -s 15000

2.在datadbs这一个dbspace中增长一个chunk:(datadbs_chunk1)
onspaces -a datadbs -p /home/informix/datadbs_chunk1 -o 0 -s 15000

3.将上述chunk删除
onspaces -d datadbs -p /home/informix/datadbs_chunk1 -o 0 

4.删除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 tabname
unload to "/usr/data/unload/customer.unl" select * from customer;

检查表中的行数(用SQL中的Table/Info命令),验证卸载是否成功。比较这个数与装入完成后SQL显示的消息。
用此验证file_or_tape_path中的行数:
wc -l file_or_tape_path

4)删除表格

5)用dbacess生产表格并运行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;

 

 

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

oninit   将系统从off-line模式变为on-line模式 

oninit -s   将系统从off-line模式变为quiescent模式 

oninit -i   初始化系统 

oninit -p   在共享内存初始化时,不搜索,删除临时表 

oninit -y   对提示自动回答yes 

oninit -v 加入这个选项显示oninit处理过程 

oninit-- 键入此命令能够得到使用帮助 


oninit命令用来改变系统的运行模式。其中-i选项用于初始化系统的root dbspace。注意,root-dbspace一旦被初始化,则等于整个数据库系统被初始化。 

若是用户但愿在计算机启动时自动自动启动动态服务器系统,请在系统初启文件(在许多UNIX系统中为/etc/rc)中加入oninit命令(不加任何选项)。 

onmode 命令 

语法: onmode [-k] [-m] [-s] [-u] [-y] 

onmode -k     执行当即shutdown,将系统变为off-line模式 

onmode -m     将系统从quiescent模式变为on-line模式 

onmode -s     执行graceful shutdown 

onmode -u      执行immediate shutdwon 

onmode -y     对提示自动回答yes 


onmode 命令一样用于改变更态服务器的运行模式。除了上述选项外,onmode还有不少与改变系统运行模式无关的选项。 

利用onspaces命令建立数据空间 

语法: onspaces -c [-b] [-d] [-z] [-m] [-o] [-p] [-s] [-t] 

-c      建立blobspace或dbspace 

-b blobspace blobspace名 

-d dbspace   dbspace名 

-g page size  blobpages大小 

-m mirror    镜像设备设的全路径名和偏移量(KB) 

-o offset    偏移量(KB) 

-p pathname   chunk设备的全路径名 

-s size    dbspace大小(KB) 

-t       建立临时dbspace 


onspaces 命令用于建立数据空间、临时空间和存储blob数据的空间(blobspace)。键入onspaces--能够得到该命令的联机帮助。利用onstat -D或onstat -d能够看到系统中的关于数据空间的重要信息。包括:chunk的状态、空闲、每一chunk读写的次数。系统中可能包括的多个系统空间,特别当进行数据 分片后,咱们建议用户最好能利用命令行来建立数据空间。 

能够利用以下命令建立数据空间: 

onspaces -c -d datadbs1 -o 0 -p /dev/rrvol3 -s 60000 

能够用以下的方式建立临时数据空间: 

onspaces -c -d tempdbs1 -t -o 0 -p /dev/rrvol5 -s 80000 

在系统中,临时数据空间很是重要,一般状况下,应将多个临时数据空间分布在独立的物理设备上。 


利用onspaces命令删除数据空间 

增长或删除chunks 

语法: onspaces -a -d [-m] [-o] [-p] 

-a spacename    为dbspace新增chunk 

-m pathname    镜像设备的全路径名和偏移量(KB) 

-o offset      主设备的偏移量(KB) 

-p pathname     chunk设备的全路径名 

-s size      chunk大小 

-d spacename    删除chunk 

-o offset      chunk设备的偏移量(KB) 


onspaces不只能建立数据空间还能删除数据空间、临时数据空间或存储blob数据的空间。在删除数据空间时,必须首先保证它是无用的,即该数据空间上无数据库或表。 

如需删除数据空间,请键入以下命令:onspaces -d dbspace_name /blobspace_name 

数 据空间最初由一个chunk(first chunk)构成,一旦其空间用尽,用户必须追加chunk为了提升系统性能,用户在为数据空间分配chunk时须要计算以保证它的大小能适应将来的需 要,不然在追加chunk的时候,它与先前的chunk在物理上不必定相邻,致使增长读取数据的时间。关于如何计算空间需求将在之后章节中阐述。利用 onspaces命令能够对数据空间增长或者删除chunk,除此以外,利用该命令还能够完成以下任务:启动镜像、停止镜像或改变chunk的状态。 

例如能够用以下命令为数据空间增长chunk: 

onspaces -a -d datadbs1 -0 60002 -p /dev/rrvol3 -s 60000 

再如能够用以下方式从数据空间中删除chunk: 

onspaces -d datadbs1 -o 60002 -p /dev/rrvol3 -s 60000 


onparams 命令 

语法:onparams -a -d -p [-d] [-s] [-l] 

-a     新增逻辑日志 

-d dbspace 指定日志存放的dbspace 

-s size   新增逻辑日志的大小(KB) 

-d     删除逻辑日志 

-l logid  指定删除一个逻辑日志 

-p     改变物理日志 

-d dbspace 新物理日志存放的dbspace名 

-s size  物理日志大小(KB) 



系 统在初始化时自动地在root dbspace中建立逻辑日志和物理日志。在DBMS系统中,尤为在OLTP环境下,数据库的操做很是频繁,日志中必须记录大量的信息,因此用户最好能将 多个日志文件分布在不一样的设备上。有一种很是简单的方法: 即按所需大小建立逻辑日志,同时建立一个较小的物理日志,系统初始化完毕后,再将物理日志移至其它设备。关于如何肯定所需的物理日志的大小,将在之后的章 节详述。 利用onstat -l命令能够看出系统中全部新增的逻辑日志被标识为A。这些逻辑日志只有在系统进行归档后才会真正被使用。为了激活这些逻辑日志有一种简单的方法:执行一 次"伪"归档。具体步骤以下:将参数TAPEDEV设置为/dev/null而后运行一次ontape -s。也能够执行onbar -F命令。因为伪归档并不真正归档系统信息,因此千万要适时地对系统进行真正的归档操做。 

只有在逻辑日志真正无用时才能将其删除。利 用onstat -l 能够看出全部的空闲日志被标记为F。若是逻辑日志中包含事务回滚或快速恢复所需的信息,该逻辑日志是不能被删除的。利用onstat -l命令能够看出接受当前事务的日志被标记为C。若是逻辑日志包括最后一个检查点记录,它也是不能被删除的,只有当检查点记录被写入下一个日志忠而且上一 个日志被备份后,该日志才能被删除。利用onstat -l命令能够看出包含最后一个检查点记录的日志被标记为L。用户能够利用onmode -c命令强制写检查点记录直至最后一个检查点记录被写入所要求的日志为止。 

onstat 工具 

显示动态服务器共享内存中的信息 
涉及少许磁盘I/O操做 
将对系统性能的影响极小 
提供关于系统有价值得信息 
命令行交互式监控系统 
在本章中将讲解onstat 的各类重要选项,请熟悉它们的使用 
onstat 命令是一种很是有用的系统实时监控工具。该命令直接从共享内存的数据结构中读取信息,报告当时的系统情况。一般onstat 命令不会进行磁盘I/O操做,也不会对系统资源加锁,因此它对系统性能的影响减小到最小。简言之,onstat是informix提供的一种交互式的系统 监控工具。 

onstat 的一些经常使用选项: 

onstat --     列出全部选项 

onstat -i     设置进入交互模式 

onstat -      显示运行模式和数据库引擎状态 

onstat -g sub_option 运行多线索选项 

onstat -r 每隔秒后重复选项 

onstat -g act   显示系统中全部的活动线索 

onstat -g ath -r 2 每隔两秒显示系统中全部的活动的线索 


系统监控界面 

sysmaster数据库在系统初始化时自动建立 
数据库中包括指向系统共享内存结构数据字典信息 
提供瞬时的系统性能和状态信息 
提供SQL界面了解数据字典信息 
容许管理员将系统管理工做自动化 
用于执行重复性的监控任务 




系 统监控界面(system Monitoring Interface --SMI)是一种基于SQL的系统工具,用户经过SMI能够很是方便地获取系统信息。系统在初始化时,自动地在root dbapace建立sysmaster系统数据库。每一系统包括一个sysmaster数据库,该数据库中的大部分表为虚表,是指向共享内存中数据结构的 指针。利用SMI能够自动监控系统,特别是在执行重复任务时。 

sysmaster数据库是只读的,即不容许对其进行INSERT UPDATE,或DELETE操做。全部用户都拥有对该数据库的查询权限。 

在 系统初始化后,用户必定要注意检查sysmaster数据库是否创建成功。建立sysmaster数据库的信息都保存在消息日志文件中 (online.log)请注意因为全部的DDL语句都将被记录在日志中,因此必定要在日志文件中留出足够的空间以保证建立sysmaster所需。 

sysmaster数据库模式记录在$INFORMIXDIR/etc/sysmaster.sql文件中。 

oncheck 命令 

检查动态服务器磁盘上的数据结构 
定位并修补损坏的索引和数据 
有磁盘I/O操做 
一些操做在处理时将在表上加锁 
oncheck命令用于修复磁盘上损坏的索引和数据页,该命令也可用于检查并打印系统的数据结构。在使用oncheck时必定要小心,由于改命令的某些选项会对表加共享锁,例如:oncheck -pt 

为防止对系统的损坏,系统会对全部共享内存中的数据进行一次一致性检查。一旦发现数据页出现一致性错误或发现索引错误,系统将把问题和可能的解决方案(利用oncheck)写入消息日志文件,并返回isam错误代码105。 

若是发现一致性错误信息,用户应该当即关闭系统并按消息日志文件中的提示运行oncheck。若是oncheck运行失败,则应尝试卸出表再从新装入;若是是索引得问题,则应先删除索引再重建之。若是全部这些步骤都失败了,只有根据原有的系统归档备份来恢复系统。 

下面的命令能够提供extend信息: 

oncheck -pesql

 

在onstat –l中,flag位表示了逻辑日志的状态,
A表示新加了还不能使用的日志
F表示空闲的可使用的日志,通常是在0级备份以后才有这样的状态
U表示已经使用的逻辑日志
L表示当前的日志文件包含一个检查点
C表示正在使用当前的日志文件
B表示已经备份的日志文件数据库

相关文章
相关标签/搜索