关键字:
KingbaseES、配置参数
1.什么是配置参数?
数据库系统通常使用配置文件来配置参数。配置文件是一种文本文件,其中包含数据库系统的各种设置和参数。通过修改配置文件照中各项参数,用户可以自定义数据库的行为和性能。
2.KES参数名称和值
所有参数名都是大小写不敏感的。每一个参数都可以接受五种类型之一的值:布尔,字符串,整数,浮点数和枚举。
3.KES配置文件
主参数配置文件
kingbase.conf,默认存放在集群数据目录下
子参数文件(参数文件名由管理员自定义)
- 当引用的子配置文件不存在时,使用include将认为这是一个错误而导致服务启动失败。
- 当引用的配置文件不存在时,使用include_if_exists仅记录一条错误信息,并继续启动服务。
- 引用其它目录下所有后缀为.conf的配置文件(按文件名顺序处理)。
辅助参数文件
kingbase.auto.conf,默认存放在集群数据目录下,初始为空文件。
4.配置参数查看
配置参数支持数量:
配置参数查看:
- show all;
- select * from sys_settings;
- show 参数名;
5. 配置参数修改
通过kingbase.conf全局修改参数
对于不需要重启的参数,修改后,需要执行sys_ctl reload
对于需要重启的参数,修改后,需要执行sys_ctl restart
通过ALTER SYSTEM全局修改参数
修改后,依然显示原有设置的值,需要重启才能生效(哪些需要重启,如何查看是否需要重启,参考下述说明)。
同时在辅助配置文件写入该参数修改的值。
通过SET命令在会话级修改参数
只对当前会话有效,如下
通过SET命令在事物级修改参数
事物提交后,配置参数是原有值。
通过reset恢复参数到默认值
- reset 参数名;
- reset all;
通过kingbase传递参数
kingbase -D /home/kingbase_data -p 59333 -c checkpoint_timeout='3600'
设置参数限制在局部范围有效
1、为特定的数据里面所有的用户设置参数
2、为数据库中某一个特定用户设置参数
3为某一个特定用户连接到特定的数据库设置参数
注意:以上三种局部参数设置方法,优先级递增,如设置了1,2,3,那么以3为准。
6. 重启服务?
配置参数修改后,是否需要重启服务,通过以下方法判断
1. 文件说明
2. SQL查看
pending_restart为t,需要重启服务。
- 通过sys_settings中context字段判断
- kingbase:需要重启服务。
- backend:无需重启服务。但新配置的值只会出现在之后的连接中,在已有的连接中,这些值不会改变。
- user:普通用户可以通过SET命令来更改配置参数,无需重启服务,改变时只会影响到自身的会话,不影响到其他用户。
- internal:内部参数,无法修改,除非重新initdb。
- sighup:无需重启,只需要向KES主进程发一个sighup信号,让其重新读配置文件即可。
- superuser:由超级用户修改,改变时,只会影响自身的session,不会影响到其他用户。
- superuser-backend:由超级用户修改,无需重启服务。但新配置的值只会出现在之后的连接中,在已有的连接中,这些值不会改变。
7.配置参数生效优先级
配置参数修改涉及文件或者命令行参数
- kingbase.conf(包含子配置文件)
- kingbase.auto.conf
- kingbase –c
优先级从高到底
kingbase –c > kingbase.auto.conf > kingbase.conf
- 若同一个参数在同一个文件中多次出现,以最后一个有效。
- 同一个参数出现在不同文件或kingbase -c中,以最高优先级的生效。