DM執行緒的管理

2021-10-24 20:24:05 字數 2616 閱讀 6698

dm 伺服器使用「對稱伺服器構架」的單程序、多執行緒結構。對稱伺服器構架在有效地利用了系統資源的同時又提供了較高的可伸縮性能,伺服器在執行時由各種記憶體資料結構和一系列的執行緒組成,執行緒分為多種型別,不同型別的執行緒完成不同的任務。執行緒通過一定的同步機制對資料結構進行併發訪問和處理,以完成客戶提交的各種任務。dm 資料庫伺服器是共享的伺服器,允許多個使用者連線到同乙個伺服器上,伺服器程序稱為共享伺服器程序。

dm程序中主要包括監聽執行緒、io執行緒、工作執行緒、排程執行緒、日誌執行緒。

1、監聽執行緒

監聽執行緒主要的任務是在伺服器端口上進行迴圈監聽,一旦有來自客戶的連線請求,監聽執行緒被喚醒並生成乙個會話申請任務,加入工作執行緒的任務佇列,等待工作執行緒進行處理。它在系統啟動完成後才啟動,並且在系統關閉時首先被關閉。為了保證在處理大量客戶連線時系統具有較短的響應時間,監聽執行緒比普通執行緒優先順序更高。

2、工作執行緒

工作執行緒是 dm 伺服器的核心執行緒,它從任務佇列中取出任務,並根據任務的型別進行相應的處理,負責所有實際的資料相關操作。

3、io執行緒

在資料庫活動中,io 操作歷來都是最為耗時的操作之一。當事務需要的資料頁不在緩衝區中時,如果在工作執行緒中直接對那些資料頁進行讀寫,將會使系統效能變得非常糟糕,而把 io 操作從工作執行緒中分離出來則是明智的做法。

需要進行io操作的時機主要有三種:

1、需要處理的資料頁不在緩衝區中,此時需要將相關資料頁讀入緩衝區;

2、緩衝區滿或系統關閉時,此時需要將部分髒資料頁寫入磁碟;

3、檢查點到來時,需要將所有髒資料頁寫入磁碟。

4、排程執行緒

排程執行緒用於接管系統中所有需要定時排程的任務。排程執行緒每秒鐘輪詢一次,負責的任務有以下一些:

1、檢查系統級的時間觸發器,如果滿足觸發條件則生成任務加到工作執行緒的任務佇列由工作執行緒執行;

2、清理 sql 快取、計畫快取中失效的項,或者超出快取限制後淘汰不常用的快取項;

3、檢查資料重演捕獲持續時間是否到期,到期則自動停止捕獲;

4、執行動態緩衝區檢查。根據需要動態擴充套件或動態收縮系統緩衝池

5、自動執行檢查點。為了保證日誌的及時刷盤,減少系統故障時恢復時間,根據 ini引數設定的自動檢查點執行間隔定期執行檢查點操作;

6、會話超時檢測。當客戶連線設定了連線超時時,定期檢測是否超時,如果超時則自動斷開連線;

5、日誌flush執行緒

任何資料庫的修改,都會產生重做 redo 日誌,為了保證資料故障恢復的一致性,redo日誌的刷盤必須在資料頁刷盤之前進行。事務執行時,會把生成的 redo 日誌保留在日誌緩衝區中,當事務提交或者執行檢查點時,會通知 flush 執行緒進行日誌刷盤。由於日誌具備順序寫入的特點,比資料頁分散 io 寫入效率更高。日誌 flush 執行緒和 io 執行緒分開,能獲得更快的響應速度,保證整體的效能。

如果系統配置了實時歸檔,在 flush 執行緒日誌刷盤前,會直接將日誌通過網路傳送到實時備庫。如果配置了本地歸檔,則生成歸檔任務,通過日誌歸檔執行緒完成。

6、日誌歸檔執行緒

日誌歸檔執行緒包含非同步歸檔執行緒,負責遠端非同步歸檔任務。如果配置了非實時歸檔,由日誌 flush 執行緒產生的任務會分別加入日誌歸檔執行緒,日誌歸檔執行緒負責從任務佇列中取出任務,按照歸檔型別做相應歸檔處理。

將日誌 flush 執行緒和日誌歸檔執行緒分開的目的是為了減少不必要的效率損失,除了遠端實時歸檔外,本地歸檔、遠端非同步歸檔都可以脫離 flush 執行緒來做,如果放在 flush 執行緒中一起做會嚴重影響系統效能。

8、定時器執行緒

在資料庫的各種活動中,使用者常常需要資料庫完成在某個時間點開始進行某種操作,如備份;或者是在某個時間段內反覆進行某種操作等。定時器執行緒就是為這種需求而設計的。通常情況下,dm server 需要進行定時操作的事件主要有以下幾種:

邏輯日誌非同步歸檔;

非同步歸檔日誌傳送(只有在 primary 模式下,且是 open 狀態下);

作業排程。

9、邏輯日誌歸檔執行緒

邏輯日誌歸檔用於 dm7 的資料複製中,目的是為了加快異地訪問的響應速度,包含本地邏輯日誌歸檔執行緒和遠端邏輯日誌歸檔執行緒。當配置了資料複製,系統才會建立這兩個執行緒。

本地邏輯日誌歸檔執行緒

本地歸檔執行緒從本地歸檔任務列表中取出乙個歸檔任務,生成到邏輯日誌,並將邏輯日誌寫入到邏輯日誌檔案中。如果當前邏輯日誌的遠端歸檔型別是同步異地歸檔並且當前的刷盤機制是強制刷盤,那麼就生成乙個異地歸檔任務加入到臨時列表中。

遠端邏輯日誌歸檔執行緒

遠端歸檔執行緒從遠端歸檔任務列表中取出乙個歸檔任務,並根據任務的型別進行相應的處理。任務的型別包括同步傳送和非同步傳送。

10、mal系統相關執行緒

mal 系統是 dm 內部高速通訊系統,基於 tcp/ip 協議實現。伺服器的很多重要功能都是通過 mal 系統實現通訊的,例如資料守護、資料複製、mpp、遠端日誌歸檔等。mal 系統內部包含一系列執行緒,有 mal 監聽執行緒、mal 傳送工作執行緒、mal 接收工作執行緒等。

dm執行緒相關的動態檢視

dm使用者管理

達夢資料庫有那些使用者?sys 達夢資料內建管理使用者,不能登入資料庫。sysdba 資料庫的管理員 oracle sys mysql root sql server sa sysautditor 審計員 配置審計策略,分析審計日誌 syssso 安全員 安全版本 配置安全策略。如何規劃使用者?名字...

dm表空間管理

sql create tablespace tbs datafile home dmdba dmdbms data dameng tbs.dbf size 10 autoextend on maxsize 100 create tablespace tbs datafile home dmdba d...

DM資料庫管理

dm資料庫體系結構學習是奠定了未來資料庫學習的高度,必須要把體系結構中的每一點都完全掌握,才能更好的管理dm資料庫。dm資料庫的表空間是乙個邏輯概念,其目的主要是為了方便資料庫的管理,資料庫的所有物件在邏輯上都存放在某個表空間中,而物理上都儲存在所屬表空間的資料檔案中。乙個表空間由乙個或多個資料檔案...