Informix 9.40UC9 on Redhat Linux AS 4安裝手記

來源:互聯網
上載者:User

Informix一直以來應該算比較沒落了,由於一個項目關係,不得不安裝使用,以前主要做Oracle,這次安裝Informix也算是頭一遭了。

一、準備介質
Redhat Linux AS 4有4張碟,可以從網上下載得到,Informix 9.40UC9 就一個tar檔案,沒有壓縮大概544M的樣子。

二、安裝Redhat Linux AS 4,沒什麼好說的,圖形介面,一路很順暢

三、安裝Informix

從網上找到一份安裝指引http://bbs.chinaunix.net/thread-301370-1-15.html,這篇指引中的好像還可以用,不過我的這份安裝版本與這個不太一樣,是一個整合的安裝包。

×準備informix環境

建立使用者informix,並指定使用者組informix:useradd -d /home/informix -m informix

×切換到使用者環境,修改環境變數
vi .bash_profile,加入下面的參數配置,為了保證對於特殊漢字的相容,我這裡採用了GB18030-2000的字元集。

INFORMIXDIR=/u1/informix;export INFORMIXDIR
INFORMIXSERVER=cs_dbs;export INFORMIXSERVER
ONCONFIG=onconfig.cs;export ONCONFIG
DBDATE=Y4MD-;export DBDATE
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
 
DB_LOCALE=zh_CN.GB18030-2000; export DB_LOCALE
CLIENT_LOCALE=zh_CN.GB18030-2000; export CLIENT_LOCALE
SERVER_LOCALE=zh_CN.GB18030-2000; export SERVER_LOCALE
DBLANG=zh_CN.GB18030-2000; export DBLANG
 
PATH=$PATH:$HOME/bin:$INFORMIXDIR/bin:/usr/java/jdk1.5.0_16/bin
 
export PATH

×安裝Informix程式

安裝需要在root使用者下面進行,這裡安裝Informix目錄到/u1/informix,需要chown informix:infomix /u1/informix,安裝程式用tar解開目錄結構如下,
 drwxr-xr-x  5 root bin  4096 2007-01-18  DBLD
drwxr-xr-x  4 root bin  4096 2007-01-18  ICONNECT
-rwxr-xr-x  1 root bin 44265 2007-01-18  ids_install
drwxr-xr-x  3 root bin  4096 2007-01-18  JDBC
-rw-r--r--  1 root bin  7649 2007-01-18  README.html
drwxr-xr-x  3 root bin  4096 2007-01-18  SERVER
drwxr-xr-x  3 root bin  4096 2007-01-18  SVR_ADM
直接運行./ids_install,提示是否確認協議,然後出來選項
IBM Informix Unix Bundle Installer
 
Installation Requirements:
- A user "informix" and a group "informix" must be known to the system.
- This installation procedure must be run by user root.
- Approximately 770 MB disk space required initially.
- Approximately 500 MB disk space if everything is installed (50 MB
  for ISA, 25 MB for JDBC).
 
0) All Products listed below
1) IBM Informix Dynamic Server 9.40
2) IBM Informix IConnect
3) IBM Informix JDBC
4) IBM Informix Server Administrator
5) Configure a Demo IDS Server (requires IDS)
 
Enter the number(s) of the products to install, separated by spaces
(i.e. "1 2 3"):

直接安裝全部組件,或者逐個安裝應該都可以。安裝好像就是直接解壓了,很快就完了。

×配置環境,設定參數

1、修改/etc/services,檔案最後加入
sqlexe            1526/tcp
sqlexec          1528/tcp
本文這裡1528就是最後的監聽連接埠

2、修改/etc/hosts,加入IP,主機名稱解析
192.168.1.43   mylinux

3、配置$INFORMIXDIR/etc/sqlhosts檔案
        cs_dbs              onipcshm        mylinux        sqlexe
        cs_dbs_tcp        onsoctcp        mylinux        sqlexec
4、建立空間,這裡就照抄了
        以informix使用者操作
        在INFORMIXDIR中建立dbs目錄;(便於區分拉)
        首先touch rootdbs logdbs phydbs blobdbs tmpdbs datadbs
        然後chmod 660 *
        保證所有的dbs檔案都是informix使用者informix組;許可權都是660;

5、配置$INFORMIXDIR/etc/onconfig.cs檔案,這個檔案可以直接按照下面配置,或者複製onconfig.std來修改

        --rootdbs路徑、空間
        ROOTNAME        rootdbs         # Root dbspace name
        ROOTPATH        /u1/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都替換成/u/informix/

×啟動資料庫
啟動資料庫,並初始化系統資料表
oninit -ivy
查看是否運行狀態
onstat -i,,顯示如下資訊,表明運行正常
IBM Informix Dynamic Server Version 9.40.UC9     -- On-Line -- Up 7 days 08:35:51

×最佳化設定,完善資料庫空間

這裡本人初學,完全照搬作者了
        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

如果需要,運行dbaccess可以建立一個新的資料庫,資料庫的LOCALE就會是配置的GB18030-2000,不過由於Redhat AS 4內部內建的字元集為zh_CN.UTF-8,所以term中通過dbaccess插入
或者輸入的中文都會是UTF-8編碼的,只能在伺服器上正常看,用戶端看到的就會亂碼了,相反,通過用戶端插入的中文為GB18030-2000編碼,dbaccess訪問查詢就是亂碼。
如果運行dbexport匯出資料庫,通過ftp下載到windows上就是正常的,在redhat上面如果需要正常查看,需要通過iconv把編碼從GBK轉為UTF-8就可以用more正常查看了。

對於這個dbaccess的亂碼問題,我還沒有找到一個好的辦法,修改term中的LC_ALL等參數都沒有效果。

×修改redhat防火牆

最後需要將連接埠1528加入到防火牆的允許中,可以vi /etc/sysconfig/iptables,加在這個位置

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -p tcp -m tcp --dport 1528 -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

...

然後service iptables restart重啟啟動防火牆,應該在用戶端就可以串連了。

四、用戶端配置

1、安裝windows版本的CSDK,運行setnet32:
Envirement中設定CLIENT_LOCALE=zh_cn.GB18030-2000,DB_LOCALE=zh_cn.GB18030-2000
Server Information中設定:
IBM Informix Server:cs_dbs
HostName:192.168.1.43
protcolname:onsoctcp
Service Name:1528,這個參數很噁心,其實就是連接埠號碼,如果你安裝windows版本的,可以使用turbo這類這樣的服務名,類似本文的sqlexec
2、串連測試
×DBRichTool 該程式通過setnet32的配置訪問資料庫,串連測試成功,對中文的支援也很好
×JDBC程式串連測試,好像URL如下配置就正常訪問沒有問題:
jdbc:informix-sqli://192.168.1.43:1528/newdb:informixserver=cs_dbs;DB_LOCALE=zh_CN.gb18030-2000;CLIENT_LOCALE=zh_CN.gb18030-2000;NEWCODESET=GBK,gb18030-2000,5488,utf-8
分析原因是與SUN JDK在windows下面檔案中編碼是GBK有關,而且必須使用NEWCODESET參數配置。
×AGS Service Studio測試
這個程式有點奇怪,參照網上的一篇文章,改造一下jdbc驅動之後串連很正常。
串連編輯視窗中Advanced..設定CLIENT_LOCALE=zh_cn.GB18030-2000,DB_LOCALE=zh_cn.GB18030-2000

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.