KingbaseES 数据库中,服务器运行参数配和需改有多种方式和注意事项,根据不同的分类配置,修改配置方式不同。关于服务器参数分类请参照【KingbaseES 服务器运行参数分类】介绍。
系统配置参数修改:
KingbaseES中参数名大小写是不敏感的。可以通过以下方式修改设置。
1.系统参数可以直接编辑【kingbase.conf】文件,是设置配置参数的最基本的方式。
可以设置除internal配置类型之外的全部参数类型(kingbase, sighup, user, superuser, backend, superuser-backend)。
2.还可以通过系统命令方式进行配置修改。
ALTER SYSTEM 命令提供了一种改变全局默认值的从SQL可访问的方法,等效于直接编辑kingbase.conf。
test=# show work_mem ;
work_mem
----------
4MB
(1 行记录)
test=# alter system set work_mem = 10240;
ALTER SYSTEM
test=# select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 行记录)
test=# show work_mem ;
work_mem
----------
10MB
(1 行记录)
ALTER DATABASE 命令允许针对一个数据库覆盖其全局设置。
test=# show work_mem ;
work_mem
----------
1MB
(1 行记录)
test=# alter database test set work_mem = 4096 ;
ALTER DATABASE
test=# show work_mem ;
work_mem
----------
1MB
(1 行记录)
test=# \q
[kingbase@node128 ~]$ ksql -Usystem -dtest
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=# show work_mem ;
work_mem
----------
4MB
(1 行记录)
ALTER ROLE 命令允许用用户指定的值来覆盖全局设置和数据库设置。
demo=# show work_mem;
work_mem
----------
10MB
(1 行记录)
demo=# alter role system in database demo set work_mem = 4096;
ALTER ROLE
demo=# show work_mem;
work_mem
----------
10MB
(1 行记录)
demo=# \q
[kingbase@node128 ~]$ ksql -Usystem -ddemo
ksql (V8.0)
输入 "help" 来获取帮助信息.
demo=# show work_mem ;
work_mem
----------
4MB
(1 行记录)
可以设置除internal和kingbase配置类型之外的全部参数类型(sighup, user, superuser, backend, superuser-backend)。
3.通过set命令或者set_config函数方式修改会话本地配置项。
可以设置除internal和kingbase配置类型之外的全部参数类型(sighup, user, superuser, backend, superuser-backend)。
[kingbase@node128 ~]$ ksql -Usystem -dtest
ksql (V8.0)
输入 "help" 来获取帮助信息.
test=# show work_mem ;
work_mem
----------
4MB
(1 行记录)
test=# set work_mem = 10240;
SET
test=# show work_mem ;
work_mem
----------
10MB
(1 行记录)
test=# select set_config('work_mem', 20480 ,false);
set_config
------------
20MB
(1 行记录)
test=# show work_mem ;
work_mem
----------
20MB
(1 行记录)
系统配置参数查看:
KingbaseES提供sys_file_settings表,提供了服务器配置文件内容的概要。
test=# select * from sys_file_settings where applied = true ;
sourcefile | sourceline | seqno | name | setting | applied | error
-----------------------------------------+------------+-------+----------------------------+-------------------+---------+-------
/home/kingbase/ES/V8/data/kingbase.conf | 59 | 1 | listen_addresses | * | t |
/home/kingbase/ES/V8/data/kingbase.conf | 63 | 2 | port | 54321 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 64 | 3 | max_connections | 100 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 91 | 4 | password_encryption | scram-sha-256 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 121 | 5 | shared_buffers | 128MB | t |
/home/kingbase/ES/V8/data/kingbase.conf | 140 | 6 | dynamic_shared_memory_type | posix | t |
/home/kingbase/ES/V8/data/kingbase.conf | 224 | 7 | max_wal_size | 1GB | t |
/home/kingbase/ES/V8/data/kingbase.conf | 225 | 8 | min_wal_size | 80MB | t |
/home/kingbase/ES/V8/data/kingbase.conf | 420 | 9 | log_destination | stderr | t |
/home/kingbase/ES/V8/data/kingbase.conf | 426 | 10 | logging_collector | on | t |
/home/kingbase/ES/V8/data/kingbase.conf | 432 | 11 | log_directory | sys_log | t |
/home/kingbase/ES/V8/data/kingbase.conf | 540 | 12 | log_timezone | Asia/Shanghai | t |
/home/kingbase/ES/V8/data/kingbase.conf | 652 | 13 | datestyle | iso, ymd | t |
/home/kingbase/ES/V8/data/kingbase.conf | 653 | 14 | intervalstyle | sql_standard | t |
/home/kingbase/ES/V8/data/kingbase.conf | 654 | 15 | timezone | Asia/Shanghai | t |
/home/kingbase/ES/V8/data/kingbase.conf | 668 | 16 | lc_messages | zh_CN.UTF-8 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 670 | 17 | lc_monetary | zh_CN.UTF-8 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 671 | 18 | lc_numeric | zh_CN.UTF-8 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 672 | 19 | lc_time | zh_CN.UTF-8 | t |
/home/kingbase/ES/V8/data/kingbase.conf | 675 | 20 | default_text_search_config | pg_catalog.simple | t |
/home/kingbase/ES/V8/data/kingbase.conf | 766 | 22 | ora_input_emptystr_isnull | on | t |
KingbaseES提供sys_settings表,提供系统参数配置的全部参数(或者使用 show all命令查看全部参数)。其中包含sys_file_settings表中已经设置的系统参数值,其他配置项为系统默认配置项和默认值。
例如:
test=# select * from sys_settings where name = 'port';
-[ RECORD 1 ]---+----------------------------------------
name | port
setting | 54321
unit |
category | 联接和认证 / 联接设置
short_desc | 设置服务器监听的 TCP 端口号.
extra_desc |
context | kingbase
vartype | integer
source | configuration file
min_val | 1
max_val | 65535
enumvals |
boot_val | 54321
reset_val | 54321
sourcefile | /home/kingbase/ES/V8/data/kingbase.conf
sourceline | 63
pending_restart | f
Kingbase系统中,可以使用show命令或current_setting函数查看具体参数的当前配置值:
test=# show database_mode ;
database_mode
---------------
oracle
(1 行记录)
test=# select current_setting('database_mode');
current_setting
-----------------
oracle
(1 行记录)
不同模式下参数差异
KingbaseES 在pg模式下,以下参数默认为off状态,且禁止将其打开。
ora_forbid_func_polymorphism 同模式下不能创建同名的函数或存储过程
ora_input_emptystr_isnull 将空字符串转换为null。
ora_numop_style 数字和字符串的操作符兼容oracle关于整数和字符串的操作符。
ora_statement_level_rollback 指定了plsql中是否启用语句级回滚
ora_style_nls_date_format 日期时间的隐式输入与输出字符串格式是否使用参数NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT和NLS_TIMESTAMP_TZ_FORMAT的配置。 更多信息,参见https://help.kingbase.com.cn/v8/index.html