发新话题
打印

Informix 常用命令的收集

本主题由 admin 于 2007-11-4 12:12 移动

Informix 常用命令的收集

Informix 常用命令的收集

语法 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 <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

TOP

13. ALTER INDEX index-name TO [NOT] CLUSTER 修改索引性质。

13. ALTER INDEX index-name TO [NOT] CLUSTER   修改索引性质。

index-name:索引名称。

TO [NOT] CLUSTER:去掉或加上CLUSTER属性。

语句执行时,将表的状态置为EXCLUSIVE;事务中处理过程中使用此语句,即使事务回滚,索引性质将改变,不能恢复。

例:alter index ix_user to not cluster;

14. DROP INDEX index-name  删除索引。

index-name:索引名称。

语句使用者是索引的拥有者或拥有DBA权限,事务中处理过程中不要使用此语句,否则事务无法恢复。

例:drop index ix_user;

15. CREATE SYNONYM synonym FOR table-name  创建同义名。

synonym:同义名

table-name:表名称

数据库的创建者可以使用同义名;没有赋予同义名权限的用户不能使用同义名;同义名不能和表名相同;事务中处理过程中不要使用此语句。

例:create synonym user_alias for user;

16. DROP SYNONYM synonym   删除同义名。

synonym:同义名

可以删除自己建立的同义名;事务中处理过程中不要使用此语句,否则无法恢复。

例:drop synonym user_alias;

17. UPDATE STATISTICS [FOR TABLE table-name]  更新数据库的统计数字。

table-name:表名称

此语句仅作用于当前数据库;可提高查询效率;只有执行此语句,才改变统计数据。

例:update statistics for table user;

18. GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list}授权命令。  

PUBLIC|user-list:全部或指定的用户。  

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。  

例:grant resource to pulbic;  

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION]  

授表级权限。  

tab-privilege:表级权限。  

table-name:表名称。  

PUBLIC|user-list:全部或指定的用户。  

[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。  

用户可以在自己建立表达式或被[WITH GRANT OPTION]准许的表中进行赋权;限定越多的权限优先级越高。  

例:grant update(c1,c6) on user to dick with grant option;  

附(INFORMIX的权限)  

(1) 数据库的权限(控制对数据库的访问以及数据库中表的创建和删除)  

DBA权限:全部权利,修改系统表,建立和删除表与索引、增加和恢复表数据,以及授予其他用户数据库权限等;  

RESOURCE权限:允许对数据库表中的数据进行存取,建立永久性表以及索引。  

CONNECT权限:只允许对数据库表中的数据进行存取,建立和删除视图与临时表。  

(2)表级权限(对表的建立、修改、检索和更新等权限)  

ALTER:更改权限  

DELETE:删除权限  

INDEX:索引权限  

INSERT:插入权限  

SELECT [(cols)]:指定字段或所有字段上的查询权限,不指明字段缺省为所有字段。  

UPDATE [(cols)] :指定字段或所有字段上的更新权限,不指明字段缺省为所有字段。  

ALL [PRIVILEGES]:以上所有表级权限  

19. REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list}  收权命令。  

PUBLIC|user-list:全部或指定的用户。  

三种权限居且仅居其一,事务处理过程中不要执行GRANT语句。  

例:revoke resource from john;  

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list}  

收表级权限。  

tab-privilege:表级权限。  

table-name:表名称。  

PUBLIC|user-list:全部或指定的用户。  

[WITH GRANT OPTION]:表示被授权用户有否权限进行二次授权。  

用户只能取消由其本人赋予其他用户的表级存取权限;不能取消自己的权限,对SELECT和UPDATE作取消时,将取消

所有表中字段的SELECT 和UPDATE权限。  

例;revoke update on user from dick;  

20.LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE  记录级加锁和表级加锁或文件加锁。  

table-name:表名称。  

SHARE:允许读表中数据,但不允许作任何修改  

EXCLUSIVE:禁止其他任何形式访问表  

每次只能对表琐定一次;事务处理过程中,BEGIN WORK后立即执行LOCK TABLE以取代记录级加锁,COMMIT WORK和

ROLLBACK WORK语句取消所有对表的加锁;若没有事务处理,锁将保持到用户退出或执行UNLOCK为止。  

例:lock table user in exclusive mode;  

21. UNLOCK TABLE table-name  取消记录级加锁和表级加锁或文件加锁。  

table-name:表名称。  

例:unlock user;  

