[IDS培訓文件]第一章 Informix動態可伸縮體系結構

mrhutoo發表於2013-09-06
第一章 Informix動態可伸縮體系結構
DSA (Dynamic Scalability Architecture)
一、關係型資料庫(Relational Database)系統體系結構
目前比較流行的商用關係型資料庫多采用一下三種體系結構:
1、一請求一服務體系結構
採用對於每一資料庫服務請求,資料庫系統將為之分配一個資料庫服務程式服務的方式。
優點:可以充分隔離不同使用者的資料庫服務,並且可以比較容易發揮採用SMP體系結構的機器
的資源。
缺點:系統記憶體資源、CPU資源消耗大;由於使用作業系統的程式排程,系統執行效率不高。
2、多線索體系結構
優點:不需要頻繁的作業系統的程式切換,節約記憶體、CPU資源;系統並行執行程度高,執行
效率高。
缺點:系統比較脆弱,一個線索的誤操作,可能導致系統癱瘓;資料庫自己的線索切換較操
作系統的切換簡單;大資料量的操作可能引起系統資源的不均衡分佈。
3、混合體繫結構
該系統由(1)多線索的網路監聽器(2)任務分發器,包括請求/響應佇列(3)可重用資料
庫伺服器組成。
優點:任務處理採用並行和排隊的方式,系統執行效率高。
缺點:負載均衡較簡單。
二、IDS系統組成
IDS(Informix Dynamic Server)資料庫系統由以下部分組成:
1、共享記憶體部分
共享記憶體部分包括:長駐記憶體部分、虛擬記憶體部分、訊息區。
(1)長駐記憶體部分主要是用於磁碟資料在記憶體的緩衝、系統資料等等
(bufffers,physical/logical buffers,LRUs,chunks,dbsapces,users,locks…)。
(2)虛擬記憶體部分主要用於VP的管理資訊和緩衝區。
(global pool,dictionary pools,procedure pools,sort pools,session pools,big buffe
r pools,MT pools)。虛擬記憶體部分在使用過程中可以動態增長,增長大小在配置檔案中定
義。
(3)訊息區主要用於應用(client)和資料庫引擎(server)之間的資訊交換。
2、磁碟資料空間部分
3、資料庫引擎-虛擬處理器VP(Virtual Processors)。
三、IDS多線索體系結構
Online7.0改變了Online5.0中一對一的客戶/伺服器模式:由原來的一個資料庫請求啟動一
sqlexec資料庫引擎服務的Client/Server方式轉變為對於所有資料庫請求由多個數量固定(
除非動態調整)的資料庫引擎(即VP虛擬處理器)服務的方式。OnLine7.0把資料庫引擎按功
能劃分為多個VP,這些VP是長駐記憶體的oninit程式。對於每一個資料庫服務請求都將被分割
成多個可並行的線索,由不同VP並行服務。線索(thread)可以定義為一段順序執行的程式
。虛擬處理器VP可以定義為完成一定義資料庫服務功能的資料庫程式。VP包括一下型別:CPU
,PIO(負責寫物理日誌),LIO(負責寫邏輯日誌),AIO(負責磁碟I/O)等等。線索執行
在VP上,線索的排程由CPU VP完成。從這一點來看,VP類似於硬體上的CPU,線索類似與執行
其上的程式。多線索體系結構的優點:
(1)fan-in:對於多個應用請求,資料庫只用一定數量的VP服務,並可以根據需要動態調整

