华为云用户手册

  • ssl_cert_notify_time 参数说明:SSL服务器证书到期前提醒的天数。建立连接初始化ssl证书时,若当前时间距离证书到期时间小于设定值,则在日志中打印过期提醒。 参数类型:整型 参数单位:d(天) 取值范围:7 ~ 180 默认值:90 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。取值如果要带单位,必须为d。 设置建议:推荐使用默认值。 设置不当的风险与影响:参数设置过小,可能导致服务端证书过期没有被提前感知,导致无法及时更换证书;设置过大,可能导致频繁告警。
  • ssl_ca_file 参数说明:指定包含CA信息的根证书名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.pem”结尾。其中空字符串表示没有CA文件被加载,不进行客户端证书验证。 默认值:"cacert.pem" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:需要进行客户端证书验证时,请正确配置文件路径。 设置不当的风险与影响:文件路径错误时,会导致数据库无法校验客户端证书,通信安全性降低。
  • ssl_renegotiation_limit 参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:0 ~ 2147483647。其中0表示禁用重新协商机制。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值1024,表示ssl_renegotiation_limit为1024kB;带单位取值1MB,表示ssl_renegotiation_limit为1MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:建议不做修改。使用SSL重协商机制可能引入其他风险,因此已禁用SSL重协商机制,为保持版本兼容保留此参数,修改参数配置不再起作用。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • ssl_cert_file 参数说明:指定包含SSL服务器证书的文件的名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.crt”结尾。 默认值:"server.crt" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:配置文件路径时,需要确保其与其余SSL相关证书/私钥配置文件是配套关系。 设置不当的风险与影响:文件路径错误时,会导致客户端与服务器无法建立SSL连接,数据库实例主备节点间无法SSL通信,数据存在泄漏风险。
  • ssl_ciphers 参数说明:指定SSL支持的加密算法列表,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:字符串,如果指定多个加密算法,加密算法之间需要以分号(;)分隔。 默认值:"ALL",表示允许对端使用产品支持的所有加密算法,但不包含ADH、LOW、EXP、MD5算法。 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:不建议指定不安全算法DHE-RSA-AES128-GCM-SHA256和DHE-RSA-AES256-GCM-SHA384。 设置不当的风险与影响:ssl_ciphers设置错误会导致数据库不能正常启动。
  • idle_in_transaction_timeout 参数说明:表明与服务器建立连接并开启事务后,事务空闲并不进行任何操作的最长时间。当该参数取值不为0,事务空闲并不进行任何操作的时间超过该参数取值后,会与服务器断开连接。多租场景下,该参数可在PDB级别设置。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 86400(1d) 0表示关闭超时设置。 正数表示与服务器建立连接并开启事务后,事务空闲并不进行任何操作的最长时间。当超过设定的值后,会与服务器断开连接。 默认值:300(即5min)。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示idle_in_transaction_timeout为600s;带单位取值10min,表示idle_in_transaction_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:参数值设置越小越安全,但用户使用越不便,依据业务安全诉求设定。 设置不当的风险与影响:参数设置过小,可能会使得事务开启后,客户端应用在运行过程中没有及时发送新的请求,从而导致会话超时退出,影响用户使用。 GaussDB gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。 idle_in_transaction_timeout与session_timeout同时开启时,在事务空闲状态下都会生效,以配置较小的超时时间为准。 新下发实例该参数取值为300,升级实例默认为0。 空闲事务超时后,日志中会打印事务的开始时间、线程id、应用名以及query等信息。该日志用于空闲事务超时退出问题定位,不包含前缀格式log_line_prefix。
  • session_timeout 参数说明:表明与服务器建立连接后,不进行任何操作的最长时间。当该参数取值不为0,用户不进行任何操作的时间超过该参数取值后,会与服务器断开连接。该参数可在PDB级别设置。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 86400(1d) 0表示关闭超时设置。 正数表示与服务器建立连接后,不进行任何操作的最长时间。当超过设定的值后,会与服务器断开连接。 默认值:600。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示session_timeout为600s;带单位取值10min,表示session_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:参数值设置越小越安全,但用户使用越不便,依据业务安全诉求设定。 设置不当的风险与影响:设置过小可能造成业务连接池中长连接失效,进而导致业务失败。 GaussDB gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。
  • ssl_key_file 参数说明:指定包含SSL私钥的文件的名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.key”结尾。 默认值:"server.key" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:配置文件路径时,需要确保其与其余SSL相关证书/私钥配置文件是配套关系。 设置不当的风险与影响:文件路径错误时,会导致客户端与服务器无法建立SSL连接,数据库实例主备节点间无法SSL通信,数据存在泄漏风险。
  • ssl_enc_cert_file 参数说明:指定包含SSL服务器国密加密证书的文件的名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.crt”结尾。 默认值:"" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:配置文件路径时,需要确保其与其余国密SSL相关证书/私钥配置文件是配套关系。 设置不当的风险与影响:文件路径错误时,会导致客户端与服务器无法建立国密SSL连接,数据库实例主备节点间无法进行国密SSL通信,数据存在泄漏风险。
  • authentication_timeout 参数说明:完成客户端认证的最长时间。如果一个客户端没有在这段时间里完成与服务器端的认证,则服务器自动中断与客户端的连接,这样就避免了出问题的客户端无限制地占用连接数。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 600 默认值:60 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示authentication_timeout为600s;带单位取值10min,表示authentication_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:参数设置过小,可能会导致频繁遇到连接失败,影响用户使用。参数设置过大,会导致安全风险增加、资源浪费等问题。
  • auth_iteration_count 参数说明:认证加密信息生成过程中使用的迭代次数。 参数类型:整型 参数单位:无 取值范围:2048 ~ 134217728 默认值:10000 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:请根据实际硬件条件合理设置迭代次数,推荐采用默认迭代次数。 设置不当的风险与影响:迭代次数设置过小会降低口令存储的安全性,设置过大会导致认证、用户创建等涉及口令加密的场景性能劣化。
  • ecpg预处理以及编译执行 准备嵌入式SQL-C源程序,以.pgc为后缀名,ecpg负责将其转换成可被编译器编译的C语言程序。 生成的C语言程序被编译器编译为可执行文件,运行该可执行文件实现客户端程序访问数据库。示例请参见常用示例章节。 ecpg预处理以及编译处理过程 预处理:ecpg -I $GAUSSHOME/include -o test.c test.pgc ecpg预处理的参数选项如下: ecpg [OPTION]... 其中OPTION参数选项如下: -o OUTFILE:预处理嵌入式SQL-C程序将结果写入OUTFILE,OUTFILE为C语言文件。 -I DIRECTORY:头文件的搜索路径。 -c:预处理嵌入式SQL-C程序自动生成C语言文件。 --version:查看ecpg当前版本。 -C MODE:指定预处理兼容模式,“A”为O兼容。 -r OPTION:指定运行时的行为。OPTION可以是:no_indicator、prepare、questionmarks或with_hold。 no_indicator:使用特殊值来表示空值。 prepare:在使用语句之前先prepare所有语句。 questionmarks:允许使用问号作为占位符。 with_hold:游标创建不带HOLD关键字,默认值为WITH HOLD(该功能需要ecpg和内核版本一致)。 编译:gcc -I $GAUSSHOME/include/ecpg -I $GAUSSHOME/include -I $GAUSSHOME/include/gaussdb/server/ -L $GAUSSHOME/lib -lecpg -lrt -lpq -lpgtypes -lpthread test_ecpg.c -o test_ecpg 执行:./test ecpg作为编译预处理工具,若在预处理或编译过程中出现找不到头文件或者函数实现的报错信息,可以根据需要指定头文件,或者链接动态库。 ecpg需要gcc、ld等编译预处理工具,建议gcc使用7.3.0版本。 使用ecpg开发应用程序所依赖的其他动态库和头文件,常见的位于$GAUSSHOME/include/libpq, $GAUSSHOME/include。 编译过程中常见的动态库依赖:-lpq、-lpq_ce、-lpthread。若开发过程中需要使用libpq通信库,则需要连接-lpq和-lpq_ce。若开发过程中需要使用多线程连接,则需要连接-lpthread。 父主题: 基于ecpg开发
  • gs_logicalstandby_unskip_err(stmt text, dbname text, schema text, object text) 描述:取消逻辑回放可跳过报错语句所在事务的规则。仅管理员用户在容灾备数据库主机上可以执行,用于取消逻辑回放可跳过规则。多租场景下,该函数在PDB内部禁用。 参数说明: stmt 跳过回放的语句类型。 取值范围:字符串,支持类型请参见表 跳过事务支持的语句类型(一级/二级)说明。 dbname 跳过回放操作所在的数据库名称。 取值范围:字符串,与CREATE DATABASE中database_name取值范围保持一致。 schema 跳过回放操作所在的模式名称。 取值范围:字符串,与CREATE SCHEMA中schema_name取值范围保持一致。 object 跳过回放操作具体的对象名称(目前仅支持数据库表名)。 取值范围:字符串。 返回值类型:boolean,默认值为true。 示例: 取消规则:跳过systest数据库、public视图、t1数据表的dml执行出错语句。 gaussdb=# SELECT gs_logicalstandby_unskip_err('dml', 'systest', 'public', 't1'); gs_logicalstandby_unskip_err ------------------------------ t (1 row)
  • gs_logicalstandby_skip_err(stmt text, dbname text, schema text, object text, dump text) 描述:配置逻辑回放可跳过报错语句所在事务的规则。仅管理员用户在容灾备数据库主机上可以执行,用于处理逻辑回放阻塞问题。多租场景下,该函数在PDB内部禁用。 对于不同规则,即stmt、dbname、schema、object至少有一项与已配置规则不同,调用该函数可用于增加新规则配置。 对于相同规则,即stmt、dbname、schema、object均与某已配置规则相同,调用该函数可用于更新dump值。 参数说明: stmt 跳过回放的语句类型。 取值范围:字符串,支持类型参考表 跳过事务支持的语句类型(一级/二级)说明。 dbname 跳过回放操作所在的数据库名称。 取值范围:字符串,与CREATE DATABASE中database_name取值范围保持一致。 schema 跳过回放操作所在的模式名称。 取值范围:字符串,与CREATE SCHEMA中schema_name取值范围保持一致。 object 跳过回放操作具体的对象名称(目前仅支持数据库表名)。 取值范围:字符串。 dump 记录事务详细信息方式。 取值范围:字符串,支持类型如下: all:记录整个事务详细信息。 no:不记录事务详细信息。 skip:记录事务跳过变更的详细信息。 该参数可缺省,缺省值为skip。 返回值类型:boolean,默认值为true。 示例: 设置规则:跳过systest数据库、public视图、t1数据表的dml执行出错语句,dump类型为all。 gaussdb=# SELECT gs_logicalstandby_skip_err('dml', 'systest', 'public', 't1', 'all'); gs_logicalstandby_skip_err ---------------------------- t (1 row) 设置规则:跳过systest数据库、schema_test视图、t2数据表的insert执行出错语句,dump缺省。 gaussdb=# SELECT gs_logicalstandby_skip_err('insert', 'systest', 'schema_test', 't2'); gs_logicalstandby_skip_err ---------------------------- t (1 row)
  • gs_logicalstandby_skip_txn(csn int64, xid int64, dump text) 描述:配置逻辑回放可跳过事务的规则。仅管理员用户在容灾备数据库主机上可以执行,用于处理逻辑回放阻塞问题。多租场景下,该函数在PDB内部禁用。 对于不同规则,即csn、xid至少有一项与已配置规则不同,调用该函数可用于增加新规则配置。 对于相同规则,即csn、xid均与某已配置规则相同,调用该函数可用于更新dump值。 参数说明: csn 跳过事务的提交序号。 取值范围:1~2^63-1间的64位整数。 xid 跳过事务标识。 取值范围:3~2^63-1间的64位整数。 dump 记录事务详细信息方式。 取值范围:字符串,支持类型如下:all-记录整个事务详细信息 no-不记录事务详细信息 skip-记录事务跳过变更的详细信息。 该参数可缺省,缺省值为skip。 该系统函数dump值的'all'与'skip'配置等价。 返回值类型:boolean,默认值为true。 示例: 设置规则:跳过事务提交序号123456、事务标识345678、dump类型为all。 gaussdb=# SELECT gs_logicalstandby_skip_txn(123456, 345678, 'all'); gs_logicalstandby_skip_txn ---------------------------- t (1 row) 设置规则:跳过事务提交序号123456、事务标识345678、dump缺省。 gaussdb=# SELECT gs_logicalstandby_skip_txn(123456, 345678); gs_logicalstandby_skip_txn ---------------------------- t (1 row)
  • gs_get_sqlapply_playback_progress() 描述:查询逻辑备回放文件中数组信息。查询结果为当前逻辑备回放文件中head位置至tail位置的远端事务信息。head位置之前所有的远端事务均已回放,tail为当前数组中最新需要回放的远端事务,head至tail之前的远端事务则存在已回放或者尚未回放的事务。多租场景下,该函数在PDB内部禁用。 备注:若当前数据库实例不为逻辑备,则查询出的结果不准确,部分字段为默认值。 表5 参数含义 字段名称 说明 xid 当前远端事务的xid。 sequence_number 当前回放的远端事务序号。 remote_csn 当前远端事务的csn。 begin_time 当前远端事务在逻辑备机开始回放的时间。 end_time 当前远端事务在逻辑备机结束回放的时间。 status 远端事务在逻辑备机是否已经回放完毕,t代表回放完毕,f代表尚未回放 示例: gaussdb=# SELECT * FROM gs_get_sqlapply_playback_progress(); xid | sequence_number | remote_csn | begin_time | end_time | status --------+-----------------+------------+-------------------------------+-------------------------------+-------- 254203 | 215 | 192108 | 2024-06-17 11:25:36.72872+08 | 2024-06-17 11:25:36.728941+08 | t 254204 | 216 | 192109 | 2024-06-17 11:25:36.771637+08 | 2024-06-17 11:25:36.771723+08 | t 254205 | 217 | 192110 | 2024-06-17 11:25:36.771663+08 | 2024-06-17 11:25:36.771854+08 | t 254206 | 218 | 192111 | 2024-06-17 11:25:36.771777+08 | 2024-06-17 11:25:36.771977+08 | t 254207 | 219 | 192112 | 2024-06-17 11:25:36.771902+08 | 2024-06-17 11:25:36.772105+08 | t (5 rows)
  • gs_change_replication_slot_plugin('slot_name', 'plugin_name') 描述:修改逻辑复制槽插件类型。多租场景下,该函数在PDB内部禁用。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 plugin_name 插件名称。 取值范围:字符串,当前支持mppdb_decoding、sql_decoding、parallel_binary_decoding、parallel_json_decoding、parallel_text_decoding。 返回值类型:boolean,默认值为true。 示例: 查询当前复制槽信息: gaussdb=# SELECT * FROM pg_get_replication_slots(); slot_name | plugin | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby | confirmed_flush | confirmed_csn | dictionary_csn_min | slot_dictionary_type -----------+--------------------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+---------------------- slot1 | parallel_json_decoding | logical | 12834 | f | | | 0/125A15E0 | f | 0/125E84D0 | | 7787 | dictionary table slot2 | parallel_binary_decoding | logical | 12834 | f | | | 0/E9C71B0 | f | 0/E9CA638 | | 3860 | dictionary table slot3 | parallel_text_decoding | logical | 12834 | f | | | 0/E9D96D0 | f | 0/EEE6508 | | 3867 | dictionary table slot4 | mppdb_decoding | logical | 12834 | f | | | 0/E9AFC38 | f | 0/EEE6508 | | 3853 | dictionary table (4 rows) 修改复制槽类型: gaussdb=# SELECT * FROM gs_change_replication_slot_plugin('slot1', 'mppdb_decoding'); gs_change_replication_slot_plugin ----------------------------------- t (1 row) 再次查询复制槽信息: gaussdb=# SELECT * FROM pg_get_replication_slots(); slot_name | plugin | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby | confirmed_flush | confirmed_csn | dictionary_csn_min | slot_dictionary_type -----------+--------------------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+---------------------- slot1 | mppdb_decoding | logical | 12834 | f | | | 0/125A15E0 | f | 0/125E84D0 | | 7787 | dictionary table slot2 | parallel_binary_decoding | logical | 12834 | f | | | 0/E9C71B0 | f | 0/E9CA638 | | 3860 | dictionary table slot3 | parallel_text_decoding | logical | 12834 | f | | | 0/E9D96D0 | f | 0/EEE6508 | | 3867 | dictionary table slot4 | mppdb_decoding | logical | 12834 | f | | | 0/E9AFC38 | f | 0/EEE6508 | | 3853 | dictionary table (4 rows)
  • gs_logicalstandby_skip(stmt text, dbname text, schema text, object text, dump text) 描述:配置逻辑回放可跳过对象的规则。仅管理员用户在容灾备数据库主机上可以执行,用于处理逻辑回放阻塞问题。多租场景下,该函数在PDB内部禁用。 对于不同规则,即stmt、dbname、schema、object至少有一项与已配置规则不同,调用该函数可用于增加新规则配置。 对于相同规则,即stmt、dbname、schema、object均与某已配置规则相同,调用该函数可用于更新dump值。 参数说明: stmt 跳过回放的语句类型。 取值范围:字符串,支持类型参考表6: 表6 跳过事务支持的语句类型(一级/二级) 一级语句类型 二级语句类型 dml insert/update/delete dbname 跳过回放操作所在的数据库名称。 取值范围:字符串,与CREATE DATABASE中database_name取值范围保持一致。 schema 跳过回放操作所在的模式名称。 取值范围:字符串,与CREATE SCHEMA中schema_name取值范围保持一致。 object 跳过回放操作具体的对象名称(目前仅支持数据库表名)。 取值范围:字符串。 dump 记录事务详细信息方式。 取值范围:字符串,支持类型如下:all-记录整个事务详细信息 no-不记录事务详细信息 skip-记录事务跳过变更的详细信息。 该参数可缺省,缺省值为skip。 返回值类型:boolean,默认值为true。 示例: 设置规则:跳过systest数据库、public视图、t1数据表的全部dml语句,dump类型为all。 gaussdb=# SELECT gs_logicalstandby_skip('dml', 'systest', 'public', 't1', 'all'); gs_logicalstandby_skip ------------------------ t (1 row) 设置规则:跳过systest数据库、schema_test视图、t2数据表的insert语句,dump缺省。 gaussdb=# SELECT gs_logicalstandby_skip('insert', 'systest', 'schema_test', 't2'); gs_logicalstandby_skip ------------------------ t (1 row)
  • gs_logicalstandby_unskip(stmt text, dbname text, schema text, object text) 描述:取消逻辑回放可跳过对象的规则。仅管理员用户在容灾备数据库主机上可以执行,用于取消逻辑回放可跳过规则。多租场景下,该函数在PDB内部禁用。 参数说明: stmt 跳过回放的语句类型。 取值范围:字符串,支持类型参考表 跳过事务支持的语句类型(一级/二级)说明。 dbname 跳过回放操作所在的数据库名称。 取值范围:字符串,与CREATE DATABASE中database_name取值范围保持一致。 schema 跳过回放操作所在的模式名称。 取值范围:字符串,与CREATE SCHEMA中schema_name取值范围保持一致。 object 跳过回放操作具体的对象名称(目前仅支持数据库表名)。 取值范围:字符串。 返回值类型:boolean,默认值为true。 示例: 取消规则:跳过systest数据库、public视图、t1数据表的全部dml语句。 gaussdb=# SELECT gs_logicalstandby_unskip('dml', 'systest', 'public', 't1'); gs_logicalstandby_unskip -------------------------- t (1 row)
  • gs_logicalstandby_unskip_txn(csn int64, xid int64) 描述:取消逻辑回放可跳过事务的规则。仅管理员用户在容灾备数据库主机上可以执行,用于取消逻辑回放可跳过规则。多租场景下,该函数在PDB内部禁用。 参数说明: csn 跳过事务的提交序号。 取值范围:1~2^63-1间的64位整数。 xid 跳过事务标识。 取值范围:3~2^63-1间的64位整数。 返回值类型:boolean,默认值为true。 示例: 取消规则:跳过事务提交序号123456、事务标识345678。 gaussdb=# SELECT gs_logicalstandby_unskip_txn(123456, 345678); gs_logicalstandby_unskip_txn ------------------------------ t (1 row)
  • gs_get_logical_standby_meta_for_switchover() 描述:逻辑容灾switchover降备节点准备逻辑备所需的元数据,无入参,无返回值。内部使用功能,仅管理员用户可以执行,不建议用户使用。多租场景下,该函数在PDB内部禁用。 备注:该函数为逻辑容灾下的高危操作函数。该函数会在数据目录下生成逻辑备机状态文件,在非逻辑集群switchover下执行该函数会导致数据库实例状态异常。 返回值类型:text
  • pg_replication_origin_session_setup (node_name) 描述:将当前会话标记为从给定的原点回放,从而允许跟踪回放进度。只能在当前没有选择原点时使用。使用pg_replication_origin_session_reset 命令来撤销。 备注:调用该函数的用户需要具有SYSADMIN权限。 参数说明: node_name 复制源名称。 取值范围:字符串,不支持除字母、数字以及“_”,“?”,“-”,“.”以外的字符。
  • pg_replication_origin_xact_setup (origin_lsn, origin_timestamp) 描述:将当前事务标记为重放在给定LSN和时间戳上提交的事务。只能在使用pg_replication_origin_session_setup选择复制源时调用。 备注:调用该函数的用户需要具有SYSADMIN权限。 参数说明: origin_lsn 复制源回放位置。 取值范围:LSN origin_timestamp 事务提交时间。 取值范围:timestamp with time zone
  • gs_get_logical_standby_info() 描述:查询逻辑备的元数据。无入参,返回5列,第一列:逻辑备当前confirmed_csn;第二列:逻辑备当前restart_lsn;第三列:restart_lsn对应的校验和;第四列:restart_lsn记录的长度;第五列:uuid代表每个版本元数据的唯一标识。内部使用功能,不建议用户使用。多租场景下,该函数在PDB内部禁用。 返回值类型:text
  • gs_get_sqlapply_replaying_status() 描述:查询逻辑备当前回放状态的信息。多租场景下,该函数在PDB内部禁用。 表4 参数含义 字段名称 说明 oldest_commited_txn_xid 当前已提交事务中最晚提交事务的xid。 oldest_commited_txn_csn 当前已提交事务中最晚提交事务的csn。 oldest_commited_txn_sn 当前已提交事务中最晚提交事务的sequence number。 restart_lsn 当前逻辑备机restart_lsn。 confirmed_csn 当前逻辑备机confirmed_csn。 playback_confirmed_csn 逻辑备回放文件中,数组head位置对应事务的confirmed_csn。 last_sec_replay_txn_cnt 上一秒回放事务数。 conflict_record_start_txn_sn 冲突检测记录修改行的起始事务编号。 conflict_record_total_num 冲突检测记录修改行的总数量。 max_committed_txn_sn 已提交事务的最大编号。 schedule_txn_xid 当前调度事务xid。 schedule_txn_sn 当前调度事务编号。 schedule_txn_commit_csn 当前调度事务commit_csn。 schedule_txn_depend_txn_max_sn 当前调度事务依赖事务的最大编号。 schedule_txn_number 当前调度事务次数。 replay_txn_total_number 回放事务总数。 replay_txn_total_time 回放所有事务总耗时。单位:微秒。 replay_txn_max_time 回放单个事务的最大耗时。单位:微秒。 replay_txn_max_change_number 回放单个事务的变更最大数量。 wait_schedule_txn_count 事务调度的等待次数。 wait_schedule_txn_total_time 事务调度的等待耗时。单位:微秒。 free_sqlapply_worker_count 空闲回放线程数量。 need_analyze_txn_count analyzer线程队列中待并行分析的事务数量。 need_schedule_txn_count dispatcher线程队列中待调度事务的数量。 is_dispatcher_suspended dispatcher线程是否处于挂起状态。 dispatcher_suspended_start_time dispatcher线程进入挂起状态的起始时间。 log_receive_thread_restart_times 逻辑回放日志接收线程重启次数。 sqlapply_failover_status 逻辑回放当前failover状态。 取值范围: FAILOVER_INIT:尚未执行failover,初始状态。 FAILOVER_NOTICE_KILL:通知wal receiver退出。 FAILOVER_CHECK_SQL_APPLY_END:检查逻辑备是否退出。 FAILOVER_COPY_X LOG :failover拷贝日志。 FAILOVER_SUC CES S:failover成功。 sqlapply_cache_session_count 逻辑回放缓存的会话数量。 sqlapply_recycle_log_ptr 逻辑回放上次回收日志位点。 sqlapply_receive_log_ptr 逻辑回放已接收的日志位点。 sqlapply_end_ptr 逻辑回放failover(或switchover)结束位点。 sqlapply_decode_log_read_ptr 逻辑回放解码日志读取位点。 sqlapply_decode_txn_max_commit_csn 逻辑回放已解码的事务最大commit_csn。 sqlapply_init_dorado_write_log_ptr failover(或switchover)初始化dorado盘日志写入位点。 sqlapply_failover_start_time 逻辑回放failover(或switchover)的起始时间。 sqlapply_logical_init_time 逻辑备初始化的时间。 sqlapply_thread_status sqlapply当前线程状态。 sqlapply_manual_stop sqlapply是否手动停止标识。 示例: gaussdb=# SELECT * FROM gs_get_sqlapply_replaying_status(); stat_id | stat_name | value ---------+------------------------------------+---------------------------------- 1 | oldest_commited_txn_xid | 51675053 2 | oldest_commited_txn_csn | 51676580 3 | oldest_commited_txn_sn | 50847157 4 | restart_lsn | 1A/5E9E2560 5 | confirmed_csn | 829423 6 | playback_confirmed_csn | 51676492 7 | last_sec_replay_txn_cnt | 554 8 | conflict_record_start_txn_sn | 50841174 9 | conflict_record_total_num | 8645 10 | max_committed_txn_sn | 50847156 11 | schedule_txn_xid | 51675057 12 | schedule_txn_sn | 50847160 13 | schedule_txn_commit_csn | 51676583 14 | schedule_txn_depend_txn_max_sn | 50841174 15 | schedule_txn_number | 1784642 16 | replay_txn_total_number | 1784638 17 | replay_txn_total_time | 8644147345 18 | replay_txn_max_time | 511107457 19 | replay_txn_max_change_number | 2 20 | wait_schedule_txn_count | 674 21 | wait_schedule_txn_total_time | 4482 22 | free_sqlapply_worker_count | 0 23 | need_analyze_txn_count | 511 24 | need_schedule_txn_count | 511 25 | is_dispatcher_suspended | false 26 | dispatcher_suspended_start_time | 2024-07-31T23:06:33.676173+08:00 27 | log_receive_thread_restart_times | 1 28 | sqlapply_failover_status | FAILOVER_INIT 29 | sqlapply_cache_session_count | 4 30 | sqlapply_recycle_log_ptr | 1A/5DEA26A8 31 | sqlapply_receive_log_ptr | 1A/6CFD3218 32 | sqlapply_end_ptr | 0 33 | sqlapply_decode_log_read_ptr | 1A/5EDB2038 34 | sqlapply_decode_txn_max_commit_csn | 51677694 35 | sqlapply_init_dorado_write_log_ptr | 0 36 | sqlapply_failover_start_time | 0 37 | sqlapply_logical_init_time | 0 38 | sqlapply_thread_status | SQLAPPLY_THREAD_START 39 | sqlapply_manual_stop | NO (39 rows)
  • gs_get_inter_cluster_version_info() 描述:查询主备数据库的版本号、逻辑解码组件的版本以及复制类型(逻辑复制或者物理复制)。无入参。双集群大版本滚动升级内部使用功能,不建议用户使用。多租场景下,该函数在PDB内部禁用。返回5列,第一列remote_working_version为远端内核版本号;第二列remote_logical_decoding_version为远端解码组件版本号;第三列local_working_version为当前节点内核版本号;第四列local_logical_decoding_version为当前节点解码组件版本号;第五列replication_type为复制类型(“logic”为逻辑复制,“physic”为物理复制)。 返回值类型:int、text、int、text、text
  • gs_get_parallel_decode_thread_info() 描述:在并行解码所在的DN执行,返回当前DN上并行解码的线程信息。多租场景下,non-PDB调用该函数时返回全部信息,PDB调用该函数时返回本PDB的数据。 返回值类型:int64、text、text、int 示例: gaussdb=# SELECT * FROM gs_get_parallel_decode_thread_info(); thread_id | slot_name | thread_type | seq_number -----------------+-----------+-------------+------------ 140335364699904 | slot1 | sender | 1 140335214098176 | slot1 | reader | 1 140335325312768 | slot1 | decoder | 1 140335291750144 | slot1 | decoder | 2 140335274968832 | slot1 | decoder | 3 140335258187520 | slot1 | decoder | 4 140335165404928 | slot2 | sender | 1 140335022864128 | slot2 | reader | 1 140335129818880 | slot2 | decoder | 1 140335113037568 | slot2 | decoder | 2 (10 rows) 备注:返回值thread_id代表线程id,slot_name代表复制槽名,thread_type表示线程种类(共三种,sender代表发送线程、reader代表读取线程、decoder代表解码线程),seq_number代表每个线程在当前复制槽中同种线程的序号。其中sender和reader在每个并行解码连接中均只有一个,因此序号均为1,decoder的序号从1排列到当前复制槽解码并行度。
  • pg_replication_origin_advance (node_name, lsn) 描述: 将给定节点的复制进度设置为给定的位置。这主要用于设置初始位置,或在配置更改或类似的变更后设置新位置。 注意:这个函数的使用不当可能会导致不一致的复制数据。 备注:调用该函数的用户需要具有SYSADMIN权限。 参数说明: node_name 已有复制源名称。 取值范围:字符串,不支持除字母、数字以及“_”,“?”,“-”,“.”以外的字符。 lsn 复制源回放位置。 取值范围:LSN
  • gs_add_logical_decoding_position_xlog() 描述:执行该函数后会生成XLOG_STANDBY_DECODE_POSITION类型的Xlog日志。该日志会被当前数据库上的解码任务读取,用于反馈解码位置。具有sysadmin、replication或opradmin权限的用户才能调用该函数,否则调用失败。该函数执行频率依据数据库统计,按节点控制每个数据库调用该系统函数的频率,调用最小间隔为1秒。 返回值类型:text
  • gs_logical_decode_stop_observe('slot_name') 描述:停止逻辑复制性能指标采样。多租场景下,non-PDB可以停止PDB和non-PDB的逻辑复制性能指标采样,PDB只能停止PDB的逻辑复制性能指标采样。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 返回值类型:text 示例: gaussdb=# SELECT * FROM gs_logical_decode_stop_observe('replication_slot'); gs_logical_decode_stop_observe -------------------------------- OK (1 row) gaussdb=# SELECT * FROM gs_logical_decode_stop_observe('replication_slot'); gs_logical_decode_stop_observe -------------------------------- observe not started! (1 row) 备注:传入不存在的slot_name时,函数不报错,返回值为invalid slot name。 不允许对已经停止observe的复制槽进行停止observe操作,异常信息按优先级如下: slot_name为空,报错,显示:ERROR: inputString should not be NULL。 slot_name不为空,但不存在,不报错,显示:invalid slot name。 slot_name不为空,但当前slot_name对应的复制槽已停止observe,不报错,显示:observe not started!
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全