2012年1月17日 星期二

informix for linux安裝全攻略


第一步:下載
ids 9.4 for linux:
ftp://ftp.youngcow.net/Special/Database/DatabaseServer/Informix/InformixDynamicServerVersion9.4/IIUG-IDS-9.4-linux.zip

csdk for linux:
ftp://ftp.software.ibm.com/software/data/informix/downloads/clientsdk.2.81.UC2.LINUX.tar

第二步:linux搭建安裝informix的環境

建立informix組:groupadd -g 20000 informix

建立informix用戶:useradd -u 20000 -g 20000 -d /home/informix -m informix

修改informix使用者環境變數:
修改 .bash_profile檔 增加以下環境變數

INFORMIXDIR=/home/informix
INFORMIXSERVER=cs_dbs
ONCONFIG=onconfig.cs
DBDATE=MDY4*
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export INFORMIXDIR INFORMIXSERVER ONCONFIG LD_LIBRARY_PATH
PATH=$PATH:$INFORMIXDIR/bin
export PATH
這個就不用偶解釋了吧;

第三步:準備安裝文件

zip檔解壓就不用偶說了吧;呵呵

把解開的一個Linux-IDS.9.40.tc1e1.cpio與clientsdk.2.81.UC2.LINUX.tar檔傳入環境中;

解開Linux-IDS.9.40.tc1e1.cpio:cpio -idmv <Linux-IDS.9.40.tc1e1.cpio;
生成的檔你看的到;

解開clientsdk.2.81.UC2.LINUX.tar:tar xvf clientsdk.2.81.UC2.LINUX.tar;
生成csdk.cpi;

解開csdk.cpi cpio -idmv <csdk.cpi;
生成的檔你看的到;

第四步:開始安裝

首先用informix用戶登陸

安裝ids:在informix目錄下運行./installserver

碰到提示,直接回車;

完成後su到root運行RUN_AS_ROOT.server;

這樣你的ids就安裝好了;

安裝csdk:在inforomix目錄下運行./installclientsdk;

碰到提示敲yes,回車;

完成後su到root運行RUN_AS_ROOT.clientsdk;

這樣你的clientsdk就裝好了;

第五步:開始配置

1、配置/etc/services檔
sqlexe    1526/tcp
    sqlexec   1528/tcp

--sqlexe和sqlexec是services 名字,1526、1528是埠號;
--TCP/IP表示TCP/IP協議

2、配置/etc/hosts檔
192.168.28.1 linux(本主機名稱稱)

3、配置$INFORMIXDIR/etc/sqlhosts檔
cs_dbs onipcshm linux sqlexe
cs_dbs_tcp onsoctcp linux sqlexec

--這裡配置了共用記憶體方式和soctcp方式連接資料庫的兩種方式;linux代表主機名稱;sqlexe/sqlexec分別代表在services檔中配的服務;
--另外需要注意的是,informix for linux 9.4版中release提到不支援tlitcp方式;所以這裡採用的onsoctcp方式;
--若sqlhosts檔配置了tlitcp方式或者說sqlhosts檔中的配置和onconfig.cs檔配置不一樣,會出現很多人都經常碰到的25507錯誤;

4、建立空間
以informix用戶操作
在INFORMIXDIR中建立dbs目錄;(便於區分拉)
首先touch rootdbs logdbs phydbs blobdbs tmpdbs datadbs
然後chmod 660 *
保證所有的dbs檔都是informix用戶informix組;許可權都是660;

5、配置$INFORMIXDIR/etc/onconfig.cs文件
以下列出需要注意的幾點內容:

--rootdbs路徑、空間
ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /home/informix/dbs/rootdbs  # Path for device containing root dbspace
ROOTOFFSET      0               # Offset of root dbspace into device (Kbytes)
ROOTSIZE        100000          # Size of root dbspace (Kbytes)

--物理日誌的dbs空間,先用rootdbs的20M;
PHYSDBS         rootdbs         # Location (dbspace) of physical log
PHYSFILE        20000           # Physical log file size (Kbytes)

