亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號(hào)

Informix數(shù)據(jù)庫(kù)的使用與優(yōu)化
2007-10-08   網(wǎng)絡(luò)

筆者參加了建設(shè)銀行江西省分行的全省數(shù)據(jù)集中工作,其中數(shù)據(jù)庫(kù)的使用與優(yōu)化是系統(tǒng)管理的重要工作。在系統(tǒng)上線運(yùn)行穩(wěn)定之后,將數(shù)據(jù)庫(kù)管理工作的經(jīng)驗(yàn)整理出來,爭(zhēng)取起到拋磚引玉的作用,為正在使用Informix的用戶提供一些幫助。

1.建立“Informix”組和用戶

建設(shè)銀行江西省分行數(shù)據(jù)集中系統(tǒng)采用的是IBM NUMA主機(jī),使用的是DYNIX4.3.1操作系統(tǒng),我們用“menu”命令(如果是SCO Unix,要用“scoadmin”命令;在HP-UX中要用“sam”命令;在IBM AIX中就用“smit”命令)建立一個(gè)名為“Informix”的組,該組號(hào)要大于100。

同樣,在DYNIX下用“menu”命令(在SCO Unix用“scoadmin”命令,對(duì)HP-UX用“sam”命令,對(duì)IBM AIX用“smit”命令)建立一個(gè)名為“Informix”的用戶,該用戶屬于“Informix”組,用戶號(hào)大于100,根目錄設(shè)為“/usr/Informix”或其他目錄,口令可設(shè)為“Informix”或其他。

2.安裝產(chǎn)品

以“root”注冊(cè),設(shè)置安裝所需要的環(huán)境變量:

InformixDIR=/usr/Informix

Export Informix DIR

PATH=$PATH:$InformixDIR/bin

Export PATH

再將當(dāng)前目錄改變到“usr/Informix”。

(1)先安裝SQL,將SQL磁帶或光盤插入磁帶機(jī)或光驅(qū)。

使用磁帶機(jī)安裝步驟:

1)#cpio-icvdumB-I磁帶機(jī)設(shè)備名或#tar xvf磁帶機(jī)設(shè)備名

2)執(zhí)行安裝命令:#./installsql輸入序列號(hào)及KEY。

使用光驅(qū)安裝步驟:

1)首先為光驅(qū)建立一個(gè)文件系統(tǒng)/dev/cdrom:

2)將光盤插入光驅(qū);

3)#mount/dev/cdrom(注意:光驅(qū)中一定要有光盤時(shí)才可執(zhí)行mount命令);

4)#cpio-icvdumB-I</dev/cdrom/*

或#tar xvf/dev/cdrom/*;

5)執(zhí)行安裝命令:#./installsql輸入序列號(hào)及KEY;

6)#umount/dev/cdrom;

7)取出光盤(注意:要先執(zhí)行umount命令才可取出光盤)。

(2)順序安裝ESQL/C、4GL、ONLINE。將ESQL/C磁帶或光盤插入磁帶機(jī)或光驅(qū),方法同(1),由于該行不使用4GL產(chǎn)品,因此未安裝4GL。

3.Informix數(shù)據(jù)庫(kù)參數(shù)配置及初始化

(1)操作系統(tǒng)上的準(zhǔn)備工作。首先要為ONLINE存儲(chǔ)數(shù)據(jù)分配磁盤空間,可以選擇UNIX文件或原始磁盤空間作為ONLINE數(shù)據(jù)存儲(chǔ)空間:

1)用UNIX文件作為ONLINE數(shù)據(jù)存儲(chǔ)空間。

用這種方式的優(yōu)點(diǎn)是方便、簡(jiǎn)單,但缺點(diǎn)是效率低、安全性不高。例如,在“/usr/Informix”目錄下命名一個(gè)文件“ONLINEdbs”,作為ONLINE的數(shù)據(jù)存儲(chǔ)空間,步驟如下。

以“root”注冊(cè):

#cd/usr/Informix

#cat/dev/null>ONLINEdbs

#chgrp Informix ONLINEdbs

#chown Informix ONLINEdbs

#chmod 664 ONLINEdbs

2)用原始磁盤空間作為ONLINE數(shù)據(jù)存儲(chǔ)空間。

