一.基本安裝
1. 安裝
安裝Informix時會因操作系統和Informix版本不同安裝稍有差別。由於穩定性的原因,建議Informix安裝在Suse Linux操作系統上,由於兼容性Suse8.0上只能安裝Informix920,Suse9.0上只能安裝Informix940,即在安裝Informix IDS時不一樣,Informix920是運行文件IDS920UC1.rpm,Informix940是運行文件IDS940UC2.cpi,其它安裝過程均是一樣的。原始安裝檔案路徑為://10.161.8.90/Software/Database/Informix,以下將以在Suse Linux操作系統上安裝Informix為例來進行說明Informix的安裝過程。
<1> 准備工作﹕Linux OS 安裝好
Linux分區大致為(共 120G ):
/: 10G #根分區
/tmp: 2G #
/u: 20G #安裝Informix及tiptop軟件
/dbspace: 45G #存儲數據
/exp: 剩下空間 #作備份使用
Step 1.建立Informix group
# groupadd Informix
Step 2.建立Informix user id
# useradd –g Informix –d /u/inf7.3 Informix
Step 3.改Informix password(可選﹐為保証系統安全性建議更改)
# passwd Informix
# new passwd :
# reinput
Step 4.設置Informix 環境參數
# INFORMIXDIR=/u/inf7.3
# PATH=$INFORMIXDIR/bin:$PATH
# export INFORMIXDIR PATH
Step 5.將cdrom上的Informix目錄中的*.tar.Z文件拷貝到/u/inf7.3目錄中。
# mount /dev/cdrom /mnt/cdrom
# cp /mnt/cdrom/Informix/*.tar.Z /u/inf7.3
# unmount /mnt/cdrom
Step 6.進入INFORMIXDIR
# cd /u/inf7.3
<2> 安裝Informix
Step 1 .解壓縮sql.tar.Z,(uncompress sql.tar.Z, tar xvf sql.tar)
產生installsql文件
安裝 # ./installsql
輸入 serial number and key 即可
Step 2: 解壓縮debug.tar.Z(uncompress debug.tar.Z, tar xvf debug.tar)
產生 install4db文件
安裝 # ./install4db
輸入 serial number and key 即可
Step 3: 解壓縮redevel.tar.Z(uncompress rdevel.tar.Z, tar xvf rdevel.tar)
產生install4gp 文件
安裝 # ./install4gp
輸入 serial number and key 即可
Step 4:安裝 ids
# cp /mnt/cdrom/Informix/IDS.RPM /u/inf7.3/ids.rpm
# rpm -iv ids.rpm
rpm -ivh --prefix /u/inf7.3 IDS920UC1.rpm
# rpm -e ids-7.30.UC7-1
# rpm -iv --prefix $INFORMIXDIR ids.rpm
產生installserver 文件
安裝 # ./installserver
輸入 serial number and key 即可
Step 5: 安裝中文支持(chinese.tar.Z)(uncompresschinese.tar.Z,tar xvf chinese.tar)
產生 installzh_tw* 文件
安裝 # ./installzhtw
選擇 1
輸入serial number and key 即可
<3> 配置Informix
Step 1: 配置/u/inf7.3/.bash_profile 文件 加入以下內容
INFORMIXDIR=/u/inf7.3;export INFORMIXDIR
PATH=$INFORMIXDIR/bin:$PATH;export PATH
DBDATE=Y4MD0;export DBDATE
DBCENTURY=C;export DBCENTURY
DBDELIMITER=^A;export DBDELIMITER
INFORMIXSERVER=on_tcp51;export INFORMIXSERVER
ONCONFIG=onconfig.top;export ONCONFIG
DB_LOCALE=zh_tw.big5;export DB_LOCALE
CLIENT_LOCALE=zh_tw.big5;export CLIENT_LOCALE
SERVER_LOCALE=zh_tw.big5;export SERVER_LOCALE
Step 2: 配置/etc/services 加入以下內容
on_tcp51_srv 9051/tcp
Step 3: 配置/etc/hosts 加入以下內容
ip address hostname
Step 4: 配置/u/inf7.3/etc/sqlhosts 文件,加入以下內容;
cdr51 group - - i=51
on_tcp51 onsoctcp bm1uxzby(hostname) on_tcp51_srv g=cdr51
on_shm51 onipcshm bm1uxzby(hostname) on_shm51_srv g=cdr51
Step 5: 以Informix login
$ onmonitor----à Parameters-----à Initialize
配置Informix paramenters.-----------initializes----Y---enter
也可以直接vi /u/inf7.3/etc/onconfig.top 然後 oninit –iy
注意﹕首先要 touch 一個file 用作rootdbs
例如:
mkdir dbs
cd dbs
touch dbs1
chown Informix dbs1
chmod 660 dbs1
chgrp Informix dbs1
cp /u/inf7.3/etc/onconfig.std /u/inf7.3/onconfig.top
修改/u/inf7.3/etc/onconfig.top
ROOTNAME rootdbs
ROOTPATH /dbs/dbs1
ROOTSIZE 1000000(Kbytes)
DBSERVERNAME on_tcp51
如果要加入dbspace
要先建立文件如建立dbs1 一樣.
然後$ onmonitor---àdbspaces---àcreate---à輸入dbspace name and offset size(mirror temp all N) 即可.
在安裝過程中需注意的事項如下﹕
<1> 必須設定好INFORMIXDIR的環境參數。
<2> 由於INFORMIX產品都是以各個包的形式而存在的。安裝一個產品後請立即執行相對應的install script﹐再安裝另一個產品
<3> 在安裝時請以root用戶權限安裝﹐並且每項產品都必須安裝於Informix的HOME目錄。
<4> 安裝時請先從TOOL產品開始安裝。最後安裝引擎Engine
<5> Licence for sql ,debug,redevel,Chinese support
ACN#A313826 KEY: YNLUKN
LICENCE FOR IDS:
AAB#C540893 KEY:CETPJF
附:
2. 目錄結構
Informix的所有目錄都會按照用戶設定安裝在用戶Informix的HOME目錄下。如/u/inf7.3。其中各個目錄對應的內容如下表所示﹕
目錄 |
目錄介紹 |
install4gl(4GL/C) |
各項產品的install shell script file |
install4gp(4GL/RDS) |
|
installid(Interactive Debug) |
|
installesql(ESQL/c) |
|
installsql(SQL) |
|
installse(Standard Engine) |
|
installonline(Online) |
|
/bin |
存放所有的INFORMIX Utitly execute Program |
/demo |
存放各類產品demo sample program |
/forms |
存放的所有INFORMIX Utility執行時所需畫面 |
/incl |
存放4GL/c,4GL/RDS,Esql/c complie所需頭文件 |
/lib |
存放各產品complie所須的libraries |
/msg |
存放各產品error message |
/releasee |
各產品新功能簡介﹑產品安裝前注意事項(OS Patchs)﹑產品已經fixed bug﹑產品已知的bug |
3. raw device/cooked device
raw deviec指原始設備(裸設備),也即不經過操作系統進行管理﹐而是數據庫本身自己管理的設備。由于不經過操作進行數據庫可以直接讀取該設備上的數據﹐因而其讀寫速度相對較快。另由由于這類設備不用操作系統進行管理。因而操作系統可能不識別該設備﹐對于Linux系統而言該設備是不可見的。即不可以通過Linux系統來查看該設備的相關信息。在HP-UX下可以通過特殊的指令來讀取該設備的相關信息。
cooked device指一個UNIX(或Linux)文件。Informix通過該文件來進行數據的存放和讀取。因而在讀取過程中要經過OS對數據進行讀取和存放。因而與raw device相比較。其讀寫速度較慢。
4. 創建新用戶
在Informix中對用戶的管理是依賴于操作系統的。首先只有能登錄系統的用戶才可對數據庫進行操作。因此在增加用戶時就是在系統中加入該用戶并在數據庫中對其給與一定的權限。
5. DB/Table/trigger/stored Procedure/View/Synonym/Replication
DB﹕DataBase的縮寫。數據庫。
Table:數據庫中的表﹐也即是由系統或用戶創建的存放數據的信息的載體﹐一般情況下由系統自動生成的表稱為系統表﹐由用戶創建的表稱之為用戶表。系統表存放與系統有關的信息﹐如該庫中表的信息﹐各個表的列名信息﹐以及觸發器﹐存儲過程等等。用戶表是用戶根據實際需要設定的﹐用于存放用戶需要存儲于數據庫的數據的載體。也是用戶最為關心部分。因為這里真正存放了用戶的數據。且用戶對數據庫的操作也基本上是基于表的。對數據庫的查詢﹑更新﹑刪除等操作也是體現在對表的查詢﹑更新和刪除的。
Trigger:觸發器﹐由SQL語句編寫的﹐并在特定條件下由數據庫自動執行的SQL操作語句。如可設定在insert或delete操作時自動執行相關SQL詞句。即為觸發器。即在執行insert或delete時觸發該觸發器﹐一般情況下Trigger由程序開發人員根據程序的需要來設定的。用來保証數據的完整性或在特定的條件下觸發相應的事件。在數據庫一級來完成所開發程序的特定需求。
Stored Procedure:存儲過程﹐是用SQL語句編寫的﹐存儲于數據庫中﹐并能完成相應的一系列操作的功能。大多數情況下由程序開發人員編寫。將其設定為存儲過程以后。可以直接在程序中調用。以得到代碼重用的功能。
View:視圖﹐視圖類似于表但又不同于表。視圖不存儲真正的為數據。其只存儲從表或其它視圖中要導出數據的導出方式。它在是一個或多個表或視圖的基礎上按照需要導出的特定的字段以利于用戶使用的一個虛擬的表。在操作上與表類似。只是在更新時會有所不同。因為視圖只是存儲了從真正的表或視圖中導出數據的規則﹐因而對其更新必須將其反應與其相對應的表中。因而出現以下三個情況的一種﹐則該視圖都是不能更新的。這三種情況是﹕1﹑如果視圖是由兩個或兩個以上的基表導出的。則是不允許更新的﹔2﹑如果視圖中的字段來自聚集函數則不允許更新﹔3﹑如果視圖中的字段來自虛擬字段﹐則也不允許更新﹐同時﹐此情況下INSERT操作也是被禁止的。
Synonym:同義詞
Replication:抄寫﹐數據同步﹐又分為單向同步﹑雙向同步﹐顧名思義﹐單向同步即保証A主機信息與B主機同步。但不用保証B主機與A主機數據同步。此外又可分為條件同步﹑實時同步等。
二.基本指令
1. onstat
該命令主要用于查看其系統當前的狀態和配置
其中常用的開關參數如下﹕
-m 顯示系統日志信息。該命令其實是打開文件
-u 查看當前用戶。即顯示當前系統中所有訪問數據庫的用戶
-g ses
-g iof 查看系統中當前表的讀取率
-k 讀取鎖情況
-d 查看數據庫空間
-c 查看配置文件﹐也即是打開
-l 讀邏輯日志
-v 開啟數據庫
以上列出了onstat指令的部分參數及說明。如果要查看onstat的完整說明。可輸入onstat –命令來查看聯機說明。
2. onmode
-z
-ky 關機命令﹐即關閉數據庫服務
-s 進入單用戶模式
-m 進入多用戶模式
-c 執行檢查點
-l 強制下一個邏輯登錄。也即啟用下一個邏輯日志文件來寫入日志。
以上列出了onmode指令的部分參數及說明。如果要查看onmode的完整說明。可輸入onmode–命令來查看聯機說明。
NOTE﹕onmode命令必須以root或Informix賬號權限才可進行操作。
3. unload/load
該操作用于對數據庫進行邏輯備份/恢復操作。
4. dbexport/dbimport
dbexport可將整個數據庫卸載到ASCII文件中﹐這些ASCII文件和數據庫模式可以存儲在磁帶或磁盤上。出錯各警告信息被寫入一個稱為dbexport.out的文件中。Dbexport會為其所卸載的數據庫創建一個目錄﹐該目錄下含有﹕庫中每張表所形成的ASCII文件﹐含有數據庫定義語句(DDL)及其它一些說明信息的SQL模式文件。這些文件可被dbimport用來重新創建數據庫。和其它命令一樣。該命令也含用多個參數選項﹐其常用的選項如下﹕
-c 該選項使程序發生錯誤時仍能繼續運行﹐直到發生了致命性的錯誤﹐如不能打開指定的磁帶驅動器﹔不能寫入磁帶或磁盤﹔無效的命令參數﹔不能打開數據庫或沒有系統權限。
-d 該選項輸出blob數據的描述信息﹐但不輸出blob數據
-q 該選項不對SQL語句﹑出錯登記處及警告信息作出響應
-o director 該選項確定了存儲ASCII文件的目錄路徑﹐執行該命令前這一目錄必須存在。執行該命令后將會在此目錄下創建一個名為database.exp的子目錄以裝載數據文件﹐缺省目錄為當前工作目錄。
-t device 該選項指出了輸出的磁帶驅動器名。
-b blocksize 該選項以千字節為單位確定了磁帶塊的大小。
-s tapesize 該選項以千字節為單位確定了向每個磁帶寫入的字節數目。
-f pathname 該選項用完整的路徑名指出了SQL模式的命令文件存儲在磁盤上的位置。
Database 該選項指出了要被卸載的數據庫名
-ss 該選項為卸載的數據庫的每張表生成服務器所確認的模式信息(server-specific)﹐這些信息包括如下內容﹕數據庫的日志模式﹔表最初確定的extent大小﹔表的封鎖模式﹔表所處的dbspace。
-v 該選項用于顯示產品的版本信息。
Dbimport用于創建數據庫并將ASCII碼文件或模式文件裝載到該數據庫中。Dbimport的功能是利用dbexport生成的ASCII碼文件和模式文件重新構建數據庫﹐其中的ASCII碼文件和模式文件可以來自磁帶或磁盤。該命令也含有多個參數選項
-c 與dbexport對應﹐該選項使程序在發生錯誤時仍e能繼續運行﹐直到發生了致命性的錯誤。
-q 與dbexport對應﹐該選項不對SQL語句作出響應。
-i directory 該選項確定了數據文件存儲的目錄路徑。
-t device 該選項指明了輸入文件來自哪個磁帶驅動器。
-b blocksize 該選項以千字節為單位確定了磁帶塊的大小。
-s tapsize 該選項以千字節為位確定了從每個磁帶讀取的字節數
-f pathname 該選項確定了SQL命令文件的輸入路徑。
-d dbspace 該選項指明了所創建的數據庫所處在dbspace.
-t [buffered] 該選項指明要生成一個帶日志的數據庫﹐buffered表明日志模式為緩沖日志﹐缺省情況下為不帶緩沖的日志。
-ansi 該選項使新創建的數據庫為ANSI模式。
database 指明要創建的數據庫名。
以上列出了dbexport/dbimport的功能及用法。但在使用dbexport/dbimport的過程中還應注意以下几點﹕
(1) 使用dbimport命令的用戶必須在所創建的庫上有DBA權限。
(2) 在dbimport執行過程中將隱式地鎖住表﹐并在數據庫裝載完畢后為表解除封鎖。
(3) 如果使用磁帶裝載數據庫并且使用了-b和-s選項﹐則一定要保証使用與卸載該數據庫時同樣尺寸的磁帶塊和磁帶。如果在卸載數據庫時還使用了-f選項﹐就必須在裝載數據庫時使用了-f 選項指明同樣的命令文件。
(4) 裝載數據庫時會產生一個名為dmimport.out的文件﹐該文件含有運行dbimport命令時所產生的出錯信息和警告信息。
(5) 如果使用-I選項指明輸入文件的路徑。則該輸入路徑即可以是絕對路徑也可以是相對路徑。
(6) 以裝載的數據庫開始并以sql作為擴展名的命令文件將被裝入數據庫。若使用了-t選項﹐則命令文件被確定存儲在磁帶上﹔若使用了-t及-f選項﹐就必須指明用作命令文件的路徑及其文件名。典型情況是路徑和文件名與執行dbexport時確定的名稱相同﹔否則﹐該命令文件將在.exp目錄下或當前工作目錄下或-I選項所確定的目錄下查找。
(7) 所創建的Online數據庫將被創建在用-d選項確定的dbspace上。若沒有使用這一選項﹐則數據庫被創建在根dbspace上。
(8) 當使用磁帶選項(-t)時不要在后台運行命令dbimport
(9) 當按下interrupt鍵取消程序運行時﹐系統會向你提出詢問﹐以確定是否真正終止。
(10)缺省情況下﹐被裝載的數據庫并不帶日志。若希望生成一個帶日志的數據庫﹐請選用-f選項。
(11)如果使用了磁帶驅動器裝載數據庫﹐必須指明磁帶塊大小和每個磁帶上含有的數據量。磁帶塊大小和每個磁帶上含有的數據量都是以千字節(KB)為單位﹐每個上含有的數據量最大值為2097151KB.
5. 開/關機
開機﹕oninit –v
關機﹕onmode –ky
其中參數k表示關機。參數y表示直接執行而不用確認。
6. 查空間
使用系統自帶命令
onstat –d
或使用我們自已開發的腳本進行查看
在sysmonitor下執行腳本dbaccess master space﹐此腳本會將系統空間的信息存儲于同目錄下space.sql文件中。只需再使用less space.sql即可查看空間。
7. 查LOG
onstat –m 讀取系統中數據庫的日志文件。該日志文件記錄了與數據庫有關的操作﹐如數據庫參安數的更改等信息。
onstat –l 讀取邏輯日志文件。該日志信息記錄了數據庫中的每條記錄的更新信息。如記錄刪除和更新記錄等。也是數據庫進行數據恢復的依據。
8. 查備份
執行onmonitor--->status--->Achive即可查看相應的備份信息。
9. 查負載
使用uptime命令即可列出當前系統的負載情況。
10. 奮份/恢復
ontape 數據備份
-c 邏輯登錄的連續備份
11. ODBC
ODBC:Open DataBase Connect指開放的數據庫連接﹐主要是在WINDOWS平台為訪問數據庫而啟用的一種開發的數據庫連接方式。在WINDOWS平台下的用戶或程序開發人員不用管后台的數據庫的種類及存儲方式。只需使用ODBC使所有操作統一。
三.注意事項
危險指令集合
oninit