Kingbase 服务器运行参数分类
说明:
KingbaseES 数据库中,服务器运行参数分为多种类型,有些是系统初始化时设置,有些可以在系统运行时设置,有些可以在运行session中进行直接设置。下面将对服务器运行参数进行详细介绍。
一 系统配置参数:
kingbase数据库系统配置参数,可以在$KINGBASE_DATA 目录下的kingbase.conf配置文件中设置。
kingbase进入系统后,可以通过sys_settings视图查看当前数据库的全部配置参数(全部可配置参数,如未在kingbase.conf中设置,显示参数配置默认值)。
test=# \d sys_settings
视图 "sys_catalog.sys_settings"
栏位 | 类型 | 校对规则 | 可空的 | 预设
-----------------+---------+----------+--------+------
name | text | | |
setting | text | | |
unit | text | | |
category | text | | |
short_desc | text | | |
extra_desc | text | | |
context | text | | |
vartype | text | | |
source | text | | |
min_val | text | | |
max_val | text | | |
enumvals | text[] | | |
boot_val | text | | |
reset_val | text | | |
sourcefile | text | | |
sourceline | integer | | |
pending_restart | boolean | | |
查看具体参数值方式:
1.查询视图
test=# select name ,setting from sys_settings where name = 'database_mode' ;
name | setting
---------------+---------
database_mode | oracle
(1 行记录)
2.通过show命令查看
test=# show database_mode ;
database_mode
---------------
oracle
(1 行记录)
二 参数设置分类:
Kingbase数据库的配置参数根据分类不同,设置的方式和方法也不一样。可以通过查询sys_settings表查看参数配置分类信息。
test=# select distinct context from sys_settings order by context ;
context
-------------------
backend
internal
kingbase
sighup
superuser
superuser-backend
user
(7 行记录)
三 参数分类说明:
internal:
这些设置不能被直接修改,它们反映了内部决定的值。某些可能在使用不同配置选项重建系统时或者改变initdb的选项时可以调整。
kingbase:
这些设置只能在服务器启动时应用,因此任何修改都需要重启服务器。这些设置的值通常都存储在kingbase.conf文件中,或者在启动服务器时通过命令行传递。当然,具有更低context类型的设置也可以在服务器启动时间被设置。
sighup:
对于这些设置的修改可以在kingbase.conf中完成并且不需要重启服务器。发送一个SIGHUP信号给kingbase会导致它重新读取kingbase.conf并应用修改。Kingbase将会把SIGHUP信号传递给它的孩子进程,这样它们也会获得新的值。
superuser-backend:
对于这些设置的更改可以在kingbase.conf中进行而无需重启服务器。也可以在连接请求包(例如通过libkci 的KINGBASE_OPTIONS环境变量)中为一个特定的会话设定它们,但是只有在连接用户是超级用户时才能这样做。如果,在会话启动后这些设置就不会改变。如果你在kingbase.conf改变了它们, 向 kingbase 发送一个SIGHUP信号让 kingbase 重新读取kingbase.conf。新的值将只会影响后续启动的会话。
backend:
对于这些设置的修改可以在kingbase.conf中完成并且不需要重启服务器。它们也可以在一个连接请求包(例如,通过libkci的KINGBASE_OPTIONS环境变量)中为一个特定会话设置,任何用户都可以为这个会话做这种修改。然而,这些设置在会话启动后永不变化。如果你在kingbase.conf中修改它们,可以向kingbase发送一个SIGHUP信号让它重读kingbase.conf。新值只会影响后续启动的会话。
superuser:
这些设置可以从kingbase.conf设置,或者在会话中用SET命令设置。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。
user:
这些设置可以从kingbase.conf设置,或者在会话中用SET命令设置。任何用户都被允许修改它们的会话本地值。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。
四 配置示例:
internal类型系统参数
这些设置不能被直接修改,它们反映了内部决定的值。
例如:enable_ci 大小写敏感设置,只能通过initdb在初始化数据库时设置,设置后不能再进行修改。
./initdb -Usystem -D ../data --enable_ci
kingbase类型系统参数
只能在服务器启动时应用,因此任何修改都需要重启服务器。
例如: archive_mode 归档模式只能通过重启数据库方式进行修改。
sighup类型系统参数
可以配置kingbase.conf完成后,不需要重启数据库,通过重新加载配置的方式生效。
test=# show max_wal_size ;
max_wal_size
--------------
1GB
(1 行记录)
test=# select sys_reload_conf() ;
sys_reload_conf
-----------------
t
(1 行记录)
test=# show max_wal_size ;
max_wal_size
--------------
512MB
(1 行记录)
superuser类型系统参数
session级参数,可以直接在会话中设置生效,但只能超级用户可以设置。
user类型系统参数
session级参数,可以直接在会话中设置生效。
test=# show work_mem ;
work_mem
----------
4MB
(1 行记录)
test=# set work_mem = 10240 ;
SET
test=# show work_mem ;
work_mem
----------
10MB
(1 行记录)
superuser-backend类型系统参数
只会对后续的登录session起作用,但只能超级用户可以设置。
backend类型系统参数
只会对后续的登录session起作用。
1.kingbase.conf中设置参数值。
ignore_system_indexes = on
2.重更新加载配置
[kingbase@node128 bin]$ ./sys_ctl -D ../data reload
server signaled
3.查看配置生效
test=# show ignore_system_indexes ;
ignore_system_indexes
-----------------------
off
(1 行记录)
test=# \q
[kingbase@node128 bin]$ ./ksql -Usystem -dtest
ksql: 警告: using index "pg_toast_2618_index" despite IgnoreSystemIndexes
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=# show ignore_system_indexes ;
ignore_system_indexes
-----------------------
on
(1 行记录)