用這種方式效率高、安全性好,但要注意在安裝操作系統(tǒng)時(shí),應(yīng)預(yù)留出這部分磁盤空間,并且不能格式化,還應(yīng)該知道磁盤空間的設(shè)備名及各空間大小。例如,在“/dev/rdsk/os2”為安裝SCO Unix時(shí)預(yù)留出的原始磁盤空間,進(jìn)行如下步驟。

以“root”注冊(cè):

#chgrp Informix/dev/rdsk/os2

#chown Informix/dev/rdsk/os2

#chmod664/dev/rdsk/os2

(2)設(shè)置環(huán)境變量。

在“/usr/Informix/.profile”文件及其他與Informix同組用戶的profile文件中設(shè)置下列環(huán)境變量:

InformixDIR=/usr/Informix

PATH=$PATH:$InformixDIR/bin

ONCONFIG=onconfig.srv (ONLINE配置參數(shù)文件,位于$InformixDIR/etc目錄下)

InformixSERVER=srv_bank(ONLINE的名字)

Export InformixDIR PATH ONCONFIG InformixSERVER

(3)設(shè)置ONCONFIG配置文件。

以“InfoITniX”注冊(cè):

$cd/usr/Informix/etc

$cp oncongig.std onconfig.srv

用Vi編輯器修改“onconfig.srv”文件中各參數(shù)為文件“onconfig.srv”中的值即可,或用onmonitor命令配置ONLINE的參數(shù)。

(4)設(shè)置“$InformixDlR/etc/sqlhosts”文件。

以“Informix”注冊(cè):

$cd/usr/Infonnix/etc

$vi seqhosts

編輯如下:

ONLINE Server name  網(wǎng)絡(luò)協(xié)議    主機(jī)名  Service名

Srv_bank    Onipcshm  srv    Sty_bank

“ONLINE Server name”必須同InformixSERVER環(huán)境變量值一致;“主機(jī)名”為ONLINE所在的服務(wù)器的主機(jī)名,見“/etc/hosts”文件。

(5)啟動(dòng)ONLINE并初始化磁盤空間。

$oninit-iy

注意:執(zhí)行這個(gè)命令時(shí),所有在ONLINE磁盤空間上的數(shù)據(jù)都將被破壞,該命令只能在第一次初始化ONLINE磁盤空間時(shí)使用。

4.Informix日常管理、監(jiān)控及維護(hù)

(1)Infomfix Server的不同狀態(tài)。Informix Server有六種狀態(tài):Off line、Recovery、 Quiescent、ONLINE、Shutdown、ReadOnly。

(2)常用命令。啟動(dòng)ONLINE命令為:oninit(“off line”→“on line”);關(guān)閉ONLINE命令為:onmode-ky(“on line”→“quiescent”→“off line”)。

操作最好用帶有GUI界面的命令“onmonitor”。

(3)Informix日志管理。無日志模式:建議不采用該模式;緩沖日志模式:具有較高的數(shù)據(jù)處理速度,但具有一定的風(fēng)險(xiǎn)性;非緩沖日志模式:比較適合關(guān)鍵應(yīng)用程序的處理; ANSl日志模式:選擇該模式的情況比較少。

(4)建立dbspace。

$onspace-c-d dbspace name-p原始磁盤設(shè)備-o。偏移量-s尺寸

參數(shù)含義:

-c:表示建立新的dbspace;

-d:dbspace name;

-p:原始磁盤設(shè)備全路徑名;

-o:偏移量,以KB為單位;

-s:chunk的尺寸,以KB為單位。

(5)創(chuàng)建、移動(dòng)和改變?nèi)罩敬笮 P薷奈锢砣罩?要求在quiescent狀態(tài)下):物理日志填充到75%時(shí)系統(tǒng)自動(dòng)引發(fā)檢查點(diǎn)操作,同時(shí)物理日志不能太大,在檢查點(diǎn)期間該實(shí)例的所有活動(dòng)都將終止。

創(chuàng)建邏輯日志:創(chuàng)建邏輯日志后并不能立即生效,必須在0級(jí)備份后才可以。

Onstat-C-L檢查邏輯日志。

C:表示正在用;

L:最后檢查點(diǎn)。

(6)創(chuàng)建數(shù)據(jù)庫(kù)。

方法有:Dbaccess、dbimport或直接運(yùn)行SQL語句

create database db_name[in createion_dbspace][with loglwith buffered 10g Ilog mode ansi]

