跳至主要內容

Klustron系统变量

Klustron大约 24 分钟

Klustron系统变量

在Klustron集群中,分为两种类型的系统变量:计算节点的系统变量和存储节点的系统变量,下文会详细介绍这两种系统变量的具体内容。

1. 计算节点kunlun-server系统变量

Klustron集群中维护了许多影响操作的系统变量,在计算节点中,大多数系统变量都是可以在kunlun-server启动时通过配置文件加载进行配置,也可以在kunlun-server运行时使用set语句和reload的方式动态调整系统变量的值。在进行配置修改之前,必须清楚理解系统变量的实际含义、应用配置方式、变量类型,以免配置失败或更严重的影响到Klustron的使用。

在Klustron集群的计算节点中,应用系统变量的设置方式有几种,按照从应用配置要求的难度降序进行介绍:

  • Internal,不能直接更改这些设置;它们反映了内部确定的值。其中的一些可以通过用不同的配置选项重建服务器,或通过改变提供给initdb的选项来更改。

  • Postmaster,这些选项只在服务器启动时使用,所以任何改变都需要重启服务器。这些设置的值通常存储在 postgresql.conf文件中,或当服务器启动时传递给命令行。 当然,带有任何低context类型的设置也可以在服务器启动时设置。Postmaster配置类型的系统变量,需要在alter system set语句执行后,然后重启kunlun-server才会生效,并且会持久化到配置文件中,此后打开新的session都会以修改后的值应用。注意,使用set命令会执行修改后会返回报错。

  • Sighup,这些设置可以在postgresql.conf中改变而不用重启服务器。 发送一个Sighup信号到主进程使其重读postgresql.conf 并应用改变。主进程也将Sighup信号传递给它的子进程, 这样它们所有都使用新值。Sighup配置类型的系统变量,需要alter system set语句执行,然后使用reload后当前session会立即生效,并且会持久化到配置文件中,新的session或者重启kunlun-server都会以修改后的值应用。注意,使用set命令会执行修改后会返回报错。

  • Backend,这些设置可以在postgresql.conf中改变而不用重启服务器; 它们也可以在连接需求包中为特定的会话设置(例如,通过libpq的 PGOPTIONS环境变量)。不过,这些设置在会话启动后永远不会改变。 如果你在postgresql.conf中改变了它们,那么发送一个Sighup 信号到主进程使其重读postgresql.conf。新值将只影响随后加载的会话。Backend配置类型的系统变量,需要alter system set语句执行,然后使用reload后新打开的session会生效,对于当前的session不生效。修改后会持久化到配置文件中,重启kunlun-server会以修改后的值应用。注意,使用set命令会执行修改后会返回报错。

  • SuperUser,这些值可以在postgresql.conf中设置,或在一个会话中通过SET 命令设置;但是只有超级用户可以通过SET改变它们。在postgresql.conf 中改变它们将只在没有会话本地值是使用SET建立的时影响现有会话。SuperUser配置类型的系统变量,只有超级用户可以使用set命令执行,并使当前session立即生效,也可以使用alter system set语句执行,然后使用reload后当前session会立即生效,并且会持久化到配置文件中,新的session或者重启kunlun-server都会以修改后的值应用。

  • User,这些值可以在postgresql.conf中设置,或在一个会话中通过SET 命令设置。允许任何用户改变他们的会话本地值。postgresql.conf 中的改变将只在没有会话本地值是使用SET建立的时影响现有会话。User配置类型的系统变量,用户可以使用set命令执行,并使当前session立即生效,也可以使用alter system set语句执行,然后使用reload后当前session会立即生效,并且会持久化到配置文件中,新的session或者重启kunlun-server都会以修改后的值应用。

Tips

  • reload方式进行系统变量的持久化操作,见系统变量FAQ章节。
  • 所有的系统变量中,有部分系统变量是Klustron特有的,这里只对Klustron计算节点中特有的系统变量进行介绍。

Klustron特有系统变量介绍