(2)fan-out:多個資料庫VP服務一個應用請求;
(3)資料庫內部的線索切換避作業系統的程式切換速度快、效率高;
(4)多線索體系結構更適合於多CPU的體系結構,如:affinity特性。
四、IDS客戶/伺服器連線方式
1、IDS的客戶/伺服器連線方式可採用一下方式:
(1)共享記憶體連線方式(onipcshm)
(2)管道連線方式(onipcstr)
(3)網路連線方式(基於TCP/IP協議,包括ontlitcp,onsoctcp或者IPX/SPX協議,ontlispx
)基於TCP/IP網路協議的應用介面可以使用SOC(Socket)或者TLI
(Transport Layer Interface)。採用網路連線方式的客戶端與伺服器端必須使用相同的網
絡通訊協議(TCP/IP協議或者IPX/SPX協議),但是客戶端使用socker介面,而伺服器端使用
tli介面。
2、基於共享記憶體方式的客戶伺服器連線
3、基於TCP/IP協議的客戶伺服器連線
(1)在客戶端和伺服器端的/etc/hosts檔案中指定連線方式。
(2)在客戶端和伺服器端的/etc/services檔案中指定通訊埠和網路協議。
(3)在客戶端和伺服器端的$INFORMIXSQLHOSTS檔案中指定如何訪問伺服器,包括伺服器名
稱、伺服器網路地址、伺服器網路訪問方式(協議和埠號)。
(4)檢查網路系統安全檔案,包括/etc/hosts.equiv、$HOME/.rhosts檔案。
(5)在客戶端和伺服器端設定環境變數,包括INFORMIXSERVER,INFORMIXSQLHOSTS。
五、IDS磁碟資料結構
1、資料儲存概念
(1)page
page是OnLine的最基本資料儲存單位。OnLine的資料頁面包含一下內容:
(1)24個位元組的頁頭(包含4個位元組的時間戳(timestamp))。
(2)資料區
(3)槽表(slot table)
每4個位元組。前2個位元組存放記錄在頁面的偏移量,後2個位元組存放該記錄的大小。一個頁面中
的槽表個數最多不超過255,所以一個資料頁面最多存放255個記錄。
(4)時間戳。
(2)extent
extent是多個物理連續page(最多4個)的組合。資料庫表的儲存空間分配是以extent為單位
的。
(3)tbspace
tbspace是extent的邏輯組合。Tbspace由分配給一個表的所有extent組成。一個tbspace只可
能在一個dbspace中,但可能跨越多個chunk。
(4)chunk
chunk是分配給OnLine的一塊物理儲存空間,可以是unix檔案,也可以是原始裝置。
(5)dbspace、blobspace
dbspace是chunk的邏輯組合。資料庫管理員可以為dbspace建立、增加chunk、從而增加資料
庫的儲存空間。建立dbspace時必須首選指定它的primary chunk。
2、日誌(log)
資料庫日誌是用於維護資料庫資料一致性的手段。IDS的日誌分為物理日誌(physical log)
和邏輯日誌(logical log)。物理日誌用於維護資料庫的物理一致性,在每次修改資料之前
,該資料所在的資料頁面都將儲存在物理日誌中,所以物理日誌也稱為“前映象”
(before images)。邏輯日誌用於維護資料庫的邏輯一致性,在每次變動資料庫時,所有變
動情況都將記錄在邏輯日誌中。物理日誌在每次checkpoint之後將被自動清空;邏輯日誌必
需是已經備份,而且日誌中包含的事務都已提交,並且不是最後一個日誌檔案才能被釋放。
長事務是指那些尚未結束,但資料庫邏輯日誌檔案已經被事務日誌記錄充滿的事務。這樣一
來邏輯日誌檔案既不能被釋放重用,同時事務日誌記錄也寫不進邏輯日誌檔案。這種情況下
,IDS會阻塞資料庫請求,同時“回滾”長事務。
六、IDS的容錯處理
1、checkpoint
checkpint是IDS的一個重要系統功能。IDS利用checkpoint來保證共享記憶體資料緩衝區中的數
據與物理磁碟上的資料保持一致。它包括一下步驟:
(1)掛起臨界區;
(2)重新整理共享記憶體中的物理日誌緩衝到物理磁碟上的物理日誌檔案;
(3)重新整理共享記憶體緩衝區中發生修改的頁面到物理磁碟頁面上;
(4)寫checkpoint記錄到邏輯日誌檔案和系統保留頁中;
(5)邏輯清空物理日誌檔案;
(6)重新整理邏輯日誌緩衝區到物理磁碟的邏輯日誌檔案中。
注意:IDS在重新整理記憶體中的頁面到物理磁碟之前,必須先將物理日誌緩衝區的資料重新整理到硬碟
上的物理日誌檔案中。
2、fast recovery
IDS利用fast recovery功能來保證資料庫每次重起時快速恢復到資料庫shutdown時的一致性
狀態。
它包含一下步驟:
(1)恢復物理日誌檔案中的資料到共享記憶體的緩衝區和磁碟的物理頁面上;
(2)在邏輯日誌檔案中定位系統最後一個一致點-checkpoint點;
(3)根據系統最後的一致點以後的邏輯日誌記錄“回滾”(rollback)尚未提交的事務和“
取消”(undo)已經提交的事務。
3、IDS資料緩衝技術
IDS對資料庫中的操作都是通過對共享記憶體資料緩衝區中資料的操作來完成的。例如一個修改
資料庫記錄的操作