(7)表和索引的創(chuàng)建。創(chuàng)建表:

create tabletable_name

(colunm_name datatype)in dbspace

創(chuàng)建索引:

create index index_name on table_name(列名)

(8)備份及恢復(fù)。備份包括三個(gè)級(jí)別:

0級(jí)——備份整個(gè)數(shù)據(jù)庫(kù)系統(tǒng);

1級(jí)——備份從0級(jí)備份以后發(fā)生變化的數(shù)據(jù);

2級(jí)——備份從1級(jí)備份以來發(fā)生變化的數(shù)據(jù)。

命令:$ontapc-s(輸入0、1、2級(jí))。在每天日終時(shí)需要對(duì)一天的數(shù)據(jù)進(jìn)行備份。

邏輯日志文件備份:定時(shí)備份邏輯日志和連續(xù)備份邏輯日志;

定時(shí)備份邏輯日志:ontape-a;

連續(xù)備份邏輯日志:ontape-c;

系統(tǒng)恢復(fù)命令:ontape-r。

(9)Informix常用命令。

Oncheck:檢查及恢復(fù)ONLINE數(shù)據(jù)庫(kù)磁盤空間、數(shù)據(jù)庫(kù)、表、索引等的一致性與完整性。

檢查ONLINE運(yùn)行狀態(tài):onstat。

onstat-d(觀察ONLINE磁盤組織狀況);

onstat-D(觀察ONLINE磁盤讀寫情況,可以確定每個(gè)chunk訪問的均衡情況,記住一個(gè)設(shè)備上可能會(huì)有多個(gè)chunk);

onsmt-l(監(jiān)視物理或邏輯日志緩沖區(qū)的使用情況。如果pages/io除以bufsize大約為75%,則緩沖區(qū)使用率較高,小于75%,則物理日志緩沖區(qū)可能太大,如果大于90%,則緩沖區(qū)太小);

Onstat-m(監(jiān)視消息日志文件,查看可能發(fā)生的特殊情況);

Onstat-F(監(jiān)視系統(tǒng)上發(fā)生的寫操作的種類);

Onstat-P(顯示profile文件);

Onstat-u(顯示用戶線索);

Onstat-g ses session_id(顯示感興趣的會(huì)話情況)。

5.Informix性能調(diào)整

性能調(diào)整是應(yīng)用系統(tǒng)中十分復(fù)雜的任務(wù),涉及面較廣,包括硬件配置、操作系統(tǒng)配置、數(shù)據(jù)庫(kù)設(shè)置及應(yīng)用軟件處理性能等。這里只講后兩個(gè)方面。

(1)數(shù)據(jù)庫(kù)配置原則

1)選擇硬盤要傳輸速度高、定位時(shí)問短;大量的小盤比少量的大盤要好。

2)ONLINE磁盤空間要盡可能與操作系統(tǒng)分開;物理、邏輯日志分開(特別是OLTP環(huán)境下),最好不要再放其他數(shù)據(jù)。

3)最好使用數(shù)據(jù)庫(kù)臨時(shí)空間,這比系統(tǒng)空間的效率要高;最好使用多個(gè)臨時(shí)數(shù)據(jù)庫(kù)空間,這樣將可能大大地提高操作效率,如使用多個(gè)臨時(shí)dbspace,要將它們放在與其他活動(dòng)頻繁的dbspace不同且彼此分開的磁盤上。

4)明智地使用數(shù)據(jù)分片;不要對(duì)小表進(jìn)行分片;不要對(duì)所有表進(jìn)行分片;要確定出數(shù)據(jù)量大且頻繁訪問的表;將表的每個(gè)分片放在單獨(dú)的磁盤上;選擇適當(dāng)?shù)姆指罘绞?目的是為了平衡總體I/O,并可以使優(yōu)化器對(duì)頻繁運(yùn)行的查詢消除對(duì)不必要分片的掃描)。

5)日志模式選用“no buflog”模式,這對(duì)銀行聯(lián)機(jī)系統(tǒng)比較重要。

6)在OLTP環(huán)境中應(yīng)當(dāng)將最活躍的表單獨(dú)放在一個(gè)dbspace中;最活躍的dbspace Chunk創(chuàng)建在離磁盤中心最近的地方,這樣可減少磁盤的移動(dòng)時(shí)間。

