1. 啟動與停止命令
停止命令如下:
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
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
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為INFORMIXSERVER
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)
);
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
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字節。
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.
下面的used列表示每個logical log file的page數。%used表示每個logical log file的已經使用的page數。6 total表示的是一個有6個logical log file。
posted on 2010-04-20 10:27
阿蜜果 閱讀(3877)
評論(3) 編輯 收藏 所屬分類:
database