集群事务
介绍集群事务隔离、事务只读、最大prepared事务数、集群维护模式目的参数设置及取值范围等内容。
transaction_isolation
参数说明:设置当前事务的隔离级别。
该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串,只识别以下字符串,大小写空格敏感:
- serializable:GaussDB中等价于REPEATABLE READ。
- read committed:只能读取已提交的事务的数据(缺省),不能读取到未提交的数据。
- repeatable read:仅能读取事务开始之前提交的数据,不能读取未提交的数据以及在事务执行期间由其它并发事务提交的修改。
- read uncommitted:读未提交,可以读取任何时刻的数据。
- default:设置为defualt_transaction_isolation所设隔离级别。
默认值:read committed
transaction_read_only
参数说明:设置当前事务是只读事务。
该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示设置当前事务为只读事务。
- off表示该事务可以是非只读事务。
默认值:off
xc_maintenance_mode
参数说明:设置系统进入维护模式。
该参数属于SUSET类型参数,仅支持表2中的方式三进行设置。
取值范围:布尔型
- on表示该功能启用。
- off表示该功能被禁用。
谨慎打开这个开关,避免引起集群数据不一致。
默认值:off
allow_concurrent_tuple_update
参数说明:设置是否允许并发更新。
该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示该功能启用。
- off表示该功能被禁用。
默认值:on
gtm_host
参数说明:主GTM进程所在的IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:主GTM的IP地址
gtm_port
参数说明:主GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
取值范围:整型,最小值为1,最大值为65535。
默认值:安装时指定。
gtm_host1
参数说明:备GTM进程所在的IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:备GTM的IP地址
gtm_port1
参数说明:备GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数。
该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备1,安装指定,否则为6665。
pgxc_node_name
参数说明:指定节点名称。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
在备机请求主机进行日志复制时,如果application_name参数没有被设置,那么pgxc_node_name参数会被用来作为备机在主机上的流复制槽名字。该流复制槽的命名方式为 "该参数值_备机ip_备机port"。其中,备机ip和备机port取自replconninfo参数中指定的备机ip和端口号。该流复制槽最大长度为61个字符,如果拼接后的字符串超过该长度,则会使用截断后的pgxc_node_name进行拼接,以保证流复制槽名字长度小于等于61个字符。
此参数修改后会导致连接集群失败,不建议进行修改。
取值范围:字符串。
默认值:当前节点名称。
gtm_backup_barrier
参数说明:指定是否为GTM启动点创建还原点。
该参数属于SUSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示创建还原点。
- off表示不创建还原点。
默认值:off
gtm_conn_check_interval
参数说明:设置CN检查本地线程与主GTM连接是否正常时间。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型, 0 ~ 2147483,单位为秒。
默认值:10s
transaction_deferrable
参数说明:指定是否允许一个只读串行事务延迟执行,使其不会执行失败。该参数设置为on时,当一个只读事务发现读取的元组正在被其他事务修改,则延迟该只读事务直到其他事务修改完成。该参数为预留参数,该版本不生效。与该参数类似的还有一个default_transaction_deferrable,设置它来指定一个事务是否允许延迟。
该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示允许执行。
- off表示不允许执行。
默认值:off
enable_show_any_tuples
参数说明:该参数只有在只读事务中可用,用于分析。当这个参数被置为on/true时,表中元组的所有版本都会可见。
该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on/true表示表中元组的所有版本都会可见。
- off/false表示表中元组的所有版本都不可见。
默认值:off
gtm_connect_timeout
参数说明:控制GTM连接超时时间,如果GTM的连接时间超过此参数设置的值,会超时返回。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为2147483647,单位为秒。
默认值:2s
gtm_connect_retries
参数说明:控制GTM连接重试的次数。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为2147483647。
默认值:30
gtm_rw_timeout
参数说明:控制GTM反馈超时时间,如果GTM的反馈时间超过此参数设置的值,也就是等待时间超过了此参数值,会超时返回。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为2147483647,单位为秒。
默认值:1min
enable_redistribute
参数说明:节点不匹配时是否重新分配。
该参数属于SUSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示节点不匹配时重新分配。
- off表示节点不匹配时不重新分配。
默认值:off
replication_type
参数说明:标记当前HA模式是主备从模式还是一主多备模式或单主机模式。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
该参数是CM部署时的用到的参数,用户不能自己去设置参数值。
取值范围:0~2
- 0 表示主备从模式。
- 1 表示使用一主多备模式,全场景覆盖,推荐使用。
- 2 表示使用单主机模式,此模式无法扩展备机。
默认值:1
enable_gtm_free
参数说明:大并发场景下同一时刻存在活跃事务较多,GTM下发的快照变大且快照请求变多的情况下,瓶颈卡在GTM与CN通讯的网络上。为消除该瓶颈,引入GTM-FREE模式。取消CN和GTM的交互,取消CN下发GTM获取的事务信息给DN。CN只向各个DN发送query,各个DN由本地产生快照及xid等信息,开启该参数支持分布式事务读最终一致性,即分布式事务只有写外部一致性,不具有读外部一致性。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
业务使用GTM-Free模式时,建议将application_type设置成perfect_sharding_type,以便及时发现可能导致数据不一致的SQL语句。否则,系统不会拦截可能导致数据不一致的语句,造成数据不一致。
取值范围:布尔型
- on表示开启GTM-FREE模式,集群状态为读最终一致性。
- off表示非GTM-FREE模式。
默认值:off
enable_twophase_commit
参数说明:当前云数据库主要解决SDS替换问题,采用模式为GTM Free,为防止业务滥用导致不可靠问题,提供guc参数开关enable_twophase_commit禁用分布式写事务,该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型
- on表示开启GTM-FREE模式下,允许业务进行分布式两阶段写事务。
- off表示开启GTM-FREE模式下,禁止业务进行分布式两阶段写事务。
默认值:on
application_type
参数说明:此参数仅在enable_gtm_free为on时有效。此参数用来说明用户的业务类型。该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。此参数不允许使用gs_guc设置,只允许以下列两种方式设置:
- 使用gsql等客户端在session级别设置。
- 使用jdbc连接数据库时,给连接字符串指定ApplicationType参数。
取值范围:枚举类型
- not_perfect_sharding_type表示跨节点的业务。取此值时,允许执行跨节点的语句。
- perfect_sharding_type表示单节点的业务。取此值时,如果SQL语句需要多个节点参与,会直接报错。对应的SQL语句会同时打印到系统日志中。
- 取此值时,使用/*+ multinode */ hint可以显示允许SQL语句在多个节点执行。multinode hint可以加到select、insert、update、delete、merge关键字之后。
gtm_host2
参数说明:如有2号GTM,参数值为2号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备2,为GTM的IP地址,否则为“”。
gtm_host3
参数说明:如有3号GTM,参数值为3号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备3,为GTM的IP地址,否则为“”。
gtm_host4
参数说明:如有4号GTM,参数值为4号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备4,为GTM的IP地址,否则为“”。
gtm_host5
参数说明:如有5号GTM,参数值为5号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备5,为GTM的IP地址,否则为“”。
gtm_host6
参数说明:如有6号GTM,参数值为6号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备6,为GTM的IP地址,否则为“”。
gtm_host7
参数说明:如有7号GTM,参数值为7号GTM进程所在的主机名或IP地址。仅sysadmin用户可见。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:字符串。
默认值:如有备7,为GTM的IP地址,否则为“”。
gtm_port2
参数说明:如有2号GTM,参数值为2号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备2,安装指定,否则为6666。
gtm_port3
参数说明:如有3号GTM,参数值为3号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备3,安装指定,否则为6666。
gtm_port4
参数说明:如有4号GTM,参数值为4号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备4,安装指定,否则为6666。
gtm_port5
参数说明:如有5号GTM,参数值为5号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备5,安装指定,否则为6666。
gtm_port6
参数说明:如有6号GTM,参数值为6号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备6,安装指定,否则为6666。
gtm_port7
参数说明:如有7号GTM,参数值为7号GTM进程的侦听端口。仅sysadmin用户可见。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为65535。
默认值:如有备7,安装指定,否则为6666。
enable_defer_calculate_snapshot
参数说明:延迟计算快照的xmin和oldestxmin,执行1000个事务或者间隔1s才触发计算,设置为on时可以在高负载场景下减少计算快照的开销,但是会导致oldestxmin推进较慢,影响垃圾元组回收,设置为off时xmin和oldestxmin可以实时推进,但是会增加计算快照时的开销。
该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。
取值范围:布尔型。
- on表示延迟计算快照xmin和oldestxmin。
- off表示实时计算快照xmin和oldestxmin。
默认值:on。