Begin work;
Update tab1 set fld1=”” where fld2=?;
Commit work;

IDS處理如下:
(1)客戶端連線到IDS後(connect…,database…),IDS為這個請求啟動一個sqlexec任務
進行服務。
(2)sqlexec在對SQL語句進行語法分析後,產生執行計劃。
(3)sqlexec在logical log buffer中寫入事務開始記錄。
(4)sqlexec將請求讀取某個chunk中的某個資料頁面,並申請相應鎖資源。
(5)IDS首選在記憶體緩衝區的LRU佇列中查詢該資料頁面是否在緩衝區中。
(6)如果不在緩衝區中,IDS將在FLRU佇列中查詢空閒頁面,如果沒有,IDS將啟動一個
Forground Write來申請一個空閒緩衝區頁面。IDS申請將該資料頁面從磁碟上讀入到緩衝區
中。在修改資料前,IDS將該頁面寫入物理日誌緩衝區中。然後,進行資料修改。接下來執行
步驟(8)。
(7)如果在緩衝區中,並且在FLRU佇列中,IDS將該頁面寫入物理日誌緩衝區中,並進行數
據修改。如果在MLRU佇列中,IDS將直接進行資料修改。
(8)IDS向邏輯日誌緩衝區中寫入修改操作的邏輯日誌記錄。
(9)IDS釋放該事務申請的所有鎖資源,並向邏輯日誌緩衝區中寫入日誌結束記錄。
七、IDS監控
1、IDS狀態
(1)off-line狀態
(2)quiescent狀態
(3)online狀態
(4)shutdown狀態
(5)recovery狀態
2、系統阻塞原因
CKPT Checkpint
LONGTX Long Transaction
ARCHIVE Ongoing archive
MEDIA_FAILURE Media failure
HANG_SYSTEM Database server failure
DBS_DROP Dropping a dbspace
DDR Discrete high availability data replication
LBU Logs full high-water mark
3、監控工具。
使用者可以使用SMI(System Monitoring Interface)、onstat工具、oncheck工具完成對IDS
的監控。
1)使用系統監控介面SMI
系統監控介面採用只讀方式直接訪問DSA的管理資訊。
2)使用onstat監控工具
(1)監控資料庫日誌檔案online.log:onstat -m
(2)監控資料庫系統共享記憶體使用情況:onstat –g seg
(3)監控資料庫系統邏輯日誌使用情況:onstat –l
(4)監控資料庫系統chunk使用情況:onstat –d
(5)監控資料庫系統線上session情況:onstat –g ses
(6)監控資料庫系統某個線上session情況:onstat –g ses sessid
(7)監控資料庫系統線上userthread情況:onstat –u
(8)監控資料庫系統鎖資源使用情況:onstat –k
(9)監控資料庫系統緩衝區重新整理操作情況:onstat –F
(10)監控資料庫系統LRU佇列使用情況:onstat –R
(11)監控資料庫系統對所有chunk對協操作情況:onstat –g iof
(12)監控資料庫系統線上thread情況:onstat –g ath
(13)監控資料庫系統線上VPs情況:onstat –g glo
(14)監控資料庫系統使用效率情況:onstat –p
(15)監控資料庫系統PDQ使用情況:onsat –g mgm
(16)監控資料庫系統就緒佇列(ready queue)情況:onstat –g rea
(17)監控資料庫系統等待佇列(wait queue)情況:onstat –g wai
(18)監控資料庫系統休息佇列(sleep queue)情況:onstat –g sle
(19)監控資料庫系統活動事務情況:onstat –X
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24955184/viewspace-772251/,如需轉載,請註明出處,否則將追究法律責任。

相關文章