服务器系统配置参数使用说明(必读)

本文档介绍了服务器系统配置参数的使用说明,包含参数数据类型和值的说明、设置分类说明等。

参数数据类型和值

所有参数的名称都是大小写不敏感的。

参数数据类型均为下表的其中一种:

数据类型 描述 大小写敏感
boolean 支持选项:on / off / true / false / yes / no / 1 / 0
enum 枚举。支持选项仅限于取值范围中列出的字符串值集合
int 整数
floating point 浮点数
string 字符串

一些参数值的设置可能与内存大小或时间长短有关。对于这些值,如果你不使用默认单位,那么你需要在设置值时给出显式的单位,例如内存单位 KBMBGB,时间相关单位 ms(毫秒)s(秒)min(分)h(小时)d(天)m(月)y(年) 等。请注意,内存单位的乘数是 1024,而不是 1000。

示例:

=# SET statement_mem TO '200MB';
=# SET idle_in_transaction_session_timeout TO '1s';

注意!
1.一个有效的时间表达式会包含一个数字及其单位,内存表达式也一样; 2.使用默认单位时除外,表达式可以不显式指定单位; 3.数字和单位间没有空格。 4.INT_MAX 代表着 int 类型常量的最大值,即 2147483647

设置分类

许多系统配置参数都存在修改权限设置方式、设置时间的限制。例如,你必须是一个 YMatrix 数据库的超级用户,你才拥有修改某些重要参数的权限;而一些参数必须重启数据库管理系统,修改才能生效等等。

在 YMatrix 中,Master 和每个 Segment 节点实例都拥有他们自己的 postgresql.conf 文件(位于各自的数据目录中)。一些参数被视为 segments 类型,这意味着对于这些参数而言,每个 Segment 节点实例都根据他们自己的 postgresql.conf 文件获取相应参数值。因此,你必须在 Master 及每个 Segment 上都分别手动设置其参数值。相反,如果参数是 master 类型,则只需在 Master 上设置它即可,Master 会自动同步到每个 Segment 或被 Segments 忽略。

总之,我们试图通过上文及下表,尽可能清晰地向你描述:看到具体参数值表格中的 设置分类 列时,如何能准确解读出其意义。

设置分类 描述
master / segments master 指的是此参数只需通过 gpconfig 命令在 YMatrix 集群的 Master 上的 postgresql.conf 文件中修改即可,修改后参数值会在运行时自动传递到 Segments 或被 Segments 忽略
segments 指的是此参数除必须在 Master 修改外,(如有必要)还需在每个 Segment 中修改。每个 Segment 取自身的配置参数值,这些参数常常需要重启系统才可生效
session / system session 指此参数为会话级别;system 指此参数为系统级别
YMatrix 参数生效优先级如下:session(SET)> database and role(ALTER ROLE...IN DATABASE...SET)> role(ALTER ROLE...SET) > database(ALTER DATABASE...SET) > system(postgresql.conf)(系统参数仅可通过 gpconfig 命令在此文件中修改)
restart / reload restart 指参数修改需重启 YMatrix 数据库系统才可生效
reload 指参数修改只需重新加载服务器配置文件(mxstop -u)即可生效,无需停止数据库系统
table table 指此参数只能在创建数据表时使用 WITH 子句配置,适用于单表,且一旦配置便无法修改
superuser 只可以被数据库的超级用户修改的会话级别(session)的参数
read only 只读,不可修改