7)注意Chunk創(chuàng)建順序?qū)/O均衡的重要性。

8)注意系統(tǒng)中檢查點(diǎn)的平均持續(xù)時(shí)間,因?yàn)樵谠摃r(shí)間內(nèi)系統(tǒng)處于停滯狀態(tài)。

(2)數(shù)據(jù)庫(kù)設(shè)計(jì)原則

1)為性能而改變常規(guī)設(shè)計(jì),為追求性能可以在某表中增加子段等。

2)設(shè)計(jì)時(shí),保證記錄長(zhǎng)度小于1個(gè)ONLINE頁(yè),跨越多頁(yè)的長(zhǎng)記錄對(duì)性能無益。

3)一般情況下不要使用BLOBS。

4)建立索引要有目的性。

5)設(shè)計(jì)時(shí),最好標(biāo)出每張表的記錄數(shù)和訪問頻率等,可作為劃分磁盤的依據(jù)。

6)在設(shè)計(jì)表和表之間的關(guān)聯(lián)時(shí),在銀行的應(yīng)用系統(tǒng)中,一般將外鍵關(guān)系轉(zhuǎn)換為應(yīng)用邏輯的處理。

(3)應(yīng)用程序中對(duì)數(shù)據(jù)庫(kù)的訪問(以下原則在“批處理”模塊中特別重要)

1)對(duì)頻繁使用的語句要進(jìn)行prepare處理,prepare可節(jié)省C/S的網(wǎng)絡(luò)交換量和加快應(yīng)用處理速度。

2)對(duì)于大量使用Insert操作的情況,要盡可能使用Insert游標(biāo),尤其是數(shù)據(jù)較多時(shí)效果比較明顯。

3)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),Where語句盡可能使用主鍵而非ROWID,在對(duì)分割的表操作時(shí)更不能用ROWID。

4)避免不必要的類型轉(zhuǎn)換;SQL語句要盡可能精練。

5)decimal類型數(shù)據(jù)的各種運(yùn)算和轉(zhuǎn)換代價(jià)是高的。

6)避免頻繁的數(shù)據(jù)庫(kù)間切換。

7)不要Fetch不需要的行、列,只更新被改變的列,這樣可減少軟件沖突,避免鎖住索引項(xiàng)。

8)在LOAD數(shù)據(jù)庫(kù)時(shí)最好先關(guān)閉日志或索引,LOAD結(jié)束后再建索引。

9)在FORK子進(jìn)程時(shí),最好在子進(jìn)程中先關(guān)閉數(shù)據(jù)庫(kù)連接,然后重新連接數(shù)據(jù)庫(kù)。

10)對(duì)大量數(shù)據(jù)做修改后,最好執(zhí)行一次UPDATE STATISTICS操作。

11)在對(duì)數(shù)據(jù)庫(kù)操作時(shí),一定要注意事務(wù)處理的完整性:BEGIN WORK,COMMIT WORK和ROLLBACK WORK。

12)在連接數(shù)據(jù)庫(kù)時(shí)一定要注意考慮將來進(jìn)程數(shù)會(huì)不會(huì)超過數(shù)據(jù)庫(kù)限制的可能性,尤其是主機(jī)直接帶終端的處理方式可能有這個(gè)危險(xiǎn)。

13)在處理與“根據(jù)戶名查賬號(hào)”類似的交易時(shí),最好在程序中建立索引后查詢,然后再刪除索引,看性能是否有所提高。

14)刪除大量數(shù)據(jù)時(shí),要考慮先刪除索引再刪除數(shù)據(jù),同時(shí)注意長(zhǎng)時(shí)間事務(wù)發(fā)生的可能性。

一般來講,數(shù)據(jù)庫(kù)性能的調(diào)整是一個(gè)復(fù)雜的任務(wù),需要系統(tǒng)管理員的多次測(cè)試和摸索才能調(diào)整出最佳性能。本文只是對(duì)筆者接觸到的一個(gè)系統(tǒng)實(shí)例進(jìn)行了總結(jié),希望能對(duì)各位網(wǎng)絡(luò)管理員的工作起到一定的幫助作用。

熱詞搜索:

上一篇:大部分“釣魚”威脅來自Linux系統(tǒng)
下一篇:提高傳輸效率 三層交換及VLAN設(shè)置2

分享到: 收藏