达梦体系结构(DM8)_yxy
達夢體系結構
- 1 DM8 存儲結構
- 1.1 物理存儲結構
- 配置文件
- 控制文件
- 重做日志文件
- 數據文件
- 歸檔日志文件
- 備份文件
- 跟蹤日志文件
- 事件日志文件
- 1.2 邏輯結構
- 頁
- 簇
- 段
- 表空間
- 1.3邏輯結構和物理結構圖
- 2 DM8 內存結構
- 共享內存池
- 運行時內存池
- 數據緩沖區
- 重做日志緩沖區
- 字典緩沖區
- sql 緩沖區
- 排序區
- Hash 區
- 3 DM8 線程結構
- 監聽線程
- 日志刷新線程
- 日志歸檔線程
- 日志重做線程
- 調度線程
1 DM8 存儲結構
1.1 物理存儲結構
配置文件
以.ini 結尾的文件,查詢視圖 v d m i n i s e l e c t p a r a n a m e , p a r a v a l u e , p a r a t y p e f r o m v dm_ini select para_name,para_value,para_type from v dmi?niselectparan?ame,parav?alue,parat?ypefromvdm_ini;
Sys:系統級,影響全局
Session:會話級,只針對當前會話有效
Read only:只讀,只能手動編輯參數文件
Infile:靜態參數,實例重啟才能生效
修改參數有以下兩種方法:
(1)直接 vi dm.ini ,無論是動態還是靜態參數,都需要重啟
(2)調用函數 sp_set_para_value(參數類型,’參數名’,參數值) 參數是動態參數不需要重啟,靜態參數需要重啟 參數類型是指:靜態參數或者動態參數。1 是動態參數,相當于 both,會改內存和參數文件 中的值,2 是靜態參數,相當于 infile ,只會更改參數文件中的值。
(3)console 工具修改參數,無論是動態還是靜態,也都要重啟數據庫才能生效。
例 1:修改數據庫口令策略為:長度不小于 9,至少包含一個大寫字母
pwd_policy 動態參數
設置系統默認口令策略。
0: 無策略;
1: 禁 止與用戶名相同;
2: 口令長度不小于 9;
4: 至少包含一個大寫字母(A-Z);
8 :至少包含 一個數字(0-9);
16:至少包含一個標點符 號(英文輸入法狀態下,除―和空格外的所有符 號;若為其他數字,則表示配置值的和,如 3=1+2,表示同時啟用第 1 項和第 2 項策略。當COMPATIBLE_MODE=1 時,PWD_POLICY 的實際值均為 0
sp_set_para_value(1,‘pwd_policy’,6);
例 2 修改 dm 數據庫為兼容 oracle COMPATIBLE_MODE 靜態參數是否兼容其他數據庫模式。
0:不兼容,
1:兼 容 SQL92 標準
2:部分兼容 ORACLE,
3:部 分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA
sp_set_para_value(2,‘COMPATIBLE_MODE’,2)
控制文件
以.ctl 結尾的文件
select para_name,para_value,para_type from v$dm_ini where para_name like ‘%PATH%’;
查看控制文件內容: bin下
查看幫助 [dmdba@localhost bin]$ ./dmctlcvt help
./dmctlcvt TYPE=1 SRC=/dm8/data/DM/dm.ctl DEST=/dm8/dmctl.txt
./dmctlcvt type=2 src=/dm8/dmctl.txt dest=/dm8/data/DM/dm.ctl
注意:不要隨便修改控制文件
重做日志文件
查詢重做日志文件:
select file_id,path,rlog_size from v$rlogfile;
重做日志文件記錄的是數據庫發生變更信息。重做日志文件的特點是
可覆蓋,循環寫。重做日志文件頻繁切換會對數據庫產生較大的性能
影響。
resize 重做日志文件
Alter database resize logfile ‘/dm8/data/DM/DM01.log’ to 300;
Alter database resize logfile ‘/dm8/data/DM/DM02.log’ to 300;
新增重做日志文件
Alter database add logfile ‘/dm8/data/DM/DM03.log’ size 300;
注意:重做日志文件不能被刪除,所有日志文件大小需要一致。
遷移重做日志文件
alter database mount;
alter database RENAME LOGFILE ‘/dm8/data/DM/DM01.log’ TO ‘/dm8/DM01.LOG’;
alter database open;
數據文件
以.DBF 結尾的文件 存放的是真實數據
select file_name,status from dba_data_files;
歸檔日志文件
就是重做日志文件的副本,用來做數據庫備份恢復、數據庫守護集群、dmhs 的同步。
select name,arch_mode from v$database;
備份文件
以.bak 為擴展名的文件,備份文件就是數據庫在某一個時間點的副
本。.meta 元數據文件(備份集的信息),.bak 數據備份文件(真實
的數據)
跟蹤日志文件
跟蹤日志文件記錄的是系統各會話執行的 sql 語句的信息,主要是錯
誤的信息、性能問題。跟蹤日志文件默認是關閉的。SVR_LOG
事件日志文件
記錄的是數據庫運行期間產生的關鍵性事件:數據庫的啟動、關閉、
IO 錯誤、內存申請失敗
1.2 邏輯結構
頁
默認為 8k,支持 4k、8k、16k、32k。頁是數據庫最小的分配和使用單元。頁對應的是
操作系統塊。
頁包含了頁頭信息、數據、空閑空間、行偏移數組。
頁頭信息記錄的頁類型、頁地址。行偏移數組,記錄的是空間空間和數據比例(filefactor)
簇
默認為 16 個頁,支持 16、32 個頁。簇是一組連續的頁組成,一個簇總是在一個數據文件中。
段
是簇的上級邏輯單元,段可以跨多個數據文件。段又分為數據段(表、索引)、回滾段、 臨時段。 dba_segments
表空間
一個數據庫擁有多個表空間,一個表空間可以擁有一個或多個數據文件,一個數據文件只能屬于一個表空間。 dba_tablespaces
1.3邏輯結構和物理結構圖
2 DM8 內存結構
共享內存池
主要是減少系統調用。共享內存池是 dmserver 啟動時,從操作系統申請的一大片內存,實例在運行中可以向內存池申請或釋放內存。
SQL> select para_name,para_value from v$dm_ini where para_name like ‘%MEMORY%’;
Memory_target 為 0 表示不限制內存使用
運行時內存池
給特定模塊單獨使用,例如會話內存池,虛擬機內存池。
數據緩沖區
參數:buffer
SQL> select para_name,para_value from v$dm_ini where para_name=‘BUFFER’;
參考值:
Oltp:物理內存的 40%-60%
OLAP:物理內存的 60%-80%
提高數據庫的性能
緩存的是數據頁(空閑、干凈、臟、正在使用)
數據緩沖區有 4 種類型:
Normal /keep:可以手動調整
Fast/recycle:系統自動管理。Fast 主要是 undo 數據,recycle 主要是臨時數據。
重做日志緩沖區
存放是重做日志信息,單位是頁,提升數據庫的性能。
select para_name,para_value from v$dm_ini where para_name like ‘RLOG_BUF_SIZE’;
字典緩沖區
主要緩存的是數據字典的信息,包含表、列的信息。數據庫存在大量分區表時,應該要調整
字典緩沖區。
sql 緩沖區
用來存放執行計劃,sql 結果集,包。系統中 sql 類別比較多,應該調整 sql 緩沖區。
select para_name,para_value from v$dm_ini where para_name like ‘CACHE_POOL_SIZE’;
排序區
排序區就是 sql 排序需要的內存空間,sql 在排序區空間不夠時,轉移到磁盤上(臨時表空間)
Hash 區
是虛擬的內存區,只有在生成 hash 連接時,才會生成。
3 DM8 線程結構
監聽線程
檢測來自客戶端的連接請求,生成任務,把任務交給工作線程。
IO 線程
將數據頁從磁盤讀入到數據緩沖區中,將數據緩沖區的臟頁在一定機制下(緩沖區滿,執行檢查點,數據庫關閉)刷到磁盤中。
日志刷新線程
將重做日志緩沖區中的重做記錄在一定機制(事務提交,每 3 秒,執行檢查點)下,刷到重做日志文件中。
日志歸檔線程
將重做日志文件在切換時拷貝到歸檔路徑。
日志重做線程
主要是用于數據庫恢復。
調度線程
檢查系統級的時間觸發器;
清理 SQL 緩存、計劃緩存中失效的項,或者超出緩存限制后淘汰不常用的緩存項;
動態緩沖區檢查。根據需要動態擴展或動態收縮系統緩沖池;
自動執行檢查點;
會話超時檢測;
必要時執行數據更新頁刷盤;
喚醒等待的工作線程
總結
以上是生活随笔為你收集整理的达梦体系结构(DM8)_yxy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML.net 3-情绪预测
- 下一篇: QML之ubuntu下编译安装虚拟键盘中