变量名称autocommit
变量含义是否启用自动提交模式。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称check_primary_interval_secs
变量含义检查所有存储分片和元数据分片主节点的周期。
变量类型Integer
默认值3
取值范围[1,100]
应用设置要求User
引入版本v1.2
变量名称client_connection_type
变量含义客户端连接类型是mysql还是pg。
变量类型Enumeration
默认值FE_PG
可选值FE_UNKNOWN,FE_PG,FE_MYSQL
应用设置要求User
引入版本v1.2
变量名称cluster_commitlog_group_size
变量含义提交日志xid写入组大小。
变量类型Integer
默认值8
取值范围[1,67108864]
应用设置要求Postmaster
引入版本v1.2
变量名称comp_node_id
变量含义这个是由创建计算节点的时候,分配给计算节点的。
变量类型Integer
默认值
取值范围[0,2147483647]
应用设置要求Postmaster
引入版本v1.2
变量名称debug_remote_connection
变量含义以Notice的形式展示sql执行过程中访问了哪些分片。用于功能调试。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称declared_mysql_server_version
变量含义KunlunServer将自己声明为MySQL客户端连接器的MySQL版本。
变量类型String
默认值8.0.29
应用设置要求Sighup
引入版本v1.2
变量名称default_nulls_smallest
变量含义在升序排序时,默认将null当作最小值。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称default_pgsql_collation
变量含义如果给定MySQL字符集和排序规则,pg_MySQL_collation_mapping中没有有效的PostgreSQL排序规则,则按照MySQL会话的默认PostgreSQL排列规则。
变量类型String
默认值ucs_basic
应用设置要求User
引入版本v1.2
变量名称enable_block_nestloop
变量含义是否启用block nestloop功能,从而减少与存储节点的交互次数。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_catalog_security_policy
变量含义为系统目录关系添加行级安全检查,避免用户查看到无权访问的对象名称(例如表名等)。
变量类型Boolean
默认值OFF
应用设置要求Postmaster
引入版本v1.2
变量名称enable_collation_pushdown
变量含义将排序规则下推到存储节点。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_coredump
变量含义当任何postgres进程捕捉到致命信号时,是否生成核心转储文件。核心转储文件对于错误诊断非常有用。
变量类型Boolean
默认值ON
应用设置要求Sighup
引入版本v1.2
变量名称enable_debug_remote_path
变量含义用于优化器调试。展示查询优化过程中产生的所有备选remote算子。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称enable_flatten_correlated_sublink
变量含义展平将任何子查询关联到半连接。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_global_deadlock_detection
变量含义启用全局死锁检测和解析。
变量类型Boolean
默认值ON
应用设置要求Sighup
引入版本v1.2
变量名称enable_global_mvcc
变量含义启用全局mvcc功能。
变量类型Boolean
默认值OFF
应用设置要求Postmaster
引入版本v1.2
变量名称enable_olap_mode
变量含义设置一些参数以优化olap工作负载。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称enable_parallel_remotescan
变量含义将remote scan计划视为并行安全,以提高并行性。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_pg_mysql_charset_mapping_deduction
变量含义一些映射是从文档和公共信息中推导出来的,是否使用这种推导的映射。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_agg_pushdown
变量含义尝试将聚合下推到存储分片以获得更好的性能。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_cursor
变量含义使用游标从远程分片中获取元组,前提是设置了enable_shard_binary_protocol。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称enable_remote_distinct_pushdown
变量含义尝试将distinct子句下推到存储分片以获得更好的性能。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_indexscan
变量含义尝试创建远程索引扫描计划。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_join_pushdown
变量含义如果左表和右表位于同一存储分片中,则尝试下推表连接。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_limit_pushdown
变量含义尝试将 LIMIT 子句下推到存储分片以获得更好的性能。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_remote_orderby_pushdown
变量含义尝试将排序下推到存储分片以获得更好的性能。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称enable_replica_read
变量含义开启replica读功能,减少master的读负载。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称enable_shard_binary_protocol
变量含义当客户端使用二进制协议与计算节点通讯时,计算节点也使用mysql二进制协议与shard进行通信。
变量类型Boolean
默认值ON
应用设置要求SuperUser
引入版本v1.2
变量名称enable_sql_log
变量含义将发送到存储分片的sql记录到单独的sql日志中,便于问题定位。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称enable_stacktrace
变量含义当任何 postgres 进程捕获致命信号时是否将堆栈跟踪打印到服务器日志文件中。 堆栈跟踪对于错误诊断很有用。
变量类型Boolean
默认值ON
应用设置要求Sighup
引入版本v1.2
变量名称enable_stmt_subxact
变量含义将用户查询包装到内部子事务中,并在发生错误时回滚子事务,而不是回滚整个事务。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称force_remote_sql_parameterize
变量含义参数化下推sql中的所有常量,而从使用二进制协议与存储节点通讯。
变量类型Boolean
默认值OFF
应用设置要求SuperUser
引入版本v1.2
变量名称force_secure_file_access_proc
变量含义调用文件访问函数时强制使用 unix 套接字。
变量类型Boolean
默认值ON
应用设置要求Sighup
引入版本v1.2
变量名称global_deadlock_detector_victim_policy
变量含义设置全局死锁检测器如何选择受害者来终止以解决全局死锁。
变量类型Enumeration
默认值KILL_MOST_ROWS_LOCKED
可选值KILL_OLDEST,KILL_YOUNGEST,KILL_MOST_ROWS_CHANGED,KILL_LEAST_ROWS_CHANGED,KILL_MOST_ROWS_LOCKED,KILL_MOST_WAITING_BRANCHES,KILL_MOST_BLOCKING_BRANCHES
应用设置要求Sighup
引入版本v1.2
变量名称global_txn_commit_log_wait_max_secs
变量含义两阶段提交时,向元数据服务器写事务日志的超时时间。
变量类型Integer
默认值10
取值范围[1,100000]
单位
应用设置要求User
引入版本v1.2
变量名称gtss_concurrency
变量含义用于写入提交日志的协程数量。
变量类型Integer
默认值4
取值范围[1,8]
应用设置要求Postmaster
引入版本v1.2
变量名称internal_read_only_double_quotes_symbols
变量含义当前会话是否使用双引号(") 引用数据库对象(表、列、函数等)的名称(true)或字符串文字(false)。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称max_remote_insert_blocks
变量含义计算节点向存储节点插入数据时,insert语句的最大长度。
变量类型Integer
默认值1024
取值范围[8,1048576]
应用设置要求User
引入版本v1.2
变量名称metadata_connect_timeout
变量含义连接到元数据服务器时的超时。
变量类型Integer
默认值20
取值范围[1,100000]
单位
应用设置要求User
引入版本v1.2
变量名称metadata_read_timeout
变量含义读取元数据服务器时的超时。
变量类型Integer
默认值20
取值范围[1,100000]
单位
应用设置要求User
引入版本v1.2
变量名称metadata_write_timeout
变量含义写入元数据服务器时的超时。
变量类型Integer
默认值20
取值范围[1,100000]
单位
应用设置要求User
引入版本v1.2
变量名称min_remote_index_paralleism
变量含义remote index scan算子的最小并行度。
变量类型Integer
默认值0
取值范围[0,1024]
应用设置要求User
引入版本v1.2
变量名称mysql_ansi_quotes
变量含义使用双引号(") 来引用符号名称而不是字符串常量。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称mysql_default_schema
变量含义仅在连接建立时 MySQL 连接的默认架构。 如果为空,请执行与 PostgreSQL 连接相同的操作并设置为“$User, public”模式。
变量类型String
默认值
应用设置要求User
引入版本v1.2
变量名称mysql_interactive_timeout
变量含义在断开连接之前等待来自 mysql CLI 程序的下一个命令的超时时间。
变量类型Integer
默认值1800
取值范围[1,2000000000]
单位
应用设置要求User
引入版本v1.2
变量名称mysql_net_buffer_length
变量含义MySQL 服务器协议每个客户端连接读/写缓冲区大小。
变量类型Integer
默认值65536
取值范围[16384,1048576]
单位字节
应用设置要求Backend
引入版本v1.2
变量名称mysql_net_retry_count
变量含义重试与对等方连接/写入/读取的次数。
变量类型Integer
默认值10
取值范围[1,1000000]
应用设置要求User
引入版本v1.2
变量名称mysql_port
变量含义设置服务器使用 MySQL 协议侦听 mysql 客户端的 TCP 端口。
变量类型Integer
默认值由用户指定
取值范围[1,65535]
应用设置要求Postmaster
引入版本v1.2
变量名称mysql_protocol_compression_algos
变量含义MySQL 使用的协议压缩算法,只能是 'zlib'、'zstd' 和 'uncompressed' 的组合。
变量类型String
默认值zlib, zstd, uncompressed
应用设置要求User
引入版本v1.2
变量名称mysql_protocol_ps_exec_fetch_rows
变量含义在 EXECUTE 或 FETCH 命令中通过 MySQL 二进制协议获取多少行,如果在 EXECUTE 中一次获取全部行,则为 0。
变量类型Integer
默认值0
取值范围[0,2147483647]
应用设置要求User
引入版本v1.2
变量名称mysql_send_resultset_metadata
变量含义是否发送使用 MySQL 协议的连接的结果集元数据。
变量类型Boolean
默认值ON
应用设置要求SuperUser
引入版本v1.2
变量名称mysql_wait_timeout
变量含义在断开连接之前等待来自 mysql 客户端的下一个命令的超时时间。
变量类型Integer
默认值1800
取值范围[1,2000000000]
单位
应用设置要求User
引入版本v1.2
变量名称net_motion_cost
变量含义计算节点从存储节点读取4kb数据块的开销,用于优化器代价估算。
变量类型Real
默认值1
取值范围[0,1.79769e+308]
应用设置要求User
引入版本v1.2
变量名称net_motion_penalty
变量含义计算节点和存储节点每次交互的惩罚值,用于优化器代价估算。
变量类型Real
默认值100
取值范围[0,1.79769e+308]
应用设置要求User
引入版本v1.2
变量名称only_full_group_by
变量含义拒绝以下查询:select字段列表、having 条件或 order by 列表引用既未在 GROUP BY 子句中命名也不在功能上依赖于它们的非聚合列。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2
变量名称plan_cache_mode
变量含义控制计划者对自定义或通用计划的选择。
变量类型Enumeration
默认值auto
可选值auto,force_generic_plan,force_custom_plan
应用设置要求User
引入版本v1.2
变量名称remote_cursor_prefetch_rows
变量含义计算节点使用游标从存储节点成批地读取数据时,每个批次读取的行数。
变量类型Integer
默认值1000
取值范围[1,2147483647]
应用设置要求User
引入版本v1.2
变量名称remote_print_warning
变量含义如果某些运算符/函数无法下推到存储节点,则启用警告。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称replica_read_fallback
变量含义启用读写分离功能时,当没有可供副本读取的副本时的回退策略。 0:报错; 1:任意副本; 2:主节点。
变量类型Integer
默认值2
取值范围[0,3]
应用设置要求User
引入版本v1.2
变量名称replica_read_latency_threshold
变量含义启用读写分离功能时,可用于副本读取的副本的binlog同步延迟阈值。
变量类型Real
默认值0
取值范围[0,1e+10]
应用设置要求User
引入版本v1.2
变量名称replica_read_order
变量含义启用读写分离功能时,按什么对副本的优先级进行排序(优先级越高被选择概率越大)。 0:ro_weight; 1:ping延迟; 2:binlog同步延迟。
变量类型Integer
默认值0
取值范围[0,3]
应用设置要求User
引入版本v1.2
变量名称replica_read_ping_threshold
变量含义启用读写分离功能时,从当前计算节点到可用于副本读取的副本的 ping 延迟阈值。
变量类型Real
默认值0
取值范围[0,1e+10]
应用设置要求User
引入版本v1.2
变量名称sharding_policy
变量含义选择放置表的分片的策略。 0:随机; 1:最少存储; 2:最少表; 3:第一个碎片。
变量类型Integer
默认值0
取值范围[0,5]
应用设置要求User
引入版本v1.2
变量名称single_shard_mode
变量含义集群只有一个分片时的一种集群部署模式。 在该模式下,计算节点在执行DDL时仅改变本地元数据,并且允许用户自由定义计算节点 schema和存储节点 schema之间的对应关系。
变量类型Boolean
默认值OFF
应用设置要求Postmaster
引入版本v1.2
变量名称sql_auto_is_null
变量含义用于兼容mysql,一直为false。
变量类型Boolean
默认值OFF
应用设置要求User
引入版本v1.2
变量名称start_global_deadlock_detection_wait_timeout
变量含义如果发送到存储分片的插入/删除/更新语句在这么长时间后没有返回,则启动一轮死锁检测。
变量类型Integer
默认值500
取值范围[1,2147483647]
应用设置要求User
引入版本v1.2
变量名称synchronize_meta_data_interval_secs
变量含义设置从元集群同步元数据的时间间隔。
变量类型Integer
默认值60
取值范围[1,1000]
单位
应用设置要求User
引入版本v1.2
变量名称table_migration_recovery_max_retries
变量含义存储节点因表迁移而报NO_SUCH_TABLE错误时的最大重试次数。
变量类型Integer
默认值8
取值范围[0,16]
应用设置要求User
引入版本v1.2
变量名称transform_create_db_to_schema
变量含义仅在 MySQL 连接中,将所有 CREATE DATABASE 语句转换为 CREATE SCHEMA 语句。
变量类型Boolean
默认值ON
应用设置要求User
引入版本v1.2

2. 存储节点kunlun-storage系统变量

Klustron集群中维护了许多影响操作的系统变量,在存储节点中,大多数系统变量都是可以通过在kunlun-storage启动时通过配置文件加载进行配置,也可以在kunlun-storage运行时使用set命令和set global命令的方式动态调整系统变量的值。在进行配置修改之前,必须清楚理解系统变量的实际含义、作用范围、变量类型,以免配置失败或更严重的影响到Klustron的使用。存储节点的系统变量调整时,需谨慎对待,调整前可以联系Klustron团队确认。

在Klustron集群的存储节点中,设置系统变量的作用范围分为两种级别Session和Global,与MySQL设置方式一致:

  • Session级别,通过set命令的方式修改Session级别变量,会在当前Session中立即生效,直到更改为其他值或者重新打开Session。此更改对其他Session没有影响。
  • Global级别,通过set global命令的方式修改Global级别的系统变量,修改的系统变量值将会固化到存储节点中,作用范围只有Global的系统变量,会立即生效;如果作用范围有Global和Session两种级别的,则修改的变量值对当前连接会话不会生效,会继续使用当前会话的Session变量值,仅仅会影响到更改之后新打开的Session。

Klustron特有系统变量介绍

如下系统变量都是Klustron存储节点特有的,不包含MySQL的系统变量。

变量名称gmvcc_register_txns_at_readview_creation
变量含义注册事务,其 tgvc 条目在创建时缓存到每个读取视图中,以消耗更多内存为代价获得更好的性能。
变量类型Boolean
默认值FALSE
作用范围Global
动态修改No
引入版本v1.2
变量名称enable_fullsync
变量含义是否全局启用fullsync机制或者在当前会话中启用fullsync机制。
变量类型Boolean
默认值TRUE
作用范围Global,Session
动态修改Yes
引入版本v1.2
变量名称fullsync_timeout
变量含义如果自事务开始等待副本 ACK 后这么多毫秒仍未到达,则向客户端返回错误并在错误日志中写入错误。
变量类型Integer
默认值30000
取值范围[5,4294967295]
单位毫秒
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_warning_timeout
变量含义如果自事务开始等待以来副本 ACK 到达这么多毫秒,请在错误日志中写入警告。
变量类型Integer
默认值3000
取值范围[3,4294967295]
单位毫秒
作用范围Global
动态修改Yes
引入版本v1.2
变量名称skip_fullsync_replica_acks_older_than
变量含义如果副本比主节点晚这么多毫秒,请跳过 fsync 中继日志或发送 ACK。
变量类型Integer
默认值3600000
取值范围[0,4294967295]
单位毫秒
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_fsync_ack_wait_max_milli_secs
变量含义副本节点在fsync'in中继日志并发送ACK之前,等待更多的事件组到达最多等待这么多毫秒。
变量类型Integer
默认值2
取值范围[0,4294967295]
单位毫秒
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_fsync_ack_least_txns
变量含义在 fsync 中继日志并发送 ACK 之前,至少累积这么多事件组。
变量类型Integer
默认值10
取值范围[0,4294967295]
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_fsync_ack_least_event_bytes
变量含义在 fsync 中继日志并发送 ACK 之前,至少累积这么多中继日志字节。
变量类型Integer
默认值4096
取值范围[0,4294967295]
单位字节
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_relaylog_fsync_ack_level
变量含义此变量的值在创建时分配给副本通道,以确定何时启用全同步,副本通道在将其接收到的事件组写入中继日志文件后是否应 fsync 中继日志和/或回复 ACK 到其主通道 。 0:不fsync或发送ACK; 1:不fsync,但发送ACK; 2:fsync 并发送 ACK 要随后更改通道特定设置,请执行 CHANGE MASTER TO FULLSYNC_RELAY_LOG_FSYNC_ACK_LEVEL={0|1|2} [FOR CHANNEL 'xxx']。
变量类型Integer
默认值2
取值范围[0,2]
作用范围Global
动态修改Yes
引入版本v1.2
变量名称fullsync_consistency_level
变量含义在事务提交结束时,在回复客户端事务已提交之前是否以及如何等待全同步副本 ACK。 0:不等待; Positive:等待这个数量的 ACK。
变量类型Integer
默认值1
取值范围[0,1024]
作用范围Global
动态修改Yes
引入版本v1.2
变量名称bg_worker_threads
变量含义bg工作线程数。
变量类型Integer
默认值16
取值范围[4,256]
作用范围Global
动态修改Yes
引入版本v1.2
变量名称slow_logging_start_point
变量含义慢日志记录的查询周期开始:查询接收(2)、查询开始(1) 或锁定(0) 后到结束时间。
变量类型Integer
默认值2
取值范围[0,2]
作用范围Global
动态修改Yes
引入版本v1.2
变量名称print_extra_info_verbosity
变量含义打印额外信息以帮助问题诊断的详细程度,包括断开连接信息、新添加的日志事件字段等。越大越详细/打印的信息,0 将禁用打印任何详细信息。
变量类型Integer
默认值1
取值范围[0,100000]
作用范围Global
动态修改Yes
引入版本v1.2

系统变量FAQ

1.reload的配置方式如何操作?

A:Klustron中调整系统变量时,部分是需要重启kunlun-server的,部分是可以通过reload重新加载配置的方式将系统变量固化到计算节点中。

  • reload的方式

这里以修改系统变量statement_timeout为例,先登录kunlun-server查看该系统变量默认值:

show statement_timeout;

示例图片:

查看修改系统变量值的类型:

select * from pg_settings where name='statement_timeout';

图片示例:

修改配置值:

alter system set statement_timeout = 200000;

示例图片:

查看kunlun-server进程,确认pg_ctl工具所在目录

这里以kunlun-server的端口号23007为例:

ps -ef|grep 23007

图片示例:

查看pg_ctl所在的目录:

cd /data/ha/kunlun/instance_binaries/computer/23007/Klustron-server-1.2.1/bin
ls -l

图片示例:

执行reload:

./pg_ctl -D /data/ha/kunlun/server_datadir/23007 reload

图片示例:

检验是否调整成功,登录kunlun-server查看该系统变量默认值:

show statement_timeout ;

图片示例:

注意:kunlun-server可能存在多个,所以其他的kunlun-server也需要以同上的步骤进行修改,保证所有的kunlun-server系统变量配置值是一致,大多数情况下系统变量的值在多个计算节点中都应保持一致,如有特殊用户需求则另外进行调整。

  • restart方式

这里以修改系统变量cluster_commitlog_delay_ms为例,先登录kunlun-server查看该系统变量默认值:

show cluster_commitlog_delay_ms;

示例图片:

查看修改系统变量值的类型:

select * from pg_settings where name='cluster_commitlog_delay_ms';

示例图片:

修改配置值:

alter system set cluster_commitlog_delay_ms=11;

示例图片:

查看kunlun-server进程,确认pg_ctl工具所在目录

这里以kunlun-server的端口号23001为例:

ps -ef|grep 23001

图片示例:

查看pg_ctl所在的目录:

cd /data/ha/kunlun/instance_binaries/computer/23001/Klustron-server-1.2.1/scripts
ls -l

图片示例:

执行重启kunlun-server:

停止:

python2 stop_pg.py --port=23001

图片示例:

启动:

python2 start_pg.py --port=23001

复核启动成功:

ps -ef|grep 23001

图片示例:

检验是否调整成功,登录kunlun-server查看该系统变量默认值:

show cluster_commitlog_delay_ms ;

图片示例:

注意:kunlun-server可能存在多个,所以其他的kunlun-server也需要以同上的步骤进行修改,保证所有的kunlun-server系统变量配置值是一致,大多数情况下系统变量的值在多个计算节点中都应保持一致,如有特殊用户需求则另外进行调整。

END