金仓数据库KingbaseES参数设置介绍

您所在的位置:网站首页 cass80地籍参数设置命令 金仓数据库KingbaseES参数设置介绍

金仓数据库KingbaseES参数设置介绍

2024-06-29 09:09:31| 来源: 网络整理| 查看: 265

参数级别介绍 KingbaseES配置参数共包括以下七个级别(由低到高),其中参数属于sighup及其后续级别的可由用户设置: 参数级别 级别说明 internal 仅支持内部使用 kingbase 仅支持启动时设置 sighup 支持修改配置文件后通过SIGHUP信号更新参数 superuser-backend 超级用户的后台级参数 backend 普通用户的后台级参数 superuser 支持超级用户在线修改的参数 user 支持普通用户在线修改的参数 查看参数以与所属级别的命令如下: kingbase=# SELECT name,context,short_desc FROM sys_settings ORDER BY context,name; server_version_num | internal | Shows the server version as an integer. ssl_library | internal | Name of the SSL library. wal_block_size | internal | Shows the block size in the write ahead log. wal_segment_size | internal | Shows the size of write ahead log segments. allow_system_table_mods | kingbase | Allows modifications of the structure of system tables. archive_mode | kingbase | Allows archiving of WAL files using archive_command. autovacuum_freeze_max_age | kingbase | Age at which to autovacuum a table to prevent transaction ID wraparound. autovacuum_max_workers | kingbase | Sets the maximum number of simultaneously running autovacuum worker processes. autovacuum_multixact_freeze_max_age | kingbase | Multixact age at which to autovacuum a table to prevent multixact wraparound. bonjour | kingbase | Enables advertising the server via Bonjour. bonjour_name | kingbase | Sets the Bonjour service name. cluster_name | kingbase | Sets the name of the cluster, which is included in the process title. config_file | kingbase | Sets the server’s main configuration file. data_directory | kingbase | Sets the server’s data directory. data_sync_retry | kingbase | Whether to continue running after a failure to sync data files. dynamic_shared_memory_type | kingbase | Selects the dynamic shared memory implementation used. event_source | kingbase | Sets the application name used to identify KingbaseES messages in the event log. external_pid_file | kingbase | Writes the kingbase PID to the specified file. hba_file | kingbase | Sets the server’s “hba” configuration file. hot_standby | kingbase | Allows connections and queries during recovery. huge_pages | kingbase | Use of huge pages on Linux or Windows. ident_file | kingbase | Sets the server’s “ident” configuration file. jit_provider | kingbase | JIT provider to use. listen_addresses | kingbase | Sets the host name or IP address(es) to listen to. –More–

参数优先级别 KingbaseES 参数配置的方式可以使用配置文件 、数据库服务启动命令、系统命令等方式进行配置,不同的配置方式具备不同的优先级。 下文将按照优先级(数值越大,优先级别越高)从低到高进行介绍参数的10种设置方式。在线配置参数时,具备权限的用户只支持对"sighup"级别及以后的参数进行设置。 1 配置文件 操作方式: 通过编辑器直接操作配置文件kingbase.conf,实现新增、修改、删除配置参数

生效方式:

重启服务生效;通过调用函数sys_reload_conf()重新加载配置文件的方式。 示例: 1)编辑配置文件kingbase.conf,新增如下配置: work_mem = 6MB 2)在命令行工具ksql下重新加载配置文件,然后查询如下: kingbase=# show work_mem; work_mem

4MB (1 row)

kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

6MB (1 row) 2 ALTER SYSTEM命令 操作方式: alter system reset all –-删除kingbase.auto.conf中全部的参数配置 alter system reset … –-删除kingbase.auto.conf中给定的参数配置 alter system set … = default–-删除kingbase.auto.conf中给定的参数配置 alter system set … = value –-新增给定的参数配置到kingbase.auto.conf

生效方式:

重启服务生效;通过调用函数sys_reload_conf()重新加载配置文件的方式。 示例: kingbase=# alter system set work_mem = ‘7MB’; ALTER SYSTEM kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

7MB (1 row)

3 启动数据库服务时指定参数 操作方式: sys_ctl start启动数据库服务时应用-o选项指定参数的配置

生效方式: 重启服务生效

示例: 1)在Linux终端启动服务:sys_ctl start -o “-c work_mem=‘8MB’” 2)启动成功后,在命令行工具ksql下查询参数如下: kingbase=# show work_mem; work_mem

8MB (1 row) 4 ALTER ALL ROLE命令 操作方式: ALTER ROLE ALL SET … = value

生效方式:

重启服务生效;打开新的连接会话时配置参数生效。 示例: 1)在命令行工具ksql下执行如下命令: kingbase=# alter role all set work_mem=‘9MB’; ALTER ROLE kingbase=# show work_mem; work_mem 8MB (1 row) 2)退出ksql当前连接,重新连接后执行查询语句,显示如下: kingbase=# show work_mem; work_mem

9MB (1 row) 5 ALTER DATABASE … SET命令 操作方式: ALTER DATABASE db SET … = value

生效方式:

重启服务生效;打开新的连接会话时配置参数生效。 示例: 1)在命令行工具ksql下执行如下命令: kingbase=# alter database test set work_mem=‘10MB’; ALTER DATABASE kingbase=# show work_mem; work_mem 9MB (1 row) 2)退出ksql当前连接,重新连接后执行查询语句,显示如下: kingbase=# show work_mem; work_mem

10MB (1 row) 6 ALTER ROLE … SET命令 操作方式: ALTER ROLE role SET … = value

生效方式:

重启服务生效;打开新的连接会话时配置参数生效。 示例: 1)在命令行工具ksql下执行如下命令: kingbase=# alter role kingdb set work_mem=‘11MB’; ALTER ROLE kingbase=# show work_mem; work_mem 10MB (1 row) 2)退出ksql当前连接,重新连接后执行查询语句,显示如下: kingbase=# show work_mem; work_mem

11MB (1 row) 7 会话级参数设置 操作方式: SET [SESSION|LOCAL] … = value

生效方式: 立即生效。

示例: kingbase=# set work_mem =‘12MB’; SET kingbase=# show work_mem; work_mem

12MB (1 row) 8 事务中会话级参数设置 操作方式: 在事务语句中使用会话级参数设置命令。

生效方式: 立即生效。

示例: kingbase=# set work_mem=‘13MB’; SET kingbase=# begin; BEGIN kingbase=# show work_mem; work_mem

13MB (1 row)

kingbase=# set work_mem=‘14MB’; SET kingbase=# show work_mem; work_mem

14MB (1 row)

kingbase=# rollback; ROLLBACK kingbase=# show work_mem; work_mem

13MB (1 row) 9 函数中会话级参数设置 操作方式: 在函数中使用会话级参数设置语句

生效方式: 参数在函数内有效,函数调用完成后失效

示例: kingbase=# create or replace function kdb_func() returns void as KaTeX parse error: Can't use function '$' in math mode at position 12: kingbase$̲# declare ki… language plsql strict set work_mem=‘15MB’; CREATE FUNCTION kingbase=# select kdb_func(); NOTICE: 15MB kdb_func (1 row) kingbase=# show work_mem; work_mem

13MB (1 row) 10 语句中的暗示性设置 操作方式: 在SQL语句中使用hint设置参数

生效方式: 参数在语句内有效,语句结束后失效

示例: kingbase=# /+Set(enable_bitmapscan off)/ explain select id from tb where id > 1;

参数设置总结 从上文的参数优先级别介绍与示例中,我们可以得出KingbaseES的各种优先级的参数设置方式具备如下的特性: 优先级 影响范围 是否操作语句(Y/N) 参数可在线更新(Y/N) 持久化(Y/N) 1 整个系统 N N Y 2 整个系统 Y Y Y 3 整个系统 N N N(服务运行时有效) 4 整个系统 Y N Y 5 数据库 Y N Y 6 角色 Y N Y 7 会话 Y Y N(会话重启后复位) 8 事务 Y Y N 9 函数 Y Y Y(函数定义持久化) 10 语句 Y Y N

从上表与上文的描述,我们可以得出以下结论:  参数影响的范围越小,优先级往往越高。  一些参数配置方式可持久化参数的配置,一些配置方式不可持久化,用户需要按需使用。  仅ALTER SYSTEM SET+sys_reload_conf()组合命令与SET命令可实现参数的在线更新。

一般而言,一旦数据库服务启动,用户多采用可支持在线更新的“操作语句”来设置配置参数。其中的SET属于会话级别语句,修改后参数立即生效,支持在线更新;ALTER SYSTEM SET命令仅仅能够修改配置文件kingbase.auto.conf,它与函数sys_reload_conf()配合可实现参数在线更新。用户在应用ALTER SYSTEM SET与SET命令时,特别是同时配置同一个参数是需要注意几种场景。它们的关系是:  会话级参数设置命令SET仅仅影响自身会话而不影响其它会话,ALTER SYSTEM SET+sys_reload_conf()组合命令影响所有的会话。  先被SET命令设置过的参数,再被ALTER SYSTEM SET+sys_reload_conf()组合命令修改时,不会更改该参数在本会话的设置。  ALTER SYSTEM SET+sys_reload_conf()组合命令修改过的参数,会被优先级高的SET命令覆盖在本会话的设置。

场景一、用户同时开启多个(假设3个)连接会话,用户在其中一个会话中使用ALTER SYSTEM SET+sys_reload_conf()组合命令配置参数param,其它会话未进行该参数的配置,则参数param完成对所有会话的设置。示例如下: 会话A:(参数work_mem由4MB修改为10MB) kingbase=# show work_mem; work_mem

4MB (1 row)

kingbase=# alter system set work_mem=‘10MB’; ALTER SYSTEM kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

10MB (1 row)

会话B:(参数work_mem被A会话同步修改为10MB) kingbase=# show work_mem; work_mem

10MB (1 row)

会话C:(参数work_mem被A会话同步修改为10MB) kingbase=# show work_mem; work_mem

10MB (1 row)

场景二、用户同时开启多个(假设3个)连接会话,用户在其中一个会话中使用ALTER SYSTEM SET+sys_reload_conf()组合命令配置参数param,并在本会话使用了SET命令配置参数param,其它会话未进行该参数的配置,则ALTER SYSTEM SET+sys_reload_conf()组合命令完成对除本会话之外的所有会话的param参数设置,SET命令完成对本会话的param参数设置。示例如下: 会话A:(参数work_mem由4MB修改为10MB,最后再被SET修改为12MB) kingbase=# show work_mem; work_mem

4MB (1 row)

kingbase=# alter system set work_mem=‘10MB’; ALTER SYSTEM kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

10MB (1 row)

kingbase=# set work_mem =‘12MB’; SET kingbase=# show work_mem; work_mem

12MB (1 row)

会话B:(参数work_mem被A会话同步修改为10MB,不受会话A的SET命令影响) kingbase=# show work_mem; work_mem

10MB (1 row)

会话C:(参数work_mem被A会话同步修改为10MB,不受会话A的SET命令影响) kingbase=# show work_mem; work_mem

10MB (1 row)

场景三、用户同时开启多个(假设3个)连接会话,用户先并在一个会话使用了SET命令配置参数param,然后再在该会话中使用ALTER SYSTEM SET+sys_reload_conf()组合命令配置参数param,其它会话未进行该参数的配置,则ALTER SYSTEM SET+sys_reload_conf()组合命令完成对除本会话之外的所有会话的param参数设置,SET命令完成对本会话的param参数设置。示例如下: 会话A:(参数work_mem使用SET由4MB修改为10MB,最后再被ALTER SYSTEM修改为12MB,由于ALTER SYSTEM优先级低于SET命令所以值仍然为10MB) kingbase=# set work_mem =‘10MB’; SET kingbase=# show work_mem; work_mem

10MB (1 row)

kingbase=# alter system set work_mem=‘12MB’; ALTER SYSTEM kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

10MB (1 row)

会话B:(参数work_mem被A会话同步修改为12MB,不受会话A的SET命令影响) kingbase=# show work_mem; work_mem

12MB (1 row)

会话C:(参数work_mem被A会话同步修改为12MB,不受会话A的SET命令影响) kingbase=# show work_mem; work_mem

12MB (1 row)

场景四、用户同时开启多个(假设3个)连接会话,用户在其中一个会话中使用ALTER SYSTEM SET+sys_reload_conf()组合命令配置参数param,并在另外一个会话使用了SET命令配置参数param,其它会话未进行该参数的配置,则ALTER SYSTEM SET+sys_reload_conf()组合命令完成对除另外会话之外的所有会话的param参数设置,SET命令完成对另外会话的param参数设置。示例如下: 会话A:(参数work_mem被ALTER SYSTEM修改为14MB) kingbase=# show work_mem; work_mem

4MB (1 row)

kingbase=# alter system set work_mem=‘14MB’; ALTER SYSTEM kingbase=# select sys_reload_conf(); sys_reload_conf

t (1 row)

kingbase=# show work_mem; work_mem

14MB (1 row)

会话B:(参数work_mem被A会话同步修改为14MB,使用SET命令后设置为10MB) kingbase=# show work_mem; work_mem

14MB (1 row)

kingbase=# set work_mem =‘10MB’; SET kingbase=# show work_mem; work_mem

10MB (1 row)

会话C:(参数work_mem被A会话同步修改为14MB,不受会话B的SET命令影响) kingbase=# show work_mem; work_mem

14MB (1 row)



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