Unix操作系統和Informix動態服務器(Informix Dynamic Server,IDS)在金融部門的信息系統中有著非常廣泛的應用。有時我們會遇到這樣一種情況,Informix要進行版本升級,或者應用系統數據庫要進行大的修改,或者業務部門要求對數據庫做臨時性的調整等等,所有這些工作都要提前測試或在另一個IDS環境中進行。通常為滿足這種需求,我們會另找一臺服務器,安裝系統、配置數據庫、應用軟件等,當然還需要一臺新的服務器;也可以將原系統的數據庫備份下來,再進行測試,而這樣做既費時又費力,還會影響當前數據庫的正常運行。如果能夠在一個Unix系統上同時啟動兩個甚至多個IDS,則會提高硬件系統的利用率和工作效率,達到事半功倍的效果。本人在這方面做了一些嘗試,在這里把自己的體會與大家共享,希望能對大家有所幫助。
本文將以SCO Unix 5.0.5系統與Informix 7.31數據庫為例介紹同時安裝兩個IDS的配置方法,其他的Unix操作系統及兩個以上IDS的配置與此類似。為節約篇幅,其中與正常安裝步驟相同的部分從略。
1.建立Informix用戶和組,在Informix用戶下建立兩個目錄,如ids1、ids2。如果是在原系統基礎上新增加一個IDS,則可以在\$INFORMIXDIR下新建另一個目錄。
2.在Informix用戶下編輯兩個設置環境變量的腳本,如env1、env2。內容如下:
\$vi env1
INFORMIXDIR=/u/Informix/ids1
INFORMIXSERVER=online1
ONCONFIG=onconfig.ids1
PATH=/bin:/usr/bin:.:\$INFORMIXDIR/bin
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH
\$vi env2
INFORMIXDIR=/u/Informix/ids2
INFORMIXSERVER=online2
ONCONFIG=onconfig.ids2
PATH=/bin:/usr/bin/:.:\$INFORMIXDIR/bin
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH
在Informix安裝過程和日常應用中可以通過執行命令“\$. V1”或“\$. V2”來方便地調整環境變量。
3.以root用戶注冊,執行“\$. V1”,進入“/u/Informix/ids1”目錄,安裝所需Informix產品;執行“\$. V2”,進入“/u/Informix/ids2”目錄,安裝所需的Informix產品。
4.以root用戶注冊,根據“\$INFORMIXDIR/release/”下的文件調整Unix核心參數。
5.編輯“/etc/services”文件,增加如下兩行:
on_ser1 8000/tcp
on_ser2 8001/tcp
6.為Informix準備數據庫空間。
7.以Informix用戶注冊,編輯“/u/Informix/ids1/etc/sqlhosts”,內容如下:
online1 onipcshm host sqlexec
tcp1 ontlitcp host on_ser1
編輯“/u/Informix/ids2/etc/sqlhosts”,內容如下:
online2 onipcshm host sqlexec
tcp2 ontlitcp host on_ser2
8.以Informix用戶注冊,執行“\$. V1”,進行online1的初始化;執行“\$. V2”,進行online2的初始化。其中需要做不同設置的參數如表1所示。
其中ROOTPATH最好分布在不同的物理磁盤上,有利于提高運行效率,當然也可以在同一數據庫空間上,但需要設置ROOTOFFSET加以區分。PHYSDBS和DBSPACETEMP可在online初始化后再進行調整和移動。其余未涉及的參數可以根據實際業務需求進行設置。
需要指出的是,當多個IDS同時運行時,對系統資源的要求較高,尤其是內存的容量。所以當硬件配置較低時,應當先設置較小的buffer值,待初始化成功后,再根據實際情況逐步加大。
表1
參數 參數值
ids1 ids2
ROOTNAME root1 root2
ROOTPATH /dbs1 /dbs2
ROOTOFFSET 0 0
PHYSDBS root1 root2
MSGPATH /u/Informix/ids1/online.log /u/Informix/ids2/online.log
ALARMPROGRAM /u/Informix/ids1/etc/log_full.sh /u/Informix/ids2/etc/log_full.sh
SYSALARMPROGRAM /u/Informix/ids1/etc/evidence.sh /u/Informix/ids2/etc/evidence.sh
SERVERNUM 0 1
DBSERVERNAME online1 online2
DBSERVERALIASES tcp1 tcp2
DBSPACETEMP root1 root2