informix命令
archecker
用archecker程序检查备份
为确保安全的恢复备份内容,informix建议最好用ON-Bar对备份项目进行检查。使用onbar –v命令时,archecker程序将检查存储空间备份,但不检查逻辑日志备份。
cace
cace 编译C语言程序
用cace编译C语言程序生成sacego新的定制版本。不过在INFORMIX OnLine 5.0下,要把cace中的ESQLC和exec这两行改为如下内容才能顺利编译成功:
① ESQLC=${INFORMIXDIR=/usr/informix}/lib/esql/esqlc
② $ECHO exec cc -I$INFDIR/incl -I$INFDIR/incl/esql
$A $INFDIR/lib/libsace.a $LIB -lcurses
编译命令是:cace -s -o newacego valid.ec,生成sacego的新版本newacego。newacego的参数格式与sacego一样。
Chkenv
使用chkenv实用程序检查环境变量。
chkenv实用程序检查共享或专用环境配置文件的有效性。它验证文件中各个环境变量的名称,但不验证它们的值。当你在环境配置文件中定义IBM Informix产品使用的所有环境变量时,使用chkenv来提供调试信息。文件 $INFORMIXDIR/etc/informix.rc 是共享环境配置文件。专用环境配置文件以 .informix的形式存储在用户的主目录中。如果未对chkenv指定任何路径名,则该实用程序会同时检查共享和专用环境配置文件,如果提供了路径名,则chkenv只检查指定文件。
发出以下命令以检查共享环境配置文件的内容: chkenv informix.rc
如果chkenv实用程序在文件中发现错误的环境变量名或如果该文件过大,则该实用程序返回错误消息,可修改该文件并重新运行该实用程序以检查修改后的环境变量名。
如果chkenv实用程序返回以下消息,则IBM Informix产品忽略环境配置文件从错误位置开始的所有行: -33523 文件名:在行编号上发现错误的环境变量。
dbaccess
是捆绑在Informix-Online DB Server上的一套DBMS实例程序,可以做到:
①.利用该工具可以做到创建和删除数据库.
②.查询数据库中各种信息,编辑使用SQL语句.
③.创建,更改,删除数据库基表.
④.增加,删除,修改数据库中原始记录.
⑤.从OS(操作系统)文件中装载数据到数据库中.
⑥.将数据库中的数据卸出到一个OS(操作系统)文件中.
⑦.创建回收权限.
⑧.利用该工具可以创建,删除,修改Procedure(过程)。
dbaccessdemo7
dbaccessdemo7[DBname] [with log]
└→创建范例DB└→数据库名└→缺省不带系统日志
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命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。
Dbimport
Dbimport将为你创建数据库并将ASCII码文件或模式文件装载到该数据库中。Dbimport的功能是利用dbexport生成的ASCII文件和模式文件重新构建数据库,其中的ASCII文件和模式文件可以来自磁带或磁盘。装载数据库时会产生一个名为Dbimport.out的文件,该文件含有运行Dbimport命令时所产生的错误信息和警告信息。
dbimport <database> [-X] [-c] [-q] [-d <dbspace>] [-l [{ buffered | <log-file> }] [-ansi]]
[{ -i <dir> | -t <tapedev> [ -b <blksz> -s <tapesz> ] [-f <script-file>] }]
-c:使程序在发生错误时仍能继续运行,直至发生了致命错误。
-q:不对SQL语句作出响应。
-i:确定了数据文件存储的目录路径。
-t:指明了数据文件来自哪个磁带驱动器。
-b:以千字节为单位确定了磁带块的大小。
-s:以千字节为单位确定从每个磁带上读取的字节数。
-f:确定了SQL命令文件的输入路径。
-d:指明了所创建的数据库所处的dbspace。
-ansi:使新创建的数据库为ANSI模式。
database:指明要创建的数据库名。
Dbload
Dbload可以灵活的将磁盘上的ASCII码文件装入数据库表中。
同样使进行数据装载,dbload装载数据的表必须在数据装载前已经存在,而dbimport则不必。Dbimport装载的ASCII文件来自dbexport的输出,而dbload装载的ASCII文件既可以来自unload语句的输出,也可来自其他一些途径,如C程序、文本编辑器或任何一种具有卸载功能并产生的ASCII数据的文件。
dbload [-d dbname] [-c cfilname] [-l logfile] [-e errnum] [-n nnum] [-i inum] [-s] [-p] [-r | -k] [-X]
-d 指明了用于接收数据的数据库名。
-c 指明了dbload命令文件的文件名。
-f 指明了一个出错日志文件的文件名或路径名。
-e 用于确定终止dbload前可以读取的有问题的记录数目。
-n 使dbload每装入指定的数目记录后就进行一次事务提交,这仅当数据库带有日志
时才发挥
作用。如果没有设置该选项,则每装载100条记录就进行事务提交。
-p 若读取的有问题的记录数目超过限定值,加入-p 后将产生提示指令。
-i 使dbload忽略输入文件中指定个数的换行字符。
-r 使dbload在执行数据装载过程中不对表进行*,以保证其他用户可在装载期间
对表进行数据更新操作。
dbschema
数据库管理员可以使用dbschema实用程序快速的生成一个复制整个数据库或某个所选数据库表的命令文件,该文件中包含所需的 CREATE TABLE,CREATE INDEX及CREATE VIEW语句。另外,dbschema还可以产生作用于数据库或某个所选数据库表或视图上的所有CREATE SYNONYM和GRANT语句。参数缺省时,dbschema产生作用于整个数据库上的所有CREATE TABLE,CREATE INDEX、CREATE VIEW、CREATE SYNONYM及GRANT语句。使用适当的命令行选项,可以将输出限制为对某个已选数据库表或视图的输出,或产生某个特定用户的同义名和权限。
dbschema [-t tabname] [-s sname] [-p pname] -d database [-o filename]
-t 标识符tabname是表或视图名,dbschema将输出该表或视图的CREATE TABLE,
CREATEINDEX或CREATE VIEW语句。如果tabname为all,则输出的是所有数据
库表和视图的SQL语句。
-s 标识符sname是用户名,dbschema将输出该用户的CREATE SYNONYM语句。如
果sname为all,则输出所有用户的SQL语句。如果有-t 选项,sbschema仅产生指定
表名的CREATE SYNONYM语句。
-p 标识符pname是用户名,dbschema将输出该用户的权限。如果pname为all,则输
出赋予所有用户权限所需的SQL语句。如果使用了-t 选项,dbschema仅产生指定
表的GRANT语句。
-d 标识符database是数据库名。
-o 标识符filename是接收SQL语句的文件名。如果未给出filename,dbschema将输出
到终端屏幕上。
esql <*.ec>
使用方法:
esql [-e] [-static] [-shared] [-esqlcargs] [-otherargs] [-o outfile] [-libs] esqlfile.ec [othersrc.c...]
[otherobj.o...] [-lyourlib...]
参数说明:
-e Preprocess only, no compilation or linking
-static Use informix static libraries.
-shared Use informix shared libraries ( default is shared).
-esqlcargs esqlc arguments (-g, -G, -nln, -Ipathname, -nowarn, -V, -ansi,-xopen, -local, -log,
- EDname, - EUname, -icheck)
-otherargs Other arguments are passed to cc
-o Next argument is program name
-libs Display the list of libraries used by esql at link time
finderr
用来查询数据库的错误。当系统出现数据库错误时,系统处了给你简单的出错提示外,还给出一个错误号。你可以使用此命令对这种错误进行深入的分析,然后针对不同的错误进行相应的处理。
例如:当你在超级用户root下对储蓄数据库bankstar进行操作时,系统提示:
387: No connect permission.
111: ISAM error: no record found.
意思是:系统出现387错误,错误的原因是:没有connect权限。
原因分析:
操作数据库至少需要CONNECT权限。
解决如下:informix用户注册,执行如下SQL语句:grant connect to root
isql
捆绑在Informix-Online DB Server上的一套DBMS实例程序。
①.利用该工具可以做到创建和删除数据库。
②.查询数据库中各种信息,编辑使用SQL语句。
③.创建,更改,删除数据库基表。
④.增加,删除,修改数据库中原始记录。
⑤.从OS(操作系统)文件中装载数据到数据库中。
⑥.将数据库中的数据卸出到一个OS(操作系统)文件中。
⑦.创建回收权限。
⑧.利用该工具可以创建,删除,修改,编译屏幕表格文件(*.per),并运行。
⑨.利用该工具可以创建,删除,修改,编译报表文件(*.ace),并运行。
glfiles
The UNIX glfiles command outputs a list of locales that are supported on your UNIX system. For locales not included in the Informix distribution, an International Language Supplement provides locales, code set conversions, translated user interfaces and documentation.
onbar就是备份,在onconfig文件里面把tapedev 设成你的磁带设备。还有ltapedev也设成你的磁带设备。然后把onconfig中的onbar相关项目配置好。重起Informix Server,你的逻辑日志就会自动备份到你的磁带设备上了。然后, 你需要备份onbar -b -w, 需要恢复obar -r -p 或者 -l,还有一个很好的功能,onbar -t 时间,可以恢复到任意时间点。
如果要使用onbar,必须要有存储管理器,这一般是其它厂商的产品,informix和这些厂商都遵守XBSA协议,也就是相应的API接口.否则,只能使用ontape备份了.
另外,informix自己也带了一个简单的存储管理器,你可以参考
Informix Backup and Restore Guide, December 1999这本手册.
操纵动态服务器的运行模式
管理动态服务器系统的数据空间
管理逻辑日志和物理日志
利用onstat命令监控动态服务器系统
oninit 命令
语法 oninit [-s] [-i] [-p] [-y]
oninit 将系统从off-line模式变为on-line模式
oninit -s 将系统从off-line模式变为quiescent模式
oninit -i 初始化系统
oninit -p 在共享内存初始化时,不搜索,删除临时表
oninit -y 对提示自动回答yes
oninit -- 键入此命令可以获得使用帮助
oninit 命令用来改变系统的运行模式。其中-i选项用于初始化系统的root dbspace。注意,root-dbspace一旦被初始化,则等于整个数据库系统被初始化。
如果用户希望在计算机启动时自动自动启动动态服务器系统,请在系统初启文件(在许多UNIX系统中为/etc/rc)中加入onstat命令(不加任何选项)。
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 sizedbspace大小(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 sizechunk大小
-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 <value> 每隔<value>秒后重复选项
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 -pe