集群事务
介绍集群事务隔离、事务只读、最大prepared事务数、集群维护模式目的参数设置及取值范围等内容。
transaction_isolation
参数说明:设置当前事务的隔离级别。对于开启的新事务,隔离级别固定为default_transaction_isolation的值。
参数类型:字符串
参数单位:无
取值范围:只支持以下字符串,对大小写和空格敏感。
- "serializable":GaussDB目前功能上不支持此隔离级别,设置该隔离级别时,与"repeatable read"效果相同。
- "read committed":仅读取已提交事务的数据,无法读取未提交的数据。
- "read uncommitted":与"read committed"表现相同。
- "repeatable read":仅读取事务开始之前提交的数据,无法读取未提交的数据以及在事务执行期间由其他并发事务提交的修改。
- "default":设置为default_transaction_isolation所设的隔离级别。
默认值:"default"。default_transaction_isolation参数使用默认值"read committed"的情况下,通过以下命令查询的结果为"read committed"。
show transaction_isolation;
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
transaction_read_only
参数说明:设置当前事务是否为只读事务。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示设置当前事务为只读事务。
- off:表示设置当前事务为读写事务。
默认值:off
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
autocommit
参数说明:是否开启自动提交模式。如果设置为on,会话为自动提交模式,每一个单独的语句都会被隐式提交。如果设置为off,则必须使用commit提交事务或使用rollback取消事务。如果autocommit从off修改为on,则对所有未完成的事务执行自动commit。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启自动提交模式。
- off:表示关闭自动提交模式。
默认值:on
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置,不支持gs_guc工具设置此参数。
设置建议:推荐使用默认值。
设置不当的风险与影响:如果设置为off,事务中执行DDL或DCL时,不会自动提交。
- 当dbcompatibility='M'时,支持修改该参数为off,否则只能设置为on。
- GaussDB中,pg_settings视图不能查询该参数,可以通过“SHOW autocommit;”查看。
- 使用autocommit参数,要求打开内部自动提交模式,可通过“\echo :AUTOCOMMIT”方式确认内部自动提交是否为打开状态。如果不是自动提交模式,使用“\set AUTOCOMMIT on”进行打开。
xc_maintenance_mode
参数说明:设置系统是否进入维护模式。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示进入维护模式。
- off:表示不进入维护模式。
谨慎打开这个功能,避免引起集群数据不一致。
默认值:off
设置方式:该参数属于SUSET类型参数,仅支持表2中的方式三进行设置。
设置建议:该参数一般供维护人员排查问题使用,不建议用户开启。
设置不当的风险与影响:修改该参数取值可能导致集群出现意料之外的结果,请保持默认值。
allow_concurrent_tuple_update
参数说明:设置是否允许并发更新。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许并发更新。
- off:表示不允许并发更新。
默认值:on
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host
参数说明:主GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:主GTM的IP地址。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_port
参数说明:主GTM进程的侦听端口。仅sysadmin用户可见。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:安装时指定。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_host1
参数说明:备GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:备GTM的IP地址。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_port1
参数说明:备GTM进程的侦听端口。仅sysadmin用户可见。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有备1,安装时指定。否则为6665。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_backup_barrier
参数说明:指定是否为GTM启动点创建还原点。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示创建还原点。
- off:表示不创建还原点。
默认值:off
设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_conn_check_interval
参数说明:设置检查CN本地线程与主GTM连接是否正常的间隔时间。
参数类型:整型
参数单位:s(秒)
取值范围:0 ~ 2147483
默认值:10
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
enable_show_any_tuples
参数说明:该参数只有在只读事务中可用,用于分析。当这个参数被设置为on时,表中元组的所有版本都会可见。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示表中元组的所有版本都会可见。
- off:表示表中元组的所有版本都不可见。
默认值:off
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
在toast场景下,如果reindex前后均有DML操作(主要是insert+update或insert+delete),在reindex操作后,开启只读事务并打开该GUC参数,release版本下单独查询toast表或toast索引表历史数据正常,但是通过主表查询toast列历史数据会报错“missing chunk number xxx”。
gtm_connect_timeout
参数说明:控制GTM连接超时时间,如果GTM的连接时间超过此参数设置的值,则超时返回。
参数类型:整型
参数单位:s(秒)
取值范围:1 ~ 2147483647
默认值:2
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_connect_retries
参数说明:控制GTM连接重试的次数。
参数类型:整型
参数单位:无
取值范围:1 ~ 2147483647
默认值:30
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_rw_timeout
参数说明:控制GTM反馈超时时间,如果GTM的反馈时间超过此参数设置的值,也就是等待时间超过了此参数值,则超时返回。
参数类型:整型
参数单位:s(秒)
取值范围:1 ~ 2147483647
默认值:60(即1min)
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
enable_redistribute
参数说明:节点不匹配时是否重新分配。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示节点不匹配时重新分配。
- off:表示节点不匹配时不重新分配。
默认值:off
设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
replication_type
参数说明:标记当前部署模式是一主多备模式或单主机模式。
参数类型:整型
参数单位:无
取值范围:0 ~ 3
- 0:是预留参数。
- 1:表示使用一主多备模式,全场景覆盖,推荐使用。
- 2:表示使用单主机模式,此模式无法扩展备机。
- 3:是预留参数。
默认值:1
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。该参数是CM部署时使用的参数,用户不能对该参数进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
pgxc_node_name
参数说明:指定节点名称。
在备机请求主机进行日志复制时,如果application_name参数没有被设置,那么pgxc_node_name参数会被用来作为备机在主机上的流复制槽名字。该流复制槽的命名方式为“该参数值_备机ip_备机port”。其中,备机ip和备机port取自replconninfo参数中指定的备机ip和端口号。该流复制槽最大长度为61个字符,如果拼接后的字符串超过该长度,则会使用截断后的pgxc_node_name进行拼接,以保证流复制槽名字长度小于等于61个字符。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:当前节点名称。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改后会导致连接集群失败。
enable_twophase_commit
参数说明:当前云数据库解决SDS替换问题,采用的模式为GTM Free,为防止业务滥用导致不可靠问题,提供GUC参数开关enable_twophase_commit允许或禁用分布式两阶段写事务。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示GTM-FREE模式下,允许分布式两阶段写事务。
- off:表示GTM-FREE模式下,禁用分布式两阶段写事务。
默认值:on
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
application_type
参数说明:此参数仅在enable_gtm_free为on时有效。此参数表示用户的业务类型。
参数类型:枚举类型
参数单位:无
取值范围:
- not_perfect_sharding_type:表示跨节点的业务。设置此值时,允许执行跨节点的语句。
- perfect_sharding_type:表示单节点的业务。设置此值时,如果SQL语句需要多个节点参与,会直接报错,对应的SQL语句会同时打印到系统日志中。设置为此值时,使用/*+ multinode */ hint可以显式允许SQL语句在多个节点执行。multinode hint可以加到select、insert、update、delete、merge关键字之后。
默认值:perfect_sharding_type
设置方式:该参数属于USERSET类型参数,此参数不支持使用gs_guc设置,只支持以下两种方式设置:
- 使用gsql等客户端在session级别设置。
- 使用jdbc连接数据库时,在连接字符串中指定ApplicationType参数。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host2
参数说明:如有2号GTM,参数值为2号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有2号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host3
参数说明:如有3号GTM,参数值为3号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有3号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host4
参数说明:如有4号GTM,参数值为4号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有4号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host5
参数说明:如有5号GTM,参数值为5号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有5号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host6
参数说明:如有6号GTM,参数值为6号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有6号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_host7
参数说明:如有7号GTM,参数值为7号GTM进程所在的IP地址。仅sysadmin用户可见。该地址支持IPv4与IPv6格式。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:如有7号GTM,为GTM的IP地址,否则为“”。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
gtm_port2
参数说明:如有2号GTM,参数值为2号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有2号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_port3
参数说明:如有3号GTM,参数值为3号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有3号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_port4
参数说明:如有4号GTM,参数值为4号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有4号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_port5
参数说明:如有5号GTM,参数值为5号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有5号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_port6
参数说明:如有6号GTM,参数值为6号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有6号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
gtm_port7
参数说明:如有7号GTM,参数值为7号GTM进程的侦听端口。仅sysadmin用户可见。
参数类型:整型
参数单位:无
取值范围:1 ~ 65535
默认值:如有7号GTM,安装时指定。否则为6666。
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:不建议进行修改。
设置不当的风险与影响:修改端口号会影响数据库正常通信。
enable_defer_calculate_snapshot
参数说明:延迟计算快照的xmin和oldestxmin,执行1000个事务或者间隔1s才触发计算。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示延迟计算快照xmin和oldestxmin。
- off:表示实时计算快照xmin和oldestxmin。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置为on时可以在高负载场景下减少计算快照的开销,但是会导致oldestxmin推进较慢,影响垃圾元组回收。设置为off时xmin和oldestxmin可以实时推进,但是会增加计算快照时的开销。
seqscan_csn_cache_num
参数说明:此参数控制csn cache的大小,此cache只有在seqscan通过MVCC快照扫描heap表页面判断可见性会使用到。
参数类型:整型
参数单位:无
取值范围:0 ~ 1000。参数值为0时,表示不使用csn缓存机制。
默认值:100
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
reject_gtm_address
参数说明:设置拒绝连接的GTM IP地址。
参数类型:字符串
参数单位:无
取值范围:以逗号分隔,分隔后的每个子串格式为IP[:port]。
上述的[:port]表示可选。
默认值:""
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:仅由CM组件在特定流程中自动设置,不建议手动进行修改。
设置不当的风险与影响:不当设置可能导致集群与GTM之间无法进行通信,进而影响集群事务。
verify_clog_csnlog_mode
参数说明:控制Clog与Csnlog页面数据正确性校验报错日志级别和告警输出。
参数类型:枚举类型
参数单位:无
取值范围:
- off:表示关闭报错和告警输出。
- warning:表示开启warning级别报错和告警输出。
- error:表示开启error级别报错和告警输出。
- panic:表示开启panic级别报错和告警输出。
默认值:
- 在使用支持该功能的版本进行全新安装时,默认配置为warning。
- 从不支持该参数的版本升级至支持该参数的版本时,默认配置为off,升级完成后需手动配置。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:请根据实际需求进行配置。若设置为error或panic,在页面故障的情况下,会直接影响业务甚至数据库运行。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。