DM7修改数据库参数
在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>callsp_set_para_value(1,'ENABLE_AUDIT',1);DMSQLexecutedsuccessfullyusedtime:87.566(ms).Executeidis199.SQL>selectsf_get_para_value(1,'ENABLE_AUDIT');LINEIDSF_GET_PARA_VALUE(1,'ENABLE_AUDIT')---------------------------------------------11usedtime:10.131(ms).Executeidis200.
查询v$dm_ini视图可以看到,当前dm.ini文件中也被修改了因为file_value=1
SQL>select*fromv$dm_iniwherepara_name='ENABLE_AUDIT';LINEIDPARA_NAMEPARA_VALUEMIN_VALUEMAX_VALUEMPP_CHKSESS_VALUEFILE_VALUEDESCRIPTIONPARA_TYPE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------1ENABLE_AUDIT102N11FlagForAllowingAudit,0:noaudit1:normalaudit2:normalauditandrealtimeauditSYSusedtime:201.366(ms).Executeidis206.
查询v$parameter视图可以看到,当前内存中也被修改了因为sys_value=1
SQL>select*fromv$parameterwherename='ENABLE_AUDIT';LINEIDIDNAMETYPEVALUESYS_VALUEFILE_VALUEDESCRIPTION----------------------------------------------------------------------------------------------------------------------------------------------------1385ENABLE_AUDITSYS111FlagForAllowingAudit,0:noaudit1:normalaudit2:normalauditandrealtimeauditusedtime:7.130(ms).Executeidis207.
下面修改动态参数enable_auidt,scope=2只修改dm.ini文件
SQL>callsp_set_para_value(2,'ENABLE_AUDIT',0);DMSQLexecutedsuccessfullyusedtime:29.707(ms).Executeidis208.SQL>selectsf_get_para_value(1,'ENABLE_AUDIT');LINEIDSF_GET_PARA_VALUE(1,'ENABLE_AUDIT')---------------------------------------------10
查询v$dm_ini视图可以看到,当前dm.ini文件中也被修改了因为file_value=0,sess_value=1
SQL>select*fromv$dm_iniwherepara_name='ENABLE_AUDIT';LINEIDPARA_NAMEPARA_VALUEMIN_VALUEMAX_VALUEMPP_CHKSESS_VALUEFILE_VALUEDESCRIPTIONPARA_TYPE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------1ENABLE_AUDIT102N10FlagForAllowingAudit,0:noaudit1:normalaudit2:normalauditandrealtimeauditSYSusedtime:5.207(ms).Executeidis209.
查询v$parameter视图可以看到,当前内存中也被修改了因为sys_value=1
SQL>select*fromv$parameterwherename='ENABLE_AUDIT';LINEIDIDNAMETYPEVALUESYS_VALUEFILE_VALUEDESCRIPTION----------------------------------------------------------------------------------------------------------------------------------------------------1385ENABLE_AUDITSYS110FlagForAllowingAudit,0:noaudit1:normalaudit2:normalauditandrealtimeaudit
SQL>callsp_set_para_value(1,'SQL_TRACE_MASK',2);callsp_set_para_value(1,'SQL_TRACE_MASK',2);[-3503]:Invalidprocedureparameter.usedtime:115.071(ms).Executeidis0.
这里报错了,是因为SQl_TRACE_MASK参数值为字符串类型,如是可以使用以下函数来执行
SQL>callsp_set_para_string_value(1,'SQL_TRACE_MASK','2');DMSQLexecutedsuccessfullyusedtime:377.128(ms).Executeidis194.
修改成功后可以执行以下函数来验证是否成功
SQL>selectsf_get_para_string_value(1,'SQL_TRACE_MASK');LINEIDSF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK')------------------------------------------------------12usedtime:246.480(ms).Executeidis198.
如果想要简单可以直接使用sf_set_system_para_value来修改参数就不用管参数的类型
SQL>callsf_set_system_para_value('SQL_TRACE_MASK','1',0,1);DMSQLexecutedsuccessfullyusedtime:23.178(ms).Executeidis212.SQL>selectsf_get_para_string_value(1,'SQL_TRACE_MASK');LINEIDSF_GET_PARA_STRING_VALUE(1,'SQL_TRACE_MASK')------------------------------------------------------11usedtime:5.660(ms).Executeidis214.
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。