22. SET LOCK MODE TO [NOT] WAIT  改变锁定状态。  

TO [NOT]:等待解锁,有可能被死锁或不等待并提示错误信息,表示此记录被锁,缺省值。  

访问一个EXCLUSIVE状态下的记录,将返回一个错误。  

23. START DATABSE db_name [WITH LOG IN “pathname”]  启动事务处理。  

“pathname”:事务处理日志文件。  

执行该语句前,需要先关闭当前数据库。  

例;clost database;  

start databse customer with log in “/usr/john/log/customer.log”;

TOP

24.  BEGIN WORK  开始事务。例:begin work;  

25. COMMIT WORK  提交(正常结束)事务。例:commit work;  

26. ROLLBACK WORK  回滚(非正常结束)事务。例:rollback work;  

SELECT  

SELECT select_list FROM tab_name|view_name  

WHERE condition  

GROUP BY column_name  

HAVING condition  

ORDER BY column_list  

27. INTO TEMP table_name  查询语句。  

select_list:选择表或*  

tab_name:表名称  

view_name:视图名称。  

condition:查询条件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、  

AND、OR、=、!=或<>、>、 >= 、<=、<、ALL、ANY、SOME  

column_name:分组字段名称  

condition:群聚条件  

column_list:排序字段列表,缺省ASC,可指定DSC;排序时,NULL值小于非零值。  

table_name:临时表名称  

例:略  

附(常用函数)  

(1)集合函数:  

count(*)、  

sum(数据项/表达式)、avg(数据项/表达式)、max(数据项/表达式)、min(数据项/表达式)  

count(distinct 数据项/表达式)、sum(distinct数据项/表达式)、avg(distinct数据项/表达式)  

(2)代数函数和三角函数  

HEX(数据项/表达式)、ROUND(数据项/表达式)、TRUNC(数据项/表达式)、  

TAN(数据项/表达式)、ABS(数据项/表达式)、MOD(被除数,除数)  

(3)统计函数  

标准差,stdev()、方差,variance()、范围,rang()  

(4)时间函数  

DAY(日期/时间表达式):返回数字型  

MONTH(日期/时间表达式):返回整数  

WEEKDAY(日期/时间表达式):0&#0;&#0;6,0星期天,1星期一;返回整数  

YEAR(日期/时间表达式)、返回整数  

DATE(非日期表达式):返回日期型  

EXTEND(日期/时间表达式,[第一个至最后一个]):返回指定的整数  

MDY(月,日,年):返回日期型  

CURRENT:返回日期型  

(5)时间函数  

ROUND(),四舍五入。如:ROUND(10.95,position)position进行四舍五入的前一位置  

TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置  

INFORMIX临时表在下列情况下自动取消:  

A.退出数据库访问工具(如DBACCESS)  

B.SQL通话结束(DISCONNECT)  

C.发出取消表语句  

D.退出程序时  

28. INSERT  

INSERT INTO view_name|table_name [(column_list)] VALUES (value_list)  

或 INSERT INTO view_name|table_name [(column_list)] select_statement  插入数据  

view_name|table_name:视图名或表名称  

column_list:数据项列表。  

value_list:值列表  

select_statement:查询语句。  

例:略  

29. DELETE FROM view_name|table_name WHERE search-conditions  删除语句。  

view_name|table_name:视图名或表名称  

search-conditions;删除条件  

例:略  

31. UPDATE  

UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions  

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions  更新数据语句。  

view_name|table_name:表名称或视图表名称  

value_1ist:字段值  

search_conditions:更新数据的条件  

例:略  

32. CHECK TABLE table-name  检查索引语句。  

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。  

33. REPAIR TABLE table-name  修复索引。  

语句使用者是表的拥有者或拥有DBA权限;不能对systable使用此语句。  

34. LOAD FROM “file-name” INSERT INTO table_name [(column_name[,…])]  将文本数据栽入表中。  

例:load form “aa.txt” insert into user;  

35. UNLOAD TO “pathname”  将表中数据卸为文本。  

例:unload to “aa.txt” select * from user;  

36. INFO  系统信息查询。  

INFO TABLES:得到当前数据库上表的名字。  

INFO columns FOR table_name:指定表上的字段信息。  

INFO INDEXES FOR table_name:指定表上的索引信息。  

INFO [ACCESS|PRIVILEGES] FOR table_name:指定表上的存取权限。  

INFO STATUS FOR table_name:指定表的状态信息。  

例: info tables;

TOP

发新话题