作業系統:Red Hat Enterprise LinuxServer release 5.5
informix版本:Informix_Ultimate_11.70.UC3_LIN_x86_32_FixPack.tar
把本機IP和hostname寫到/etc/hosts裡。
1.建立informix使用者和組
[root@informix ~]# groupadd -g 1000 informix
[root@informix ~]# useradd -u 1000 -g informix -m informix
[root@informix ~]# passwd informix
Changing password for user informix.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully
[root@informix ~]# id informix
uid=1000(informix) gid=1000(informix) groups=1000(informix)
2.解壓檔案
[root@informix ~]# mkdir /usr/informix #資料庫安裝目錄
[root@informix ~]#chown informix:informix /usr/informix
[root@informix ~]#tar xvf Informix_Ultimate_11.70.UC3_LIN_x86_32_FixPack.tar -C /usr/informix/insta
3.安裝軟體:
由於informix預設會把軟體安裝到/opt/IBM/informix下,要更改目錄可以在安裝的時候更改也可以安裝前更改
安裝前設定安裝目錄:
export INFORMIXDIR=/usr/informix
以下操作以root使用者執行:
1) 進入軟體目錄執行安裝程式ids_install
[root@informix insta]# ./ids_install
4.配置
1)設定環境變數
以informix 使用者身份登入
[root@informix ~]# su - informix
[informix@informix ~]$vi ids.env #將以下命令列(總計3行)添加到ids.env 檔案:
export INFORMIXDIR=/usr/informix
export INFORMIXSERVER=demo_on
export PATH=$INFORMIXDIR/bin:$PATH
[informix@informix ~]$vi .bash_profile #在後面加上
INFORMIXDIR=/usr/informix
INFORMIXSERVER=informix
PATH=$PATH:$HOME/bin:$INFORMIXDIR/bin
export PATH INFORMIXDIR INFORMIXSERVER
2)使設定環境生效:
[informix@informix ~]$. ./ids.env
[informix@informix ~]$ source .bash_profile
3)配置onconfig和sqlhosts
cd /$INFORMIXDIR/etc/
cp onconfig.std onconfig
cp sqlhosts.std sqlhosts
vi onconfig
ROOTNAME rootdbs
ROOTPATH /usr/informix/dbspaces/rootdbs
MSGPATH /usr/informix/log/online.log
SERVERNUM 1
DBSERVERNAME informix
SHMBASE 0x10000000L
TAPEDEV /dev/null
DBSPACETEMP tmpdbs
[informix@informix ~]$mkdir /usr/informix/dbspaces
[informix@informix ~]$mkdir /usr/informix/log
[informix@informix ~]$cd /usr/informix/dbspaces/
[informix@informix ~]$touch rootdbs
[informix@informix ~]$chmod 660 rootdbs
[informix@informix ~]$cd $INFORMIXDIR/tmp
[informix@informix ~]$touch tmpdbs
[informix@informix ~]$chmod 660 tmpdbs
vi sqlhosts #尾行加
informix onsoctcp informix.hans.comsqlexec
[informix@informix ~]#vi /etc/services
sqlexec 9999/tcp
5.啟動和關閉資料庫
1)啟動
[informix@informix ~]$oninit -ivy
啟動時報:
shmget: [EEXIST][17]: key 52564801: shared memory already exists
日誌資訊:
10:50:13 IBM Informix Dynamic Server Started.
10:50:13 shmget: [EEXIST][17]: key 52564801: shared memory already exists
10:50:13 mt_shm_init: can't create resident segment
我的網上搜的解決方案:
NETTYPE # Configure poll thread(s) for nettype ->暫時不設
#NETTYPE tlitcp,1,20,NET # Configure poll thread(s) for nettype
NUMCPUVPS 1 # Number of user (cpu) vps ->暫時改為1
BUFFERS 10000 # Maximum number of shared buffers ->暫時減小10倍為10000
CKPTINTVL 3600 # Check point interval (in sec) ->這個設定成3600先。
oninit -ivy前請先用ipcs檢查下是否有informix使用者佔用了記憶體段。
但NUMCPUVPS和BUFFERS 在onconfig檔案裡沒有找到。
同時我又把SERVERNUM 設定為1,但我在另一個安裝好的庫上看到這個沒有設定值
這次啟動成功。
[informix@informix ~]$oninit -ivy
Reading configuration file '/usr/informix/etc/onconfig'...succeeded
Creating /INFORMIXTMP/.infxdirs...succeeded
Checking config parameters...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool 10596 kbytes...succeeded
Allocating 100016 kbytes for buffer pool of 2K page size...succeeded
Creating infos file "/usr/informix/etc/.infos.informix"...succeeded
Linking conf file "/usr/informix/etc/.conf.informix"...succeeded
Initializing rhead structure...succeeded
Writing to infos file...succeeded
Initialization of Encryption...succeeded
Initializing ASF...succeeded
Initializing Dictionary Cache and SPL Routine Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Onlining 0 additional cpu vps...succeeded
Onlining 2 IO vps...succeeded
Forking main_loop thread...succeeded
Initializing DR structures...succeeded
Forking 1 'ipcshm' listener threads...succeeded
Starting tracing...succeeded
Initializing 8 flushers...succeeded
Initializing SDS Server network connections...succeeded
Initializing log/checkpoint information...succeeded
Initializing dbspaces...succeeded
Opening primary chunks...succeeded
Opening mirror chunks...succeeded
Validating chunks...succeeded
Initialize Async Log Flusher...succeeded
Starting B-tree Scanner...succeeded
Initializing DBSPACETEMP list...succeeded
Init ReadAhead Daemon...succeeded
Checking database partition index...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop...succeeded
Updating Global Row Counter...succeeded
Forking onmode_mon thread...succeeded
Creating periodic thread...succeeded
Starting scheduling system...succeeded
Verbose output complete: mode = 5
運行測試程式:dbaccessdemo7
2)關閉
[informix@informix ~]$onmode -ky
關閉資料後又重新啟動時又報錯
日誌資訊:
14:47:39 IBM Informix Dynamic Server Started.
Tue Aug 2 14:47:40 2011
14:47:40 Event alarms enabled. ALARMPROG = '/usr/informix/etc/alarmprogram.sh'
14:47:40 Booting Language <c> from module <>
14:47:40 Loading Module <CNULL>
14:47:40 Booting Language <builtin> from module <>
14:47:40 Loading Module <BUILTINNULL>
14:47:46 DR: DRAUTO is 0 (Off)
14:47:46 DR: ENCRYPT_HDR is 0 (HDR encryption Disabled)
14:47:46 IBM Informix Dynamic Server Version 11.70.UC3 Software Serial Number AAA#B000000
14:47:46 DISK INITIALIZATION ABORTED: potential instance overwrite detected.
To disable this check, set FULL_DISK_INIT to 1 in your config file and retry.
14:47:46 oninit: Fatal error in shared memory initialization
14:47:46 IBM Informix Dynamic Server Stopped.
14:47:46 mt_shm_remove: WARNING: may not have removed all/correct segments
網上給的解決方案:
在11.70中加入了FULL_DISK_INIT 這個參數,對當前已經初始化的dbspace進行保護,若是需要初始化dbspace,需要更改這個參數為1 .
只要初始化成功了,該參數就自動變為0.
以後啟動就不需要使用-i 這個命令了,直接使用oninit -vy 就行了。-i 只需要在第一次初始化的時候使用。。
設定成1啟動成功。
建立資料庫:
1、使用dbaccess進入informix互動環境
2、選擇Database,斷行符號
3、選擇Create,斷行符號
4、輸入資料庫名:hans,斷行符號
5、選擇Dbspace(資料表空間) ,斷行符號
6、選擇跟局資料資料庫bureaudb一樣的資料表空間,斷行符號
7、選擇Log ,斷行符號
8、選擇Log,斷行符號(選擇記錄模式,其他不支援事務)
9、選擇Exit,斷行符號
10、選擇Create-new-database ,斷行符號。
此時資料庫應該已經建立。
查看某個資料庫的資料表空間:
1、使用dbaccess進入informix互動環境
2、選擇Database,斷行符號
3、選擇Select,斷行符號
4、選擇局資料資料庫bureaudb,斷行符號
5、選擇Info,斷行符號
6、選擇dBSpace,斷行符號
本文出自 “linux管理” 部落格