KingBase服务器参数配置(Kylin)
主配置文件/KingbaseES/V8/data/kingbase.conf
# 可通过find查找 [默认存储在database cluseter目录中]
find / -name kingbase.conf
辅助参数文件kingbase.auto.conf
# 可通过find查找 [默认存储在database cluseter目录中]
find / -name kingbase.auto.conf
查看当前会话的参数值
select * from sys_settings where name="参数"
sys_settings参数
字段描述name运行时配置参数名setting参数当前值unit参数的隐式单位(8KB 16MB s min kb ms)category参数的逻辑分类short_dec参数的简短描述extra_desc附加参数的详细描述context要求设置此参数值的上下文min_val参数的最小允许值(仅非数字值有效)max_val参数的最大允许值(仅非数字值有效)enumvals一个枚举参数的允许值(仅非数字值有效)reset_val当前会话中,RESET将会设置的参数值sourcefile当前值所在配置文件 在配置文件中使用include指令时有用sourceline当前值在配置文件中的行号pending_restart参数修改后是否需要重启才能生效(t:重启 f:不需要重启)
kingabase.conf全局修改参数
编辑kingbase.conf文件,修改相关参数的值通过以下方法控制KES重新读取kingbase.conf文件并让参数修改值生效
不需要重启的参数,修改完kingbase后需要执行sys_ctl reload重载需要重启的参数,在修改完kingbase后需要执行sys_ctl restart重启服务
ALTER SYSTEM全局修改参数
只会删除辅助参数文件中配置,不会删除主配置文件中配置
语法说明ALTER SYSTEM SET parameter = value ;将某参数修改成某值(值为数字不需要引号)ALTER SYSTEM SET parameter = ‘value’;将某参数修改成某值(值为非数字需要引号)ALTER SYSTEM SET parameter T0 DEFAYLT;还原指定参数到初始值ALTER SYSTEM SET parameter;还原指定参数到初始值ALTER SYSTEM SET ALL;还原所有参数到初始值
示例
使用ALTER SYSTEM全局修改参数
ksql test system # 使用system用户登陆test数据库
# 进入数据库对话
show shared_buffers; # 查看shared_buffers参数值
alter system set shared_buffers='1024MB'; # 修改shared_buffers值
show shared_buffers; # 再次查看参数值
cat /data/kingbase.auto.conf # 查看辅助参数文件
# 查看主配置文件
cat /data/kingbase.conf
会话级别修改参数
# 只在当前会话生效
set work_mem='8MB'; # 在当前会话中修改
事务级别修改参数
begin; # 开启事务
set local work_mem='8MB'; # 修改
commit; # 提交事务
限制参数在局部范围生效
以下三种设置参数的方式,优先级分别为低、中、高,优先级递增
为特定数据库的所有用户设置参数
# 为test数据库所有连接设置work_mem为16mb [针对数据库覆盖其全局配置]
ALTER DATABASE test SET work_mem='16MB';
为数据库中的某个特定用户设置参数
# 为system用户设置work_mem为32mb [为用户指定一个值来覆盖全局设置和数据库设置]
ALTER USER system SET work_mem='16MB';
为某个特定用户连接到特定的数据库设置参数
# 为用户system在数据库test中设置work_mem为8mb
ALTER ROLE user01 IN DATABASE test SET work_mem='8MB';
查看当前生效参数值的设置方式
SELECT source FROM sys_settings WHERE name="work_mem";
user:用户级别database:数据库级别database user:数据库级别和用户级别
判断修改参数后需要重启还是重载
查看配置文件中对应参数的备注
grep ~port /data/kingbase.conf
# restart:重启 reload:重载
通过pending_restart字段
SELECT name,pending_restart FROM sys_settings WHERE name='port';
# pending_restart = t :修改参数后需要重启实例才能生效
通过context字段
SELECT name,context FROM sys_settings WHERE name='port';
主辅参数配置文件区别
文件默认内容不同
kingbase.conf文件创建成功之后,里面有kingbase依赖的默认配置文件参数,如最大连接数、共享缓存区等kingbase.conf文件的内容默认为空
文件修改方式不同
kingbase.conf中的内容只能使用文本编辑修改kingbase.auto.conf中的内容可以有ALTER SYSTEM命令修改
生效方式
两个文件中的参数都需重启实例或重载参数生效
主配置文件优先级低于辅助参数文件
同一个参数在两个文件中都存在时,最终以kingbase.auto.conf中的设置为准使用alter system reset设置参数恢复到默认值,kingbase.auto.conf文件中的该参数配置会被删除,重新引用kingbase.conf文件中的参数设置