数据库服务器配置
如何查看参数
数据库共有多少个参数?
通过数据字典sys_settings视图可以统计当前数据库所有支持的参数。
查看当前会话的参数值
查看全部参数
方法一:使用show all
方法二:使用sys_settings
查看具体参数
方法1——使用”show 参数名”。
方法2——使用sys_settings视图
如何修改参数
编辑kingbase.conf全局修改参数
通过修改kingbase.conf文件,修改参数值,然后重新加载(reload)或者重启(restart)。
使用ALTER SYSTEM全局修改参数
查看shared_buffers参数当前的值(显示默认值128MB)
使用ALTER SYSTEM修改shared_buffers参数为1024MB
再次查看shared_buffers参数当前的值(还是显示默认的128MB)
其实这个时候修改的参数值已经写入/KingbaseES/V8/data/kingbase.auto.conf文件中(ALTER SYSTEM命令会将修改的值存入到这个文件中)如果被这个命令搞得一团糟,只需删除这个文件, kingbase.auto.conf配置文件要比kingbase.conf优先级要高。
需要重启金仓数据库
sys_ctl restart -D /KingbaseES/V8/data
再次查看发现已经修改成功
ALTER SYSTEM其他语法格式
使用set命令在会话级修改参数
在当前会话中查看work_mem参数的值(显示为默认值4MB)。
使用set来修改当前会话work_mem参数为8MB。
在当前会话中再次查看work_mem参数的值
退出当前会话再次查看(又恢复默认值)
使用set命令在事务级修改参数
使用set命令时添加local关键字,修改的参数只在当前事务内有效。
查看work_mem参数的值(显示默认值4MB)。
显示开启事务并设置work_mem为8MB。
查看work_mem参数的值(显示为修改后的值8MB)
提交事务
再次查看work_mem参数的值(显示为默认值4MB)
使用reset恢复参数到默认值
1.在会话中修改work_mem参数为8MB
2.查看sys_settings字典的reset_val值(reset_val表示参数reset后的默认值)。
3.查看work_mem参数的值。
4.使用reset 恢复参数默认值。
5.在当前会话中查看work_mem参数值
6.使用reset all 恢复所有参数的默认值。
设置参数限制在局部范围内生效
1.为特定的数据库里的所有的用户设置参数
例:为test数据库所有的连接设置work_mem为16MB
2.为数据库中的某个特定用户设置参数
例:为system用户,设置work_mem为32MB
3.为某个特定用户连接到特定的数据库设置
例:为用户system在数据库test中设置work_mem为8M
注意:
1.优先级递增,如果都设置了,以第三个为准。
2.只有当开始一个新的数据库会话时,用ALTER DATABASE和ALTER ROLE设置的值才会被应用。它们会覆盖从配置文件或服务器命令行获得的值,并且作为该会话后续的默认值。
4.查看当前生效的参数值的设置方式
查看你当前的参数值是从何处指定,可以通过查询sys_settings视图的source字段获取。
(1)如果设置了database级别的参数,那么查询结果参考如下:
- 如果设置了user01角色在test数据库级别的参数,那么查询结果参考如下:
通过sys_settings视图的pending_restart判断
查看shared_buffers参数当前值
修改shared_buffers参数
加载参数
查询sys_settings视图的pending_restart列判断是否要重启
注意:pending_restart=t意味着此参数修改后要重启实例才能生效。