数据库的参数类型分为4种:
SQL> select distinct para_type from v$dm_ini ;
LINEID PARA_TYPE
---------- ---------
1 READ ONLY
2 SYS
3 IN FILE
4 SESSION
READ ONLY:只读参数,只能通过修改 dm .ini 文本文件修改此参数(需要重启数据库才能生效)。
SYS:动态(系统级)参数,既可以修改内存中的值,也可以修改参数文件中的值。 可以在数据库运行时修改。
SESSION动态(会话级)参数,既可以修改内存中的值,也可以修改参数文件中的值。
可以在数据库运行时修改,且可以只针对当前会话生效。
IN FILE静态参数,可以在数据库运行时修改, 只能修改配置文件中的值,不能修改内存中的值; 需要重启数据库才能生效。
修改数据库参数的方法:
1)配置dm.ini参数文件,重启生效
2)控制台工具修改,重启生效
3)系统函数修改
SQL> select name from v$ifun where name like 'SP_SET_PARA%';
LINEID NAME
---------- ------------------------
1 SP_SET_PARA_DOUBLE_VALUE
2 SP_SET_PARA_STRING_VALUE
3 SP_SET_PARA_VALUE
SP_SET_PARA_VALUE:修改整型参数。
SP_SET_PARA_DOUBLE_VALUE:修改浮点型参数
SP_SET_PARA_STRING_VALUE:修改字符型参数
参数说明:SCOPE修改范围( 0 memory 1 both 2 spfile)
案例:
查看参数COMPATIBLE_MODE
SQL> select name,type,sys_value,file_value from v$parameter where name like 'COMPATIBLE_MODE';
LINEID NAME TYPE SYS_VALUE FILE_VALUE
---------- --------------- ------- --------- ----------
1 COMPATIBLE_MODE IN FILE 0 0
修改静态参数
sp_set_para_value(2,'COMPATIBLE_MODE',1) ;
SQL> select name,type,sys_value,file_value from v$parameter where name like 'COMPATIBLE_MODE';
LINEID NAME TYPE SYS_VALUE FILE_VALUE
---------- --------------- ------- --------- ----------
1 COMPATIBLE_MODE IN FILE 0 1
修改动态参数
SQL> select name,type,sys_value,file_value from v$parameter where name like 'LIST_TABLE';
LINEID NAME TYPE SYS_VALUE FILE_VALUE
---------- ---------- ------- --------- ----------
1 LIST_TABLE SESSION 0 0
SQL> sp_set_para_value(1,'LIST_TABLE',1) ;
SQL> select name,type,sys_value,file_value from v$parameter where name like 'LIST_TABLE';
LINEID NAME TYPE SYS_VALUE FILE_VALUE
---------- ---------- ------- --------- ----------
1 LIST_TABLE SESSION 1 1
4)使用alter system set语句修改(可以用来修改静态和动态参数,但静态参数修改后需要重启数据库才能生效)
alter system set 'LIST_TABLE' 1 both |memory|spfile
both: 表示对内存中和参数文件都修改;
memory:修改内存中的值
spfile:修改参数文件中的值。
对于会话级动态参数,可以只针对当前会话生效:
alter session set 'LIST_TABLE' 0
达梦社区地址:https://eco.dameng.com