DM-INI參數配置


配置文件

前言

每創建一個DM數據庫,就會自動生成 dm.ini 文件。dm.ini 是 DM 數據庫啟動所必須的配置文件,通過配置該文件可以設置 DM 數據庫服務器的各種功能和性能選項,當然還有其它參數配置文件,歸檔參數文件dmarch.ini及配置集群的參數文件dmmal.ini、dmwatcher.ini、dmmpp.ini、dmtimer.ini、dmwmon.ini。達夢數據庫的參數文件dm.ini是必須的,其它均可選擇配置。且除了實例參數文件dm.ini外,其它參數文件按照部署規范配置好后,基本上無須做任何修改。

主要配置文件

說明

參數文件 說明
dm.ini 達夢數據庫啟動所必須的配置文件,通過配置該文件可以設置達夢數據庫服務器的各種功能和性能選項。達夢數據庫是否讀參數文件dmarch.ini、dmmal.ini、dmmpp.ini、dmtimer.ini,均有dm.ini參數文件中的相應參數(MAL_INI、ARCH_INI、MPP_INI、TIMER_INI)來控制。
dmarch.ini 用於配置REDO日志的本地歸檔和遠程歸檔。所謂遠程歸檔指這台實例的REDO日志發送到集群中另外一個實例(該實例為這台實例的備機)。
dmmal.ini 達夢數據庫集群間MAL系統的配置文件,通過該文件配置達夢集群中每個實例的IP地址、端口號等信息。
dmwatcher.ini 守護進程的配置文件。
dmmpp.ini MPP集群的配置文件。
dmtimer.ini 異步備機的配置文件。
dmmonitor.ini 數據守護系統的監視器配置文件。

查看各項功能的配置文件

select name from sysobjects where name like 'V$DM_%INI';

參數分類

實例參數文件dm.ini中參數主要分為兩類:功能配置參數、性能調優參數。

參數名 說明
CTL_PATH 必配,實例控制文件路徑。
SYSTEM_PATH 必配,系統表空間路徑。
TEMP_PATH 必配,臨時表空間路徑。
BAK_PATH 必配,數據庫備份默認路徑。
INSTANCE_NAME 必配,數據庫實例名稱。
ARCH_INI 選配項,REDO本地歸檔開關,如不配置,無法進行數據庫備份。
MAL_INI 集群必配項,MAL通信開關。
DW_PORT 集群必配項,數據庫和守護進程的TCP通信端口。
TIMER_INI 選配,異步備機開關,配置異步備機必須要配置該項。
MPP_INI 選配,MPP集群開關,配置MPP集群必須要配置該項。

其它參數均為選配項,包括功能參數、性能調優參數、監控參數等。

參數屬性

INI 參數屬性分為靜態、動態和手動三種類型,分別對應動態性能視圖V$PARAMETER中的TYPE類型IN FILE、READ ONLY、SYS和SESSION。

  1. 靜態參數(IN FILE):只能修改 ini 文件,修改后重啟DB才能生效,為系統級參數,生效后會影響所有的會話
  2. 動態參數(SYS和SESSION):ini 文件和內存同時可修改,修改后即時生效。
    • 動態參數又分為會話級和系統級。
      • SESSION: 會話級參數被修改后,新參數值只會影響新創建的會話
      • SYS: 系統級參數修改后,將會影響所有的會話
  3. 手動參數(READ ONLY):在運行過程中不能被修改,必須手動修改 dm.ini 參數文件,然后重啟才能生效。

參數查看

查看方式

  1. 直接查看參數文件,如:dm.ini

  2. 通過動態性能視圖v$PARAMETER,該視圖顯示ini參數和dminit建庫參數的類型及參數值信息(當前會話值、系統值及dm.ini文件中的值)

    select top 5 name, type, value, sys_value, file_value from v$parameter;
    

    其中,VALUE表示當前會話值,SYS_VALUE表示系統值,FILE_VALUE表示dm.ini文件中值。

  3. 通過動態性能視圖v$DM_INI,該視圖可以查看所有ini參數和dminit建庫參數信息。同時,也提供了分類的視圖查看相關的配置,如:V$DM_ARCH_INI

    select top 5 para_name, para_value from v$dm_ini;
    
    select * from V$DM_ARCH_INI;
    
  4. 通過相應函數查看參數值,其中SCOPE參數值為1:表示獲取INI 文件中配置參數的值,值為2:表示獲取內存中配置參數的值

    • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置參數的值類型為數值類型時使用該函數來獲取當前值
    • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置參數的值類型為浮點型時使用該函數來獲取當前值
    • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置參數的值為字符串類型時用該系統函數來獲取當前值
    • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):獲得當前會話的某個會話級 INI 參數的值

調整配置參數

修改參數的方式

  1. 直接編輯參數配置文件,如:dm.ini
  2. 通過SQL語句修改參數
  3. 通過系統函數修改參數

通過SQL語句修改參數

