您好,登錄后才能下訂單哦!
在DM7中可以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和SP_SET_PARA_STRING_VALUE過程來修改靜態/動態配置參數.
SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64)該過程用于修改整型靜態配置參數和動態配置參數。SCOPE參數為1表示在內存和INI文件中都修改參數值,此時只能修改動態的配置參數。參數為2表示只在INI文件中修改配置參數,
此時可用來修改靜態配置參數和動態配置參數。當SCOPE等于1,試圖修改靜態配置參數時服務器會返回錯誤信息。只有具有DBA角色的用戶才有權限調用SP_SET _PARA_VALUE。
SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),alue double)該過程用于修改浮點型靜態配置參數和動態配置參數。SCOPE參數為1表示在內存和INI文件中都修改參數值,此時只能修改動態的配置參數。參數為2表示只在INI文件中修改配置參數,此時可用來修改靜態配置參數和動態配置參數。當SCOPE等于1,試圖修改靜態配置參數時服務器會返回錯誤信息。只有具有DBA角色的用戶才有權限調用SP_SET_PARA_DOUBLE_VALUE。
SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64\double\varchar(256), deferred int, scope int64)該過程用于修改系統整型、double、varchar的靜態配置參數或動態配置參數。DEFERRED參數,為0表示當前session修改的參數立即生效,為1表示當前session不生效,后續再生效,默認為0。SCOPE參數為1表示在內存和INI文件中都修改參數值,此時只能修改動態的配置參數。參數為2表示只在INI文件中修改配置參數,此時可用來修改靜態配置參數和動態配置參數。只有具有DBA角色的用戶才有權限調用SF_SET_SYSTEM_PARA_VALUE。
DM的動態INI參數分為系統級和會話級兩種級別。會話級參數在服務器運行過程中被修改時,之前創建的會話不受影響,只有新創建的會話使用新的參數值。
1. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint) 設置某個會話級INI參數的值,設置的參數值只對本會話有效。
2. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187)) 重置某個會話級INI參數的值,使得這個INI參數的值和系統INI參數的值保持一致。
3. SF_GET_SESSION_PARA_VALUE (paraname varchar(8187)) 獲得當前會話的某個會話級INI參數的值。
下面修改動態參數enable_auidt,scope=1同時修改內存和dm.ini文件
SQL> call sp_set_para_value(1,'ENABLE_AUDIT',1); DMSQL executed successfully used time: 87.566(ms). Execute id is 199. SQL> select sf_get_para_value(1,'ENABLE_AUDIT'); LINEID SF_GET_PARA_VALUE(1,'ENABLE_AUDIT') ---------- ----------------------------------- 1 1 used time: 10.131(ms). Execute id is 200.
查詢v$dm_ini視圖可以看到,當前dm.ini文件中也被修改了因為file_value=1
SQL> select * from v$dm_ini where para_name='ENABLE_AUDIT'; LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE ---------- ------------ ---------- --------- --------- ------- ---------- ---------- --------------------------------------------------------------------------------------- --------- 1 ENABLE_AUDIT 1 0 2 N 1 1 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit SYS used time: 201.366(ms). Execute id is 206.
查詢v$parameter視圖可以看到,當前內存中也被修改了因為sys_value=1
SQL> select * from v$parameter where name='ENABLE_AUDIT'; LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION ---------- ----------- ------------ ---- ----- --------- ---------- --------------------------------------------------------------------------------------- 1 385 ENABLE_AUDIT SYS 1 1 1 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit used time: 7.130(ms). Execute id is 207.
下面修改動態參數enable_auidt,scope=2只修改dm.ini文件
SQL> call sp_set_para_value(2,'ENABLE_AUDIT',0); DMSQL executed successfully used time: 29.707(ms). Execute id is 208. SQL> select sf_get_para_value(1,'ENABLE_AUDIT'); LINEID SF_GET_PARA_VALUE(1,'ENABLE_AUDIT') ---------- ----------------------------------- 1 0
查詢v$dm_ini視圖可以看到,當前dm.ini文件中也被修改了因為file_value=0,sess_value=1
SQL> select * from v$dm_ini where para_name='ENABLE_AUDIT'; LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE ---------- ------------ ---------- --------- --------- ------- ---------- ---------- --------------------------------------------------------------------------------------- --------- 1 ENABLE_AUDIT 1 0 2 N 1 0 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit SYS used time: 5.207(ms). Execute id is 209.
查詢v$parameter視圖可以看到,當前內存中也被修改了因為sys_value=1
SQL> select * from v$parameter where name='ENABLE_AUDIT'; LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION ---------- ----------- ------------ ---- ----- --------- ---------- --------------------------------------------------------------------------------------- 1 385 ENABLE_AUDIT SYS 1 1 0 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit
SQL> call sp_set_para_value(1,'SQL_TRACE_MASK',2); call sp_set_para_value(1,'SQL_TRACE_MASK',2); [-3503]:Invalid procedure parameter. used time: 115.071(ms). Execute id is 0.
這里報錯了,是因為SQl_TRACE_MASK參數值為字符串類型,如是可以使用以下函數來執行
SQL> call sp_set_para_string_value(1,'SQL_TRACE_MASK','2'); DMSQL executed successfully used time: 377.128(ms). Execute id is 194.
修改成功后可以執行以下函數來驗證是否成功
SQL> select sf_get_para_string_value(1,'SQL_TRACE_MASK'); LINEID SF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK') ---------- -------------------------------------------- 1 2 used time: 246.480(ms). Execute id is 198.
如果想要簡單可以直接使用sf_set_system_para_value來修改參數就不用管參數的類型
SQL> call sf_set_system_para_value('SQL_TRACE_MASK','1',0,1); DMSQL executed successfully used time: 23.178(ms). Execute id is 212. SQL> select sf_get_para_string_value(1,'SQL_TRACE_MASK'); LINEID SF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK') ---------- -------------------------------------------- 1 1 used time: 5.660(ms). Execute id is 214.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。