--邏輯日誌用預設的
# Logical Log Configuration

LOGFILES        6               # Number of logical log files
LOGSIZE         2000            # Logical log size (Kbytes)

--把磁帶的東西都改成/dev/null
TAPEDEV         /dev/null       # Tape device path
TAPEBLK         32              # Tape block size (Kbytes)
TAPESIZE        10240           # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

LTAPEDEV        /dev/null       # Log tape device path
LTAPEBLK        32              # Log tape block size (Kbytes)
LTAPESIZE       10240           # Max amount of data to put on log tape (Kbytes)

--配置資料庫伺服器參數,根據自己機器配置的實際情況分配locks和buffers;
SERVERNUM       0               # Unique id corresponding to a OnLine instance
DBSERVERNAME    cs_dbs          # Name of default database server
DBSERVERALIASES cs_dbs_tcp      # List of alternate dbservernames
NETTYPE         ipcshm,1,8,CPU  # Configure poll thread(s) for nettype
NETTYPE         soctcp,1,8,NET  # Configure poll thread(s) for nettype

LOCKS 5000 # Maximum number of locks
BUFFERS 500 # Maximum number of shared buffers
NUMAIOVPS 2 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 1 # Number of buffer cleaner processes
SHMBASE 0x10000000 # Shared memory base address
SHMVIRTSIZE     8000 # initial virtual shared memory segment size
SHMADD 8192 # Size of new shared memory segments (Kbytes)

另外就是onconfig.cs檔中所有/usr/informix都替換成/home/informix/

6、初始化資料庫了
oninit -ivy
成功後用onstat -i 就可以看到了
Informix Dynamic Server Version 9.40.UC1E1   -- On-Line -- Up 00:31:47 -- 18872
Kbytes
onstat>;

7、完善資料庫空間

下面提供一個我經常使用的shell

echo "Add blobdbs, tmpdbs0, phydbs, logdbs..."
echo "====================================================="

onspaces -c -b blobdbs -g 32 -p /home/informix/dbs/blobdbs -o 0 -s  48000
onspaces -c -d tmpdbs -t -p /home/informix/dbs/tmpdbs -o 0 -s 100000

onspaces -c -d phydbs -p /home/informix/dbs/phydbs -o 0 -s 50200
onspaces -c -d logdbs -p /home/informix/dbs/logdbs -o 0 -s 200000

echo "\nShut Down Server to Quiescent Mode..."
echo "====================================================="
onmode -s -y
sleep 5

echo "Adding Logical Log\n"
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 20000
onparams -a -d logdbs -s 10000

echo "\nArchiving Database Server Please Wait 20 seconds.\n"
echo "====================================================="
ontape -s
sleep 5

onmode -l
onmode -l
onmode -l
onmode -l
onmode -l
onmode -l
onmode -c
sleep 10

echo "\nDrop the old Logical Log Files... \n"
echo "====================================================="
onparams -d -l 1 -y
onparams -d -l 2 -y
onparams -d -l 3 -y
onparams -d -l 4 -y
onparams -d -l 5 -y
onparams -d -l 6 -y

echo "\nChange Physical Log Files, please wait about 1 minutes...\n"
echo "====================================================="
onparams -p -s 50000 -d phydbs -y
sleep 100

echo "\nNow add more dbspaces/chunks...\n"
echo "====================================================="


onspaces -c -d datadbs   -p /home/informix/dbs/datadbs -o 0 -s 500000

echo "\nTake a level 0 archive.\n"
echo "====================================================="

ontape -s  -L 0

echo "\nReboot IDS...\n\n"
echo "====================================================="

onmode -ky
oninit

sleep 10

echo "\n====================================================="
echo "Well done! \n"
echo "====================================================="

最後修改onconfig.cs文件
DBSPACETEMP     tmpdbs         # Default temp dbspaces
onmode -ky
oninit

沒有留言: