KingbaseES中的参数查看与修改
KingbaseES数据库的配置参数都在kingbase.conf文件中,这些参数有些是直接修改就可以生效,有些需要重启数据库才能生效,而有些根本就不能修改。数据库把这些参数分为以下几类:
- internal:这类参数为只读参数。有些是程序写死的,有些是在安装数据库时intdb时设置好的。
- kingbase:这类参数需要重启数据库服务才能生效。
- sighup:无需重启数据库,但要向kingbase进程发送sighup信号,即需要操作系统命令sys_ctl reload或进入ksql中, select sys_reload_conf();重新加载配置文件。
- backend:无需重启数据库,只需向kingbase进程发送sighup信号。但新的配置参数只能在之后的新连接中生效,已有连接中这些参数值不会改变。
- superuser:这类参数可以由超级用户使用set命令修改。参数设置后只会影响超级用户自身的session配置,不会影响其他用户。
- user:普通用户使用set命令修改,这类参数修改后和superuser类参数一样,也是只影响自身session。
我们可以通过查询sys_settings表的context字段值来查看参数是否需要重启数据库生效。如下:
test=# select name,context,pending_restart from sys_settings where name like 'bgwriter%';
name | context | pending_restart
-------------------------+---------+-----------------
bgwriter_delay | sighup | f
bgwriter_flush_after | sighup | f
bgwriter_lru_maxpages | sighup | f
bgwriter_lru_multiplier | sighup | f
可以通过查看sys_file_settings查看你设置的参数是否生效。例如如果你设置了⼀个参数需要重启数据库才能生效或者设置错误,那么在此字典中会出现报错。
1.全局参数修改:
使用alter system 命令修改参数.使用alter system命令将修改kingbase.auto.conf文件,而不是kingbase.conf文件,这样可以很好的保护kingbase.conf文件,不要手工对kingbase.auto.conf文件进行修改。该文件保存最新的配置,当数据库服务重启时,kingbase.auto.conf 里的修建项配置优先。当 kingbase.conf 和kingbase.auto.conf两个文件中都存在相同参数,kingbase.conf文件修改无效。
查看kingbase.auto.conf文件
[kingbase@localhost data]$ cat kingbase.auto.conf |grep 'work'
work_mem = '8MB'
使用sys_ctl reload命令重载配置文件,再查看参数值:
test=# show work_mem;
work_mem
----------
8MB
(1 row)
2.使用set命令,在会话层修改,修改之后将被用于未来的每个事务,但只对当前会话有效。
test=# set work_mem='20MB';
SET
test=#
test=# show work_mem;
work_mem
----------
20MB
(1 row)
这时候再打开一个会话看到work_mem还是4MB,因为只对当前会话有效。
3.set命令后添加 local关键字, 只在当前事务中修改,只在当前事务内有效:
test=# show work_mem;
work_mem
----------
20MB
(1 row)
test=#
test=# begin;
BEGIN
test=# set local work_mem='10MB';
SET
test=#
test=# show work_mem;
work_mem
----------
10MB
(1 row)
test=# commit;
COMMIT
test=# show work_mem;
work_mem
----------
20MB
(1 row)
4.使用 reset恢复参数的默认值
可以通过视图sys_settings里的字段reset_val字段中的值了解此参数恢复默认值的大小。使用reset all可以恢复所有参数值。
test=# select name , reset_val from sys_settings where name like 'work%';
name | reset_val
----------+-----------
work_mem | 8192
(1 row)
test=# show work_mem;
work_mem
----------
20MB
(1 row)
test=# reset work_mem;
RESET
test=# show work_mem;
work_mem
----------
8MB
(1 row)
5.为特定的用户设置参数
5.1.为特定的数据库的所有用户设置参数.
单独为test数据库所有的连接设置work_mem为16MB:
test=# alter database test set work_mem='16MB';
ALTER DATABASE
test=#
5.2.为数据库中的某个用户设置参数.
例如为bob用户,设置work_mem为4MB:
test=# alter role bob set work_mem='4MB';
ALTER ROLE
经过测试发现,如果你同时为数据库和用户设置了特定参数,那么以用户参数为准.例如上面,如果我用bob用户连接到test数据库,那么我的work_mem应该为4MB:
test=# \c test bob
You are now connected to database "test" as user "brent".
test=>
test=# show work_mem;
work_mem
----------
4MB
(1 row)
5.3.为某个用户连接到特定的数据库设置参数.
例如为用户ttname在数据库test中设置work_mem为8MB
test=> alter role ttname in database test set work_mem='8MB';
ALTER ROLE
上面说的三种设置,优先级递增,例如,如果1,2,3全部设置了那么就以第3个为准,如果设置了1,2那么就是以2为准。
KingbaseES对此的实现方法和当用户连接数据库的时候,手动执行set命令的效果完全相同
查看你当前的参数值是从何处指定,可以通过查询sys_setttings中的source字段获取,例如如果设置了database级别的参数.那么查询结果如下:source为database
test=# select name,setting,source from sys_settings where name='work_mem';
name | setting | source
----------+---------+----------
work_mem | 16384 | database
例如设置了第三种:source为databae user
test=> \c test ttname
You are now connected to database "test" as user "ttname".
test=> select name,setting,source from sys_settings where name='work_mem';
name | setting | source
----------+---------+---------------
work_mem | 8192 | database user
(1 row)
总结:综上所述,如果通过数据字典视图查看参数生效条件。可从全局或session级更改参数等。
KingbaseES中的参数查看与修改的更多相关文章
- ORACLE隐藏参数查看及修改
查看隐藏参数 select x.ksppinm name, y.ksppstvl value, y.ksppstdf isdefault, decode(bitand(y.ksppstvf,7),1, ...
- Linux中文件权限查看和修改
权限定义 linux文件权限分为:r读权限(4).w写权限(2).x执行权限(1) linux权限对象分为:拥有者.组用户.其他用户 权限修改: chown user:group /usr/local ...
- 如何修改myeclipse 内存?eclipse.ini中各个参数的作用。
修改MyEclipse/eclipse文件夹中配置文件eclipse.ini中的内存分配就哦了 =================================== 一般的ini文件设置主要包括以下 ...
- 如何修改myeclipse 内存,eclipse.ini中各个参数的作用。
修改MyEclipse/eclipse文件夹中配置文件eclipse.ini中的内存分配就哦了 =================================== 一般的ini文件设置主要包括以下 ...
- 如何在cmd命令行中查看、修改、删除与添加环境变量,语法格式例子:set path;echo %APPDATA%
如何在cmd命令行中查看.修改.删除与添加环境变量 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修 ...
- oracle隐含参数的查看与修改
v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的. 1. 可以通过如下方式查询当前实例的所有隐含参数: col name for a30 ...
- centos linux中怎么查看和修改计算机名/etc/sysconfig/network
centos linux中怎么查看和修改计算机名 查看计算机名:在终端输入hostname 修改的话 hostname +计算机名(重启后失效)要永久修改的话要修改配置文件/etc/sysconfig ...
- js 获取url中的参数 修改url 参数 移除url参数
js 获取url中的参数 修改url 参数 移除url参数 var jsUrlHelper = { getUrlParam : function(url, ref) { var str = " ...
- JavaWeb 学习006-4个页面,5条sql语句(添加、查看、修改、删除)
今天遇到的问题: 1. 在list页面上添加信息时候,跳转到doAdd页面后,点击保存按钮,能够跳转回list页面,但是新增的信息不能显示出来,就像是没有执行添加操作一样. 这是什么问题? ①是不是到 ...
随机推荐
- 上线项目之局域网上线软件使用-----phpStudy
上面的图片是phpStudy的软件截图.那么你在哪里会下到呢?链接: https://pan.baidu.com/s/1lvX9jY_K6gGkMOqo76p4nA 提取码: h1it 复制这段内容后 ...
- Java开发学习(六)----DI依赖注入之setter及构造器注入解析
一.DI依赖注入 首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法) 构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关 ...
- 关于Java中的构造方法
关于构造方法: 1.构造方法又叫构造函数/构造器. 2.构造方法语法结构中"返回值类型"不需要指定,也不能写void,如若写void,则变成普通方法. 3.构造方法有返回值,和当前 ...
- 你真的会python中的for循环吗
for 循环是 Python 中的通用序列迭代器:它可以单步遍历任何有序序列中的元素.for 语句适用于字符串.列表.元组.其他内置可迭代对象和类创建的新对象. for 通常比 while 循环更容易 ...
- 毫秒值的概念和作用 --Date类的构造方法和成员方法
一, Date类类 Date 表示特定的瞬间,精确到毫秒. 毫秒:千分之一秒作用:可以对时间和日期进行计算可一把日期转换为毫秒进行计算,计算完毕,再转换为日期. 把日期转换为毫秒:当前的日期:202 ...
- Note -「数论 定理及结论整合」
数学素养 low,表达可能存在不严谨,见谅.我准备慢慢补上证明? Theorems. 裴蜀定理:关于 \(x, y\) 的线性方程 \(ax + by = c\) 有解,当且仅当 \(\gcd (a, ...
- Solution -「HNOI」EVACUATE
Sol. 可以发现人的移动除了不能穿墙以外没有别的限制.也就是说人的移动多半不是解题的突破口. 接下来会发现出口的限制很强,即出口每个时刻只能允许一个人出去. 每个时刻? 不难想到对于每一个时刻每一个 ...
- 苹果手机和Windows之间互传文件
参考链接:https://jingyan.baidu.com/article/a378c960c46804f229283064.html 实现原理:就是使用Samba服务,windows共享一个文件夹 ...
- 【万字长文】使用 LSM-Tree 思想基于.Net 6.0 C# 实现 KV 数据库(案例版)
文章有点长,耐心看完应该可以懂实际原理到底是啥子. 这是一个KV数据库的C#实现,目前用.NET 6.0实现的,目前算是属于雏形,骨架都已经完备,毕竟刚完工不到一星期. 当然,这个其实也算是NoSQL ...
- linux docker .net core 从建立网站到预览
docker的安装在网上一搜一大把,windows安装的就是exe双击,linux安装需要执行语句 ps:需要准备xftp.xshell.vs 2019.linux服务器.docker账号密码 例如: ...