修改全局參數

通過ALTER SYSTEM語法修改靜態或動態(系統級、會話級)參數值,使修改之后的參數值能夠在全局范圍內起作用。

語法
ALTER SYSTEM SET '<參數名稱>'=<參數值> [DEFERRED] [MEMORY|BOTH|SPFILE];
  • DEFERRED: 只適用於動態參數。指定DEFERRED時,參數值延遲生效,對當前session不生效,只對新創建的會話生效;缺省為立即生效,即對當前會話和新創建的會話都生效。
示例
-- 設置當前系統動態、會話級參數 SORT_BUF_SIZE 參數值為 200
ALTER SYSTEM SET 'SORT_BUF_SIZE'=200 DEFERRED MEMORY;
修改會話級參數

通過 ALTER SESSION 語法修改動態會話級參數(即 TYPE 為 SESSION 的參數),使修改之后的 INI 參數值只對當前會話起作用,不會影響其他會話或系統的 INI 參數值。

語法
ALTER SESSION SET '<參數名稱>'=<參數值> [PURGE];
  • PURGE: 是否清理執行計划
示例
-- 設置當前會話的 HAGR_HASH_SIZE 參數值為 2000000
ALTER SESSION SET 'HAGR_HASH_SIZE'=2000000;

通過系統函數修改參數

在 DM 數據庫中,很多參數都是動態的,會自動響應各種負載,但是 DBA 仍然可以調用系統過程來改變 DM 實例的運行參數,從而獲得更佳的性能體驗。DBA 可以在 DM 數據庫運行過程中執行 SF_GET_PARA_VALUE 、 SF_GET_PARA_DOUBLE_VALUE 和SF_GET_PARA_STRING_VALUE 這三個函數來獲取系統的當前配置參數,並且可以使用SP_SET_PARA_VALUE 和 SP_SET_PARA_DOUBLE_VALUE 過程來修改靜態/動態配置參數。

查看配置參數當前值

其中,函數的SCOPE參數值為1:表示獲取INI 文件中配置參數的值,值為2:表示獲取內存中配置參數的值

  • SF_GET_PARA_VALUE(scope int, paraname varchar(256)) :配置參數的值類型為數值類型時,使用該函數來獲取當前值

    -- 獲得 dm.ini 文件中 BUFFER 參數值
    SELECT SF_GET_PARA_VALUE (1, 'BUFFER');
    
  • SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)):配置參數的值類型為浮點型時,使用該函數來獲取當前值

  • SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)):配置參數的值為字符串類型時,用該系統函數來獲取當前值

  • SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)):獲得整數類型的會話級 INI 參數的值

  • SF_GET_SESSION_PARA_DOUBLE_VALUE (paraname varchar(8187) ):獲得浮點型的會話級 INI 參數的值

修改參數當前值

SCOPE參數為1表示在內存和INI文件中都修改參數值,此時只能修改動態的配置參數。參數為 2 表示只在 INI 文件中修改配置參數,此時可用來修改靜態配置參數和動態配置參數。只有具有 DBA 角色的用戶才有權限調用SP_SET_PARA_VALUE,SP_SET_PARA_DOUBLE_VALUE和SF_SET_SYSTEM_PARA_VALUE。

  1. SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64):該過程用於修改整型靜態配置參數和動態配置參數
  2. SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),value double):該過程用於修改浮點型靜態配置參數和動態配置參數
  3. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64\double\varchar(256),deferred int, scope int64)
    該過程用於修改 int、double、varchar 類型的靜態配置參數或動態配置參數。當DEFERRED 參數值為 0 表示當前 session 修改的參數立即生效;值為 1 表示當前 session不生效,后續再生效,默認為 0。
  4. SP_SET_PARA_STRING_VALUE (scope int, ini_param_name varchar(256) ,value varchar(8187)):設置字符串型參數值
  5. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint):設置某個會話級 INI 參數的值,設置的參數值只對本會話有效
  6. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187)):重置某個會話級INI參數的值,使得這個INI參數的值和系統INI參數的值保持一致
  7. SF_SET_SQL_LOG (svrlog int,svrmsk varchar(1000)):設置服務器日志相關 INI 參數 SVR_LOG 和 SQL_TRACE_MASK
示例
-- 查看參數值
select SF_GET_PARA_VALUE(2,'SORT_BUF_SIZE');

select para_name,para_value from v$dm_ini where para_name='SORT_BUF_SIZE';

-- 設置當前系統動態、會話級參數 SORT_BUF_SIZE 參數值為 200,延遲生效
ALTER SYSTEM SET 'SORT_BUF_SIZE' =200 DEFERRED MEMORY;

-- 將 dm.ini 文件中 HFS_CACHE_SIZE 參數值設置為 320
SP_SET_PARA_VALUE (1,'HFS_CACHE_SIZE',320);
select SF_GET_PARA_VALUE(2,'HFS_CACHE_SIZE');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM