|
Informix-Online 7.30/7.31的安裝及管理
|
作者: 出處:Unix愛好者家園unix-cd.com 更新時間: 2004年07月19日
|
自informix5.x以后,INFORMIX公司推出新一代數(shù)據(jù)庫引擎 ONLINE DYNAMIC SERVER動態(tài)服務,一般我們簡稱ONLINE7.X, ONLINE是一個關系數(shù)據(jù)管理(RDBMS), 它的任務是提供一個存 儲、檢索、修改和刪除數(shù)據(jù)的環(huán)境, 它的目標就是使具有多個 物理CPU 和大容量內(nèi)存的計算機創(chuàng)建高性能和高穩(wěn)定性的操作 環(huán)境,所以ONLINE7.X廣泛運用于銀行、保險、電信、郵政等對 于速度和安全性較高的部門。
INFORMIX-ONLINE 7.3在SCO OpenServer 5.0.X 系統(tǒng)上的 安裝和配置。
一.Informix7.30的安裝
1.建立infomix組和informix用戶
1) 以 root用戶登錄
2) 使用scoadmin系統(tǒng)管理程序里面的Account Manager建 立一個組名為"informix", 用戶名為"infomix"的用戶,其 "Home Directory"缺省為"/usr/informix",不必修改。
2. 產(chǎn)品的安裝
1) 以informix用戶登錄系統(tǒng),編輯.profile所需的環(huán)境變 量:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=服務器名(例如post)
LD_LIBRARY=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
TERMCAP=$INFORMIXDIR/etc/termcap
CLIENT_LOCALE=zh_cn.gb
DB_LOCALE=zh_cn.gb
SERVER_LOCALE=zh_cn.gb
PATH=$INFORMIX/bin:$INFORMIX/lib:$PATH
export INFORMIXDIR INFORMIXSERVER LD_LIBRARY TERMCAP
export CLIENT_LOCALE DB_LOCALE SERVER_LOCALE PATH
2) 退出informix用戶重新登錄,使上述設置的環(huán)境變量生效。
3) 安裝INFORMIX-SQL、INFORMIX-4GL、INFORMIX-IDS7.3, 請嚴格按以上步驟安裝(否則ONLINE啟動不了,而且報錯也是莫名 其妙,"CAN'T FIND MESSAGE FILE AND DBLANG")。
4) 以root用戶登錄并插入SQL光盤
# mount -o lower /dev/cd0 /mnt
# cd /usr/informix
# tar xvf /mnt/sql.tar
# ./installsql
輸入許可證提供的序列號,如:INF#Xxxxxxx
輸入許可證提供的KEY:如AAABBB
注意必須是大寫字母
# unmount /mnt
插入4GL光盤
# mount -o lower /dev/cd0 /mnt
# tar xvf /mnt/4gl.tar
# ./install4gl
輸入許可證提供的序列號,如:INF#Xxxxxxx
輸入許可證提供的KEY:如AAABBB
注意必須是大寫字母
# unmount /mnt
插入IDS7.30光盤
# mount -o lower /dev/cd0 /mnt
# cpio -icvdumBI # ./installserver
輸入許可證提供的序列號,如:INF#Xxxxxxx
輸入許可證提供的KEY:如AAABBB
注意必須是大寫字母
# unmount /mnt
至此安裝完畢。
3.準備Informix初始化環(huán)境。
1) 編輯/etc/hosts文件,登記網(wǎng)絡各機器的名字及網(wǎng)絡地址
例如:
IP地址 主機名
142.73.111.1(本機) informix_server1
142.73.111.49 informix_client1
2) 修改 /etc/services,增加informix服務端口名
例如:
online_service 8000/tcp #informix
其中,online_service是informix服務名,8000為端口號,tcp 為傳輸協(xié)議,該端口號必須唯一,如果和其它端口號有沖突, 可以修改。
3) 編輯$INFORMIXDIR/etc/sqlhosts文件
post onipcshm informix_server1 sqlexec
tcp ontlitcp informix_server1 online_service
第一行post為INFORMIX-ONLINE的server名,onlipcshm是共享 內(nèi)存方式連接(只限本地), informix_server1是本地主機 名(hostname),sqlexec 是服務名。
第二行tcp是增加的一個數(shù)據(jù)庫服務器別名, ontlitcp是使用 傳輸層TCP/IP(本地或遠程)訪問數(shù)據(jù)庫,online_service是 第2)步/etc/services中的online_service。
4.準備數(shù)據(jù)庫空間
online允許使用兩種不同的磁盤空間類型:原始的(生設備) 磁盤空間和處理過的(熟設備)文件系統(tǒng),使用處理過的文件 做dbspace,其性能不如原始空間。 使用處理過的文件不能利 用DMA功能(既直接內(nèi)存訪問), 將數(shù)據(jù)從共享內(nèi)存直接傳遞 到磁盤,所以,為了充分發(fā)揮ONLINE的能力,建議使用原始空間。
1)使用原始磁盤空間做dbspaces
原始磁盤空間的分配必須在安裝SCO OpenServer 5操作系統(tǒng) 時完成。具體做法是:安裝操作系統(tǒng)劃分磁盤空間時,首先 計算出UNIX系統(tǒng)所需要的磁盤空間,然后剩余的空間全部用 作INFORMIX數(shù)據(jù)庫原始空間,將這部分作一個或多個磁盤分 區(qū),如果磁盤空間有多個磁盤,建議做多個,可以單獨分配 空間給物理日志空間、 邏輯日志空間及tmp空間以提高系統(tǒng) 的性能。
具體做法如: 分區(qū)名為dbs(在安裝系統(tǒng)時分的磁盤分區(qū)),將該分區(qū)設置 為裸設備(NON FS),在/dev可以找到dbs的設備名/dev/dbs, 將dbs的屬主和屬組改為“infomix”,權限改為"660", 該分 區(qū)即為online要求的原始空間, 有關Online原始磁盤空間的 信息可用命令# divvy /dev/dbs查看,同理, 用此方法可以 建立dbs1、dbs2等原始磁盤空間。
2)使用處理過的文件做dbspaces
由于在安裝系統(tǒng)時沒有分多個磁盤分區(qū),可以用現(xiàn)有的磁盤空 間的文件系統(tǒng).
下面在/dev/root文件系統(tǒng)下創(chuàng)建3個dbspaces,分別為workdbs (業(yè)務數(shù)據(jù)庫)、logdbs(邏輯日志、物理日志)、tmpdbs(tmp數(shù) 據(jù)庫)
# cd
# >workdbs logdbs tmpdbs #建立文件
# chown informix:informix workdbs #改變屬主和屬組
# chown informix:informix logdbs
# chown informix:informix tmpdbs
# chmod 660 workdbs #將權限改為660
# chmod 660 logdbs
# chmod 660 tmpdbs
5.修改SCOUNIX5.05 內(nèi)核參數(shù)
對于SCO OpenServer 5平臺,INFORMIX-ONLINE7.30需要調(diào)整下列 核心參數(shù)值:(參照/usr/informix/release/en_us/0333下的IDS_7.3文件)
SHMMAX:409600000
SHMALL:512
SHMMNI:8192
SHMSEG:6
SEMMNI:8192
SEMMNS:8192
SEMMAP:8292
SEMMNU:100
SEMMSL:25
具體做法:從root注冊登錄,運行scoadmin在菜單中逐層選擇 Hardware/Kernel Manager,然后選擇Tune Parameters,根據(jù) 以上值設置核心參數(shù),也可以直接修改/etc/conf/cf.d/mtune 這個文件,注意修改前做一個拷貝,設置完重連核心,退出并重 新啟動UNIX。 二.初始化informix
方法一:配置ONCONFIG文件(onconfig)
$ cd /usr/informix/etc(配置文件所在目錄)
$ cp onconfig.std onconfig(從標準配置文件中拷貝一份, 作為配置自己系統(tǒng)的基礎)。
用vi 編輯器修改onconfig文件中的值,由于文件中的參數(shù)多, 所以主要把重要的參數(shù)進行說明:
ROOTNAME=rootdbs #這里取缺省rootdbs
ROOTPATH=/dev/dbs # rootdbs的第一個chunk所在原始設備全路徑名,dbs為我們在 前面配置的原始dbspaces。
ROOTSIZE=1000000 (K) # root dbspace 第一個Chunk的大小,這些空間初始創(chuàng)建邏輯日志、物理日志、 和sysmaster數(shù)據(jù)庫,當初始完畢后, 就應盡快將日志和臨時 表從rootdbs中移到其它原始的dbspaces或處理過的文件中。
DBSERVER NAME(server name)=post # Online 實例必須具有的唯一名, 這個名字也是環(huán)境變量 $INFORMIXSERVER的值,還應當作為$INFORMIXDIR/etc/sqlhosts 中的第一個字段。
DBSERVERALIASES(server aliases)=tcp #Online實例的別名,在網(wǎng)上是要唯一的,它是網(wǎng)絡訪問數(shù)據(jù)庫 必須的,在前面配置$INFORMIXDIR/etc/sqlhosts中要用到它。
RESIDENT(Forced Residency)=1 #該參數(shù)決定Online實例共享內(nèi)存的常駐區(qū)是否允許從操作系統(tǒng) 的共享內(nèi)存中交換出來,如果服務器的物理內(nèi)存足夠大(512MB 以上),建議設置為1(Y),否則為0(N)。
LOCKS(Max of Locks)=100000 #該參數(shù)對共享內(nèi)存的大小有影響,通常對于較忙的實例我們將它 設置為100000。
BUFFERS(Max of buffers)=100000 #這些緩沖區(qū)是共享內(nèi)存常駐區(qū)唯一的最大消耗者,對實例共享內(nèi) 存的影響最大。
MULTIPROCESSOR=1 #該參數(shù)打開或關閉多處理器封鎖機制,如果系統(tǒng)是三個CPU以上, 將它設為1(Y),如果是單CPU或雙CUP建議設為0(N)。
NETTYPE=ipcshm,1,80,CUP #共享內(nèi)存數(shù)據(jù)庫服務器通訊方式
NETTYPE=tlitcp,1,80,NET #tcp數(shù)據(jù)庫服務器通訊方式
配置ONLINE的參數(shù)很多,以上是只是其中最重要的一部分。
方法二:圖形界面
以informix用戶登錄,運行onmonitor命令,依次選擇Parameters, Initialize進入磁盤初始化菜單,配置的參數(shù)和方法一相同,建議第 一次配置ONLINE的用戶用此方法。
配置完ONLINE的參數(shù),現(xiàn)在可以啟動并初始化磁盤空間,以informix 用戶登錄,執(zhí)行 $ oninit -iy 注意:執(zhí)行此命令后,所有在Online磁 盤空間上的數(shù)據(jù)將被破壞, 也可用圖形界面onmonitor命令初始化, 總之,這兩種命令只能在第一次初始化ONLINE磁盤空間使用,提醒各 位讀者謹慎使用,以后在啟動數(shù)據(jù)庫只需用 oninit 命令即可, 執(zhí)行 $ onstat - 命令可以簡單查看online是否正常啟動,如果正常則顯示 如下類似的提示信息:
Informix Dynamic Server Version 7.30.UC2 -- On-Line -- Up 2 days 21:14:58 -- 163840 Kbytes。
三.Informix-online7.30的日常管理及維護
1. 自動啟動關閉Informix-online數(shù)據(jù)庫
啟動ONLINE的命令是:oninit
但為了便于系統(tǒng)管理員的管理,將啟動命令建立在 /etc/rc2.d目錄下,名字為S90informix,
就象DOS中的批處理文件一樣,當啟動SCO OpenServer 5 操作系統(tǒng)時,online隨之啟動。
在/etc/rc2.d/創(chuàng)建文件S90informix,內(nèi)容如下:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER
$INFORMIXDIR/bin/oninit
修改文件屬性使它用執(zhí)行權利: # chmod +x /etc/rc2.d/S90informix
自動關閉INFORMIX-ONLINE
關閉ONLINE的命令為: onmode –ky
將關閉命令建立在/etc/rc0.d目錄下,編輯文件名為 K01informix,內(nèi)容如下:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER
$INFORMIXDIR/bin/onmode -ky
修改文件屬性使它用執(zhí)行權利: #chmod +x /etc/rc2.d/K01informix
2. INFORMIX ONLINE 的常見工作模式
Off-line: 實例沒有運行,沒有分配或初始化共享內(nèi)存。
Quiescent: 實例已經(jīng)完全啟動,但不允許用戶訪問數(shù)據(jù) 庫,有些管理任務,像增加刪除dbspaces、邏輯日志, 必須在實例處于Quiescent狀態(tài)時才能完成。
On-line: 實例完全啟動,并且對所有有權訪問它的用戶 都是可用的。
Shutdown: 當實例從On-line狀態(tài)到Quiescent時的一種過 渡狀態(tài),所有用戶線索仍然可以繼續(xù)完成他們的工作直到 正常結(jié)束,但這時所有新的數(shù)據(jù)庫連接都會被拒絕。
下面介紹各個模式相互轉(zhuǎn)換的命令:
oninit(將一個配置好的實例從Off-line狀態(tài)一直變?yōu)?br> On-line狀態(tài))
oninit -s(將一個配置好的實例從Off-line狀態(tài)一直變 為Quiescent狀態(tài),現(xiàn)有的用戶線索可以繼續(xù)直到正常結(jié) 束,但所有新的數(shù)據(jù)庫請求連接將被拒絕)
onmode –sy(將實例從On-line狀態(tài)經(jīng)過shutdown)
onmode –uy(立即終止現(xiàn)有的實例,使之成為Quiescent, 所有的用戶線索和數(shù)據(jù)庫請求都將被中斷)
onmode –ky(實例從on-line或Quiescent變?yōu)閛ff-line狀態(tài))
介紹完ONLINE的幾種常用工作模式后,下面就可以為online增 加工作區(qū)、邏輯日志、物理日志、臨時文件數(shù)據(jù)庫空間了。 3.管理Informix Online磁盤空間
Online初始化時,自動建立了一個名為rootdbs的dbspace。 該rootdbs存儲Online的管理信息,包括物理日志、邏輯日 志等。當你建立一個數(shù)據(jù)庫時,如果不指定dbspace,作為 缺省,該庫建立在rootdbs中。所以,如果你想將庫建立在 某個dbspace中,則必須指定dbspace,例如: dbimport 數(shù)據(jù)庫名 -d dbspace名
注意:在建dbspace時,要指定原始磁盤設備名路徑,所需 磁盤空間大小, 以及該塊磁盤空間在原始磁盤設備中的偏 移量,偏移量非常關鍵,要小心設置,否則容易造成chunk 塊之間空間上的重疊與覆蓋。
1) 用onspaces 命令建立dbspace
onspaces -c -d dbspaces名 -p 磁盤設備 -o 偏移量 -s 空間大小
其中: -c 表示建立新的dbspace
-d dbspace 名字
-p 原始磁盤設備全路徑名,如/dev/dbs
-o 偏移量,以K字節(jié)為單位
-s dbspace中第一個chunk的尺寸,以K字節(jié)為單位
例如: 假設原始磁盤設備/dev/dbs有1000M空間,其中rootdbs占100M, tmpdbs 占100M,workdbs占800M。
$ onspaces -c -d tmpdbs -p /dev/dbs -o 100000 -s 100000
$ onspaces -c -d workdbs -p /dev/dbs -o 200000 -s 8000000
2)用onspaces 命令建立物理日志、邏輯日志空間
物理日志保存數(shù)據(jù)被修改前的映象,物理日志的位置和大小可以改變, 使用 onparams 命令可以改變?nèi)罩镜奈恢煤痛笮。?nbsp;必須在ONLINDE的 Quiescent(靜態(tài)方式)后執(zhí)行。
$ onparams -p -s 大小 -d dbspace名
大小是以K為單位,建議物理日志大小為100M。
邏輯日志是保存數(shù)據(jù)在修改后的映象,ONLINE初始化時,邏輯日志個數(shù) 最少為3個,所以在初始化前可以給邏輯日志個數(shù)為3,大小可以少一點 例如1000K,等初始化完后,在添加新的邏輯日志,最后再將前面的3個 邏輯日志刪除,總邏輯日志最好在500M左右。具體做法如下:
以informix用戶登錄,
$ onmode -uy (由Online切換到Quiescent狀態(tài))
$ onparams -a -d logdbs -s 100000
其中l(wèi)ogdbs為dbspaces 名 ,-s 100000 表示增加了100M空間。
再連續(xù)執(zhí)行4遍上述命令,這樣新的邏輯日志空間總共為500M,可以用 onstat -l 查看邏輯日志情況,接下來就要刪除前面3個舊邏輯日志, 刪除前做一個0級備份
# ontape -s -L 0
$ onparams -d -l logid
logid 為邏輯日志id號,可以用onstat -l 查看,然后就可根據(jù)id號刪 除3個舊邏輯日志。
四.Informix Online數(shù)據(jù)庫備份及恢復。
1. 使用ontape 工具備份
1.)ontape 有三個備份級別
0級 實例中所用的頁都被寫到磁帶上
1級 備份從0級備份以后發(fā)生變化的數(shù)據(jù)
2級 備份從1級備份以后發(fā)生變化的數(shù)據(jù)
$ ontape -s -L 0
執(zhí)行該命令做0級備份,建議: 如果允許可以每天在業(yè)務系統(tǒng)結(jié)束工作 后做一次0級備份,做完備份后管理好備份磁帶,做好標記。
2.) 邏輯日志的備份
僅僅做0級備份還不夠,還要做邏輯日志備份才能完整的恢復數(shù)據(jù), 建議每天業(yè)務開始時,執(zhí)行連續(xù)備份邏輯日志(ontape -c),業(yè)務結(jié) 束前停止ontape -c ,換磁帶,做一次0級備份(ontape -s -L 0),換 磁帶再執(zhí)行ontape -c
3)系統(tǒng)恢復
當系統(tǒng)出現(xiàn)錯誤,或你想把系統(tǒng)恢復到某一時間點的數(shù)據(jù)時,必須利 用0(1,2)備份帶和邏輯日志備份來恢復系統(tǒng),命令如下:
# ontape -r
2. 使用dbexport 命令備份數(shù)據(jù)
盡管ontape是一個安全性很高的備份工具,但操作比較煩瑣,必須每天 要手動備份及換磁帶,所以編寫一個自動備份程序,這樣大大解放了系 統(tǒng)管理員的工作。
具體實現(xiàn)方法如下:
在/usr/backup目錄下用vi編寫backup.sh文件,將文件的權限改為"664", 內(nèi)容如下:
INFORMIXDIR=/usr/informix (設置online路徑)
PATH=$PATH:/usr/informix/bin
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER PATH
wk=`date +20%y%m%d` #設置變量wk代表當天日期例如 20010101
dir=/usr/backup/$wk #設置數(shù)據(jù)存放目錄
if test ! -d $dir #檢驗目錄是否存在
then
mkdir $dir
else
rm -r $dir/*
fi
#由于使用dbexport命令時,所有正在使用數(shù)據(jù)庫操作的用戶必須退出, 所以用fuser -k 命令先將所有用戶的進程殺掉,然后再重新啟動Online.
fuser -k 用戶注冊目錄(例如/u/motor)
sleep 10
onmode –uy #關閉online
sleep 10
onmode –m #啟動online
sleep 10
cd /usr/backup
dbexport 數(shù)據(jù)庫名1 -o $dir #將數(shù)據(jù)庫卸到當天目錄中
dbexport 數(shù)據(jù)庫名2 -o $dir
…
rm sjbf*
tar cvf sjbf.tar $dir #將目錄打包
compress -H sjbf.tar #壓縮打包文件
#為了保證數(shù)據(jù)的安全性,將數(shù)據(jù)傳送到另一臺主機
da=`date +%m%d` #創(chuàng)建傳送文件名
da1=`date +%H`
da=$da.$da1.Z
ftp -nv 142.73.111.10< user backup backup #10主機上建立用戶backup口令是backup
put sjbf.tar.Z $da
quit
!
rm -r $dir/*
cd /usr/backup
mv sjbf.tar.Z $dir #將壓縮文件移到目錄中
編輯backup.cron文件,內(nèi)容如下
30 1 * * 1-6 /usr/backup/backup.sh
在root用戶下執(zhí)行 crontab backup.cron ,就可以讓系統(tǒng)自動, 由于白天業(yè)務比較忙,所以將備份時間定在每星期一到六凌晨1:30, 具體crontab命令的用法請參考SCO OpenServer用戶手冊。
|
|
|
|