informix使用备忘录
停止命令如下:
onmode
-
k
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
也可以在informix或root用户下运行如下命令将数据库模式转换到关机状态:
onmode
-
ky
启动命令如下:
oninit
-
v
使用如下命令也能启动:
oninit
或者使用root或informix用户运行如下语句将数据库模式转换为online状态:
oninit
-
vy
2. 创建数据库
1)使用可视化界面创建
i) 运行dbaccess命令进入;
ii) 选择“Database”菜单,Enter进入;
iii) 选择“Create”菜单,Enter进入;
iv) 输入数据库的名字,例如amigoxie,按Enter键确认输入;
v) 在菜单中的“Dbspace”中选择数据库空间,笔者的服务器只有rootdbs这个数据库空间,Enter键确认选择;
vi) 在菜单中的“Log”中选择“Buffered_log”后按Enter键确认选择(Buffered_log支持存储过程);
vii)按Tab键选择“Exit”后按Enter确认选择;
viii)在“Create-new-database”和“Discard-new-database”两个选项中选择前者,按Enter键确认创建。数据库“amigoxie”创建完成。
2)使用数据库创建命令创建
使用如下命令创建1)中类似的amigoxing数据库:
create
database
amigoxing
in
rootdbs
with
log
;
3. 创建数据库空间
我们将存储数据库信息的空间叫做:dbspaces。
Dbspace=一个或多个chunks。
Chunk=物理的存储单元,比如一个文件,或者一个磁盘设备。
在下面的实例中添加一个名为amigo_dbspace数据库空间,在Unix中,chunk文件的所有者必须是informix用户,informix用户组,并且具有660权限,创建该数据库空间的命令如下:
[
informix@minicc ~
]
$ touch
/
home
/
informix
/
chunklink
/
amigo_dbspace
[ informix@minicc ~ ] $ chmod 660 / home / informix / chunklink / amigo_dbspace
[ informix@minicc ~ ] $ onspaces –c –d amigo_dbspace –p / home / informix / chunklink / amigo_dbspace –o 0 –s 102400
[ informix@minicc ~ ] $ chmod 660 / home / informix / chunklink / amigo_dbspace
[ informix@minicc ~ ] $ onspaces –c –d amigo_dbspace –p / home / informix / chunklink / amigo_dbspace –o 0 –s 102400
4. 查看数据库编码
dbaccess进入后,进入到sysmaster库,运行如下命令可查看当前各个库的编码:
select
*
from
sysdbslocale;
运行结果类似如下:
dbs_dbsname sysmaster
dbs_collate en_US. 819
dbs_dbsname sysutils
dbs_collate en_US. 819
dbs_dbsname sysuser
dbs_collate en_US. 819
dbs_dbsname sdp
dbs_collate en_US. 57372
dbs_dbsname smp
dbs_collate en_US. 57372
dbs_collate en_US. 819
dbs_dbsname sysutils
dbs_collate en_US. 819
dbs_dbsname sysuser
dbs_collate en_US. 819
dbs_dbsname sdp
dbs_collate en_US. 57372
dbs_dbsname smp
dbs_collate en_US. 57372
5. 查看informix占用的端口
在informix的安装目录的etc目录下的sqlhosts文件,可查看端口信息,例如下面表示informix的端口为7778:
sdpdb onsoctcp minicc2
7778
6. 使用dbaccess命令从文件导入建表信息
若想从某个包含建表建索引等信息的文件里面将信息导入到某个库中,可将文件拷贝到要运行命令的目录,而后运行:
dbaccess 数据库名称 文件名称
例如运行如下命令表示将create.sql文件中的信息导入到amigo数据库中:
dbaccess amigo
create
.sql
7. 给某个用户赋予某个库的dba权限
使用dbaccess命令进去后,选择“Query-language”,接着选择需要赋予dba权限的库,再选择“New”,输入如下命令并运行来赋予权限:
grant
dba
to
用户名;
8. 连接informix库的用户的.bash_profile的配置
参考配置如下:
SDFDB
=
sdp
export SDFDB
INFORMIXDIR =/ home / informix
INFORMIXSERVER = sdpdb1
ONCONFIG = onconfig.scp2
PATH = $PATH:$INFORMIXDIR / bin
LD_LIBRARY_PATH = $LD_LIBRARY_PATH:$INFORMIXDIR / lib:$INFORMIXDIR / lib / esql
export INFORMIXDIR
export INFORMIXSERVER
export ONCONFIG PATH
export LD_LIBRARY_PATH
export LANG = en_US.utf8
export DB_LOCALE = en_US.utf8
export CLIENT_LOCALE = en_US.utf8
其中SDFDB为数据库的名称,INFORMIXDIR为informix的安装根路径,sdpdb1为INFORMIXSERVERexport SDFDB
INFORMIXDIR =/ home / informix
INFORMIXSERVER = sdpdb1
ONCONFIG = onconfig.scp2
PATH = $PATH:$INFORMIXDIR / bin
LD_LIBRARY_PATH = $LD_LIBRARY_PATH:$INFORMIXDIR / lib:$INFORMIXDIR / lib / esql
export INFORMIXDIR
export INFORMIXSERVER
export ONCONFIG PATH
export LD_LIBRARY_PATH
export LANG = en_US.utf8
export DB_LOCALE = en_US.utf8
export CLIENT_LOCALE = en_US.utf8
9. informix导出表数据
进入查询页面后,运行命令:
unload
to
文件名
select
*
from
表名
例如,将cti_callstat的数据导入到data.txt文件中,命令如下:
unload
to
data.txt
select
*
from
cti_callstat;
10. informix修改表字段属性
alter table 表名modify(列名 char(300)); {这时300的长度使用varchar会报错,超过了最大长度限制}
例如更新ss_trunk表的nonce字段为varchar(255),更新语句为:
alter table ss_trunk modify(nonce varchar(
255
));
11. informix的小数类型
类型为:DECIMAL(p, s)
其中p就是有效数字长度,s就是小数点后数字长度。例如在下面示例中,建立cti_humantaskexp表,该表的probability字段为小于1的小数,小数位数为6位,总位数为8位。
create
table
cti_humantaskexp (
serviceid VARCHAR ( 30 ) not null ,
seconds INTEGER default 0 not null ,
probability DECIMAL ( 8 , 6 ) default 0 ,
updatekey VARCHAR ( 30 )
);
serviceid VARCHAR ( 30 ) not null ,
seconds INTEGER default 0 not null ,
probability DECIMAL ( 8 , 6 ) default 0 ,
updatekey VARCHAR ( 30 )
);
11. 查看informix的状态是否正常
可以通过命令查看informix的状态是否正常:
onstat
例如笔者服务器上informix的该语句的返回结果如下:
IBM Informix Dynamic Server Version
10.00
.UC1
--
On-Line -- Up 00:00:28 -- 962380 Kbytes
Userthreads
address flags sessid user tty wait tout locks nreads nwrites
7d721018 -- -P--D 1 informix - 0 0 0 23 7
7d721544 -- -P--F 0 informix - 0 0 0 0 0
7d721a70 -- -P--F 0 informix - 0 0 0 0 0
7d721f9c -- -P--F 0 informix - 0 0 0 0 0
7d7224c8 -- -P--F 0 informix - 0 0 0 0 0
7d7229f4 -- -P--F 0 informix - 0 0 0 0 0
7d722f20 -- -P--F 0 informix - 0 0 0 0 0
7d72344c -- -P--F 0 informix - 0 0 0 0 0
7d723978 -- -P--F 0 informix - 0 0 0 0 0
7d723ea4 -- -P--F 0 informix - 0 0 0 0 0
7d7243d0 -- -P--F 0 informix - 0 0 0 0 0
7d7248fc -- -P--F 0 informix - 0 0 0 0 0
7d724e28 -- -P--F 0 informix - 0 0 0 0 0
7d725354 -- -P--- 6 informix - 0 0 0 0 0
7d725880 -- -P--B 7 informix - 0 0 0 0 0
7d725dac -- -P--- 9 informix - 0 0 0 0 0
7d726804 -- -P--D 10 informix - 0 0 0 0 0
17 active, 128 total, 29 maximum concurrent
Profile
dskreads pagreads bufreads % cached dskwrits pagwrits bufwrits % cached
25 185 671 96.27 7 7 0 0.00
isamtot open start read write rewrite delete commit rollbk
22 6 6 4 0 0 0 0 0
gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
0 0 0 0 0 0 0
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 2.76 1.52 1 2
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
0 0 14 0 0 0 0 0
ixda - RA idx - RA da - RA RA - pgsused lchwaits
0 0 0 0 21
Userthreads
address flags sessid user tty wait tout locks nreads nwrites
7d721018 -- -P--D 1 informix - 0 0 0 23 7
7d721544 -- -P--F 0 informix - 0 0 0 0 0
7d721a70 -- -P--F 0 informix - 0 0 0 0 0
7d721f9c -- -P--F 0 informix - 0 0 0 0 0
7d7224c8 -- -P--F 0 informix - 0 0 0 0 0
7d7229f4 -- -P--F 0 informix - 0 0 0 0 0
7d722f20 -- -P--F 0 informix - 0 0 0 0 0
7d72344c -- -P--F 0 informix - 0 0 0 0 0
7d723978 -- -P--F 0 informix - 0 0 0 0 0
7d723ea4 -- -P--F 0 informix - 0 0 0 0 0
7d7243d0 -- -P--F 0 informix - 0 0 0 0 0
7d7248fc -- -P--F 0 informix - 0 0 0 0 0
7d724e28 -- -P--F 0 informix - 0 0 0 0 0
7d725354 -- -P--- 6 informix - 0 0 0 0 0
7d725880 -- -P--B 7 informix - 0 0 0 0 0
7d725dac -- -P--- 9 informix - 0 0 0 0 0
7d726804 -- -P--D 10 informix - 0 0 0 0 0
17 active, 128 total, 29 maximum concurrent
Profile
dskreads pagreads bufreads % cached dskwrits pagwrits bufwrits % cached
25 185 671 96.27 7 7 0 0.00
isamtot open start read write rewrite delete commit rollbk
22 6 6 4 0 0 0 0 0
gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
0 0 0 0 0 0 0
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 2.76 1.52 1 2
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
0 0 14 0 0 0 0 0
ixda - RA idx - RA da - RA RA - pgsused lchwaits
0 0 0 0 21
12. 查看informix数据库空间的使用情况
使用的命令如下:
onstat
-
d
笔者所在informix服务器该命令的运行结果如下:
IBM Informix Dynamic Server Version
10.00
.UC1
--
On-Line -- Up 01:06:09 -- 962380 Kbytes
Dbspaces
address number flags fchunk nchunks pgsize flags owner name
7d5247e0 1 0x40001 1 1 2048 N B informix rootdbs
1 active, 2047 maximum
Chunks
address chunk / dbs offset size free bpages flags pathname
7d524938 1 1 0 1000000 922473 PO - B / home / informix / chunklink / rootdbs
1 active, 32766 maximum
NOTE: The values in the "size" and "free" columns for DBspace chunks are
displayed in terms of "pgsize" of the DBspace to which they belong.
Expanded chunk capacity mode: always
其中size表示的是一个有多少个page,在此为1000000,free表示空间多少个page,这里为922473,pgsize表示每个page的大小,在这里为2048字节。Dbspaces
address number flags fchunk nchunks pgsize flags owner name
7d5247e0 1 0x40001 1 1 2048 N B informix rootdbs
1 active, 2047 maximum
Chunks
address chunk / dbs offset size free bpages flags pathname
7d524938 1 1 0 1000000 922473 PO - B / home / informix / chunklink / rootdbs
1 active, 32766 maximum
NOTE: The values in the "size" and "free" columns for DBspace chunks are
displayed in terms of "pgsize" of the DBspace to which they belong.
Expanded chunk capacity mode: always
13. 查看informix日志的一些情况
使用如下命令可以查看informix逻辑日记和物理日志的一些情况:
onstat
-
l
笔者的informix服务器的运行结果如下:
IBM Informix Dynamic Server Version
10.00
.UC1
--
On-Line -- Up 01:15:46 -- 962380 Kbytes
Physical Logging
Buffer bufused bufsize numpages numwrits pages / io
P - 1 0 160 315 3 105.00
phybegin physize phypos phyused % used
1 : 263 50000 13910 0 0.00
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs / pages pages / io
L - 1 0 160 24333 1620 18 15.0 90.0
Subsystem numrecs Log Space used
OLDRSAM 24333 3258504
address number flags uniqid begin size used % used
7d75b630 1 U - B -- -- 37 1:50263 2500 2500 100.00
7d75b678 2 U - B -- -- 38 1:52763 2500 2500 100.00
7d75b6c0 3 U - B -- -- 39 1:55263 2500 2500 100.00
7d75b708 4 U -- -C-L 40 1:57763 2500 2041 81.64
7d75b750 5 U - B -- -- 35 1:60263 2500 2500 100.00
7d75b798 6 U - B -- -- 36 1:62763 2500 2500 100.00
6 active, 6 total
其中physize表示physical log file的page数,在这里数量为50000.Physical Logging
Buffer bufused bufsize numpages numwrits pages / io
P - 1 0 160 315 3 105.00
phybegin physize phypos phyused % used
1 : 263 50000 13910 0 0.00
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs / pages pages / io
L - 1 0 160 24333 1620 18 15.0 90.0
Subsystem numrecs Log Space used
OLDRSAM 24333 3258504
address number flags uniqid begin size used % used
7d75b630 1 U - B -- -- 37 1:50263 2500 2500 100.00
7d75b678 2 U - B -- -- 38 1:52763 2500 2500 100.00
7d75b6c0 3 U - B -- -- 39 1:55263 2500 2500 100.00
7d75b708 4 U -- -C-L 40 1:57763 2500 2041 81.64
7d75b750 5 U - B -- -- 35 1:60263 2500 2500 100.00
7d75b798 6 U - B -- -- 36 1:62763 2500 2500 100.00
6 active, 6 total
下面的used列表示每个logical log file的page数。%used表示每个logical log file的已经使用的page数。6 total表示的是一个有6个logical log file。