達夢(dm8)資料庫由例項和資料庫共同組成。
例項由一組正在執行的後台程序及其所fork出的一系列執行緒和分配記憶體組成。資料庫是由一系列存放在作業系統上的檔案組成。
體系結構圖大致為:
本文只要針對體系結構中的例項,也就是達夢(dm8)資料庫中記憶體結構與執行緒結構進行介紹。
達夢(dm8)例項記憶體池包括執行時記憶體和共享記憶體池組成,可以通過查詢動態檢視v$mem_pool檢視當前資料庫系統中所有記憶體池的狀態:
1.1 共享記憶體池
資料庫執行時的主要記憶體池,由資料庫引數檔案dm.ini中的引數memory_pool決定共享記憶體池大小(根據伺服器系統會有所變化),可根據生產環境需要進行修改,修改後必須重啟資料庫生效。
1.1.1 sql緩衝區,屬於共享記憶體池一部分,是資料庫執行sql語句需要分配的記憶體,主要用於生成解析sql語句、快取重用執行計畫以及結果集快取等。引數cache_pool_size決定緩衝區代銷,預設為20m,修改後需重啟資料庫。
1.1.2 字典緩衝區,屬於共享記憶體池一部分,有快取資料字典資訊,如模式資訊、表資訊、列資訊、觸發器資訊等,才去lru演算法載入資料字典,可以加快sql語句的解析。由引數dict_buf_size決定緩衝區大小,預設為5m。修改後需重啟資料庫。
1.1.3 資料緩衝區,用於快取從磁碟讀取的資料頁。是共享記憶體池中最重要的記憶體區域之一。由四種型別的資料緩衝區組成,分別是normal、keep、fast、recycle。
normal緩衝區主要處理沒有特殊指定緩衝區的資料頁,由引數buffer決定大小,預設100m;keep緩衝區緩衝需要長期快取的在記憶體資料頁,由引數keep引數決定大小,預設8m;recycle緩衝區主要使用者臨時表空間資料快取,由引數recycle決定大小,預設64m;fast緩衝區根據使用者指定的引數fast_pool_pages大小由系統自動進行管理,預設值為3000,單位是資料頁數量(實際引數值根據伺服器系統會有所變化)。
1.1.4 日誌緩衝區,用於存放重做日誌的記憶體緩衝區,記錄資料庫中的改動向量。由引數rlog_buf_size決定大小。預設值為1024,單位資料頁數量。
1.1.5 排序區,對資料操作排序時所占用的記憶體空間,由引數sort_buf_size決定大小,預設39m。每次排序操作先申請排序區記憶體,排序結束後釋放記憶體。
1.1.6 雜湊區,達夢(dm8)為雜湊連線設定的虛擬記憶體緩衝區,但並不是專門建立的特定屬於用於雜湊連線的記憶體,只有使用雜湊連線時排序的資料量大小達到了雜湊緩衝區帶下才會使用。
1.1.7 ssd緩衝區,是達夢(dm8)針對記憶體、機械磁碟、ssd磁碟之間資料分配的緩衝層。
1.2 執行時記憶體
dm8資料庫中一些功能模組執行時屬於自己特有的記憶體池,例如會話記憶體池一般是在會話連線時分配屬於當前會話的記憶體。
達夢(dm8)資料庫只有乙個程序,但會fork出多個執行緒來完成資料庫中的各項操作,主要執行緒有:監聽執行緒、io執行緒、工作執行緒、排程執行緒、日誌想成等。通過vpro
cess
檢視檢視
當前資料
庫的程序
資訊。通
過vprocess檢視檢視當前資料庫的程序資訊。通過v
proces
s檢視查
看當前數
據庫的進
程資訊。
通過vthreads檢視檢視當前資料庫啟動的執行緒及其每個執行緒的功能描述。
2.1 監聽執行緒,在伺服器上資料庫埠迴圈監聽是否有客戶端連線請求,每次會生成會話申請交給工作執行緒進行處理。
2.2 工作執行緒,dm8資料庫核心執行緒,處理監聽執行緒生成的會話申請以及處理其他資料先關操作型別的任務。每個會話有專門的工作執行緒處理請求,所以工作執行緒隨著會話連線增加而增加。但當會話連線超出閾值時就不再增加,轉而輪詢請求加入佇列,等待工作執行緒空閒後再處理。
2.3 io執行緒,負責將記憶體中的髒資料寫到磁碟檔案中,將資料持久化處理。通常情況有三種情況會觸發io執行緒:
(1)sql查詢的資料頁不在緩衝區,需要從磁碟中讀取資料頁。
(2)緩衝區中資料頁滿或者資料庫關閉會觸發io執行緒將髒資料頁寫入磁碟。
(3)生成檢查點。
io執行緒個數可以通過引數檔案dm.ini中的io_thr_groups進行設定,預設值為2.
2.4 排程執行緒,資料庫中管理所有定時任務或定時電鍍任務。每秒輪詢一次。
2.5 日誌flush執行緒,負責將記憶體池中日誌緩衝區中的產生的redo log寫入磁碟中的聯機日誌檔案中。日誌flush執行緒要先於io執行緒,也就是日誌寫入磁碟在髒資料頁寫入磁碟之前進行。
2.6 日誌歸檔執行緒,主要負責將聯機日誌進行歸檔操作。
2.8 定時器執行緒,處理資料庫中配置的定時操作,例如備份等,預設是不啟動的,觸發定時器執行緒的場景有:
(1)邏輯日誌非同步歸檔。
(2)主庫傳送非同步歸檔日誌給備庫。
(3)定時作業。
2.9 邏輯日誌歸檔執行緒、mal執行緒及其他執行緒,
達夢資料庫DM8配置DEM
達夢資料庫的dem類似於oracle的oem,使用dem可以對達夢資料庫進行監控等操作。本文主要講述如何配置dem,以及如何將主機 資料庫納入dem監控。主要工作為 1 首先基礎環境檢查配置,如防火牆,內外網ip配置。2 準備乙個資料庫作為dem後台資料庫,並修改dm.ini檔案中快取等幾個引數的大...
達夢dm8資料安裝
id dmdba 檢視是否有此使用者 groupadd dinstall 新增乙個組 useradd g dinstall dmdba 新增乙個使用者,並分配到dinstall組 passwd dmdba 為dmdba使用者設定密碼 chown dmdba dinstall r dm8 設定dm7這...
達夢資料庫資料庫(DM8)配置說明
一 圖形化方式dbca 步驟2 建立資料庫模板,一般用途 聯機分析處理和聯機事務處理,可根據自身的用途選擇相應的模板。如下圖所示 步驟3 選擇資料庫目錄,可通過右側瀏覽或是輸入的方式選擇資料庫所在目錄。如下圖所示 步驟4 輸入資料庫名稱 例項名和埠號等。如圖所示 步驟5 資料庫檔案所在位置。如下圖所...