华为云用户手册

  • gs_repair_page(path text, blocknum oid, is_segment bool, timeout int) 描述:修复本实例指定页面,仅支持有正常主备连接的主DN使用。页面修复成功返回true,修复过程中出错会有报错信息提示。默认只有在主DN节点上,使用初始化用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。 注意:当DN实例上存在页面损坏时,进行升主会校验出错,报PANIC退出无法升主,为正常现象。不支持hashbucket表、压缩表页面损坏的修复。 参数说明: path 损坏页面的路径。根据local_bad_block_info中file_path一列设置,或者是gs_verify_and_tryrepair_page函数中path一列设置。 取值范围:字符串。 blocknum 损坏页面的页面号。根据local_bad_block_info中block_num一列设置,或者是gs_verify_and_tryrepair_page函数中blocknum一列设置。 取值范围:Oid,0 - 4294967295。注意:输入负值等都会被强制转成非负整数类型。 is_segment 是否是段页式表。根据local_bad_block_info中的bucket_node列值决定,如果bucket_node为-1时,表示不是段页式表,将is_segment设置为false;非-1的情况将is_segment设置为true。支持段页式存储。 取值范围:bool,true或者false。 timeout 等待备DN回放的时长。修复页面需要等待备DN回放到当前主DN对应的位置,根据备DN回放所需时长设定。 取值范围:60s - 3600s。 返回值类型:Boolean 示例(请根据local_bad_block_info的输出传参,否则报错): 页式存储: gaussdb=# SELECT * FROM gs_repair_page('base/16552/24745',0,false,60); result -------- t 段页式存储: gaussdb=# SELECT * FROM gs_repair_page('base/16552/1',4494,true,60); result -------- t
  • gs_repair_undo_byzone(zone_id int) 描述:传入待修复Undo Zone的zone_id,对目标Undo Zone的元信息进行修复,并返回修复结果的详细信息;如果没有进行修复则没有输出信息。 返回值类型:record 备注:当前函数仅支持在主节点进行调用,修复成功后会通过记录xlog日志同步到备机,且调用者必须是系统管理员或者运维模式下的运维管理员,建议使用前开启系统函数的审计日志,便于记录审计信息。 调用本系统函数属于高危风险操作,请用户谨慎使用。 表2 gs_repair_undo_byzone参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo Zone编号: -1:修复所有Undo Zone的元信息。 0~1048575:修复对应zone_id编号的Undo Zone的元信息。 输出参数 zone_id int Undo Zone编号。 输出参数 repair_detail text 对应zone_id的Undo Zone元信息的修复结果,修复成功显示"rebuild undo meta succeed.";修复失败显示"rebuild undo meta failed."及其失败原因。 示例1:输入的zone_id对应的Undo Zone元信息没有损坏时,预期没有输出。 gaussdb=# SELECT * FROM gs_repair_undo_byzone(4); zone_id | repair_detail ---------+--------------- (0 rows) 示例2:输入的zone_id对应的Undo Zone元信息修复成功时,显示修复成功的信息。 gaussdb=# SELECT * FROM gs_repair_undo_byzone(78); zone_id | repair_detail ---------+--------------- 78 | rebuild undo meta succeed. (1 row) 示例3:输入的zone_id对应的Undo Zone元信息修复失败时,显示修复失败的详细信息。 gaussdb=# SELECT * FROM gs_repair_undo_byzone(0); zone_id | repair_detail ---------+--------------- 0 | rebuild undo meta failed. try lock undo zone_id failed. (1 row) 如果待修复的Undo Zone已损坏且zone_id已经被其他活跃线程占用时,调用该修复函数时,占用zone_id的活用线程会自动结束,强制修复已损坏的Undo Zone元信息。
  • gs_seg_verify_datafile(IN tablespace_name name, IN database_name name, IN file_id integer, IN bucketnode integer, IN start_block_id bigint default 0, IN end_block_id bigint default UINT32MAX) 功能 描述:校验段页式1~5文件,main fork是否存在页面损坏,将校验结果记录到local_bad_block_info()函数中。 权限:只有具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行。 参数说明: 名称 类型 描述 tablespace_name name 表空间名称。 database_name name 数据库名称。 file_id integer 文件名称,取值范围:[1,5]的int4值。 bucketnode integer 表的bucketnode。 0~1023表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 当前仅支持hashbucket表与段页式普通表。 start_block_id bigint 校验页面范围开始值,默认值:0。 end_block_id bigint 校验页面范围结束值,默认值:4294967295。 返回值:无。 示例: gaussdb=# SELECT * FROM gs_seg_verify_datafile('seg_tblspc', 'postgres', 2, 1024); WARNING: page verification failed, calculated checksum 60994 but expected 11565, the block num is 4157 gs_seg_verify_datafile ------------------------ (1 row)
  • gs_repair_page_bypath(src_path text, src_blkno int64, dest_path text, dest_blkno int64, storage_type text) 描述:传入源文件路径以及页面号,将该页面覆盖写入到目标文件指定页面号上,支持通过主机修复备机页面,也支持基于备机修复主机页面,此外,该视图支持对坏块的初始化操作。 对目标页面进行覆盖写并同步备机,页式修改对象支持Uheap、Ubtree页面,后续支持Undo Record页面、Undo Slot页面、压缩表,以及Astore页面,段页式修改对象支持Astore页面,支持hashbucket。不支持系统表文件的修改,也不支持对数据区的修改。 功能支持将页面覆盖写到目标页面上。覆盖之前会将目标页面备份并落盘到指定目录,支持将备份页面重写回目标页面,在主机对普通表的修改会生成新的WAL日志并同步备机,在备机的修改不会记录WAL日志。 修复视图适用于主节点,或者开启备机读场景下的备节点。用户需要系统管理员或者运维模式下的运维管理员权限,所有修改均会记录数据库日志,并且,建议使用前开启系统函数的审计日志,便于记录审计信息。 在备机上调用修复视图时,仅支持从主机读取页面修复备机。 修复时源页面与目标页面的LSN必须一致,否则修复失败。 对目标页面进行校验。若目标页面为正确的页面,则不支持进行覆盖。当前校验支持Uheap、Ubtree页面。 返回值类型:text 调用本系统函数属于高危风险操作,请用户谨慎使用。 参数类型 参数名 类型 描述 输入参数 src_path text 源文件的路径。支持的路径主要包含以下几类: 数据文件以及索引文件:gs_log/dump/1663_15808_25075_0.editpage。 在主机端指定src_path为'standby',即从备机端读取页面修复主机。 在备机端可以指定src_path为'primary',即从主机端读取页面修复备机,备机上仅支持‘primary’修复,并且使用前开启备机读。 在主机端指定src_path为'init_block',允许极端场景下跳过坏块。 输入参数 src_blkno bigint 源页面的物理块号。 参数范围:0~MaxBlockNumber。 输入参数 dest_path text 目标文件的相对路径。例如:base/15808/25075。 输入参数 dest_blkno bigint 目标页面的逻辑块号。 参数范围:0~MaxBlockNumber。 输入参数 storage_type text 目标文件的存储方式,可选参数: 'page'(页式)。 'segment'(段页式)。 输出参数 output_msg text 覆盖写成功时返回目标页面备份的路径,失败时返回报错信息。落盘文件名格式为relfilepath_blocknum_timestamp.repairpage。 请根据实际情况按照上表传参并确认物理文件存在。传参有异常或修复失败时将报错。 示例1:输入指定路径下的文件,覆盖写入到目标文件中。 gaussdb=# SELECT * FROM gs_repair_page_bypath('gs_log/dump/1663_15991_16767_0.editpage', 0, 'base/15991/16767', 0, 'page'); output_msg ------------------------------------------------------------------------------------------------ /gs_log_dir/dump/1663_15991_16767_0_738039702421788.repairpage (1 row) 示例2:从备机端读取页面修复主机。 gaussdb=# SELECT * FROM gs_repair_page_bypath('standby', 0, 'base/15990/16768', 0, 'page'); output_msg ------------------------------------------------------------------------------------------------- /gs_log_dir/dump/1663_15990_16768_0_738040397197907.repairpage (1 row) 示例3:从主机端读取页面修复备机。 gaussdb=# SELECT * FROM gs_repair_page_bypath('primary', 0, 'base/15990/16768', 0, 'page'); output_msg ------------------------------------------------------------------------------------------------- /gs_log_dir/dump/1663_15990_16768_0_738040506157799.repairpage (1 row) 示例4:初始化目标页面,支持坏块跳过。 gaussdb=# SELECT * FROM gs_repair_page_bypath('init_block', 0, 'base/15990/16768', 0, 'page'); output_msg ------------------------------------------------------------------------------------------------- /gs_log/dump/1663_15990_16768_0_738040768010281.repairpage (1 row)
  • gs_verify_and_tryrepair_page (path text, blocknum oid, verify_mem bool, is_segment bool) 描述:校验本实例指定页面的情况。默认只有在主DN节点上,使用初始化用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。 返回的结果信息:disk_page_res表示磁盘上页面的校验结果;mem_page_res表示内存中页面的校验结果;is_repair表示在校验的过程中是否触发修复功能,t表示已修复,f表示未修复。多租场景下,non-PDB调用该函数时正常运行,PDB调用该函数时报错。 当DN实例上存在页面损坏时,进行升主会校验出错,报PANIC退出而无法升主,这属于正常现象。不支持hashbucket表页面损坏的修复。 此函数触发的修复仅支持修复内存中的页面,需要在内存页面落盘后的物理页面修复后,才能正式生效。 参数说明: path 损坏文件的路径。依据local_bad_block_info中file_path一列填写。如果要对存储类型为USTORE的表进行UNDO页面校验,请直接填写需要校验的UNDO页面路径。 取值范围:字符串。 blocknum 损坏文件的页号。依据local_bad_block_info中block_num一列填写。如果要对存储类型为USTORE的表进行UNDO页面校验,请直接填写需要校验的UNDO页面的块号。 取值范围:Oid,0 - 4294967295。注意:输入负值等都会被强制转成非负整数类型。 verify_mem 指定是否校验内存中的指定页面。设定为false时,只校验磁盘上的页面。设置为true时,校验内存中的页面和磁盘上的页面。如果发现磁盘上页面损坏,会将内存中的页面做一个基本信息校验刷盘,修复磁盘上页面。如果校验内存页面时发现页面不在内存中,会经内存接口读取磁盘上的页面。此过程中如果磁盘页面有问题,则会触发远程读自动修复功能。 取值范围:Boolean,true和false。 is_segment 是否是段页式表。根据local_bad_block_info中的bucket_node列值决定。如果bucket_node为-1时,表示不是段页式表,将is_segment设置为false;非-1的情况将is_segment设置为true。支持段页式存储。 取值范围:Boolean,true和false。 返回值类型:record 示例(请依据local_bad_block_info的输出传参,否则报错): 页式存储: gaussdb=# SELECT * FROM gs_verify_and_tryrepair_page('base/16552/24745',0,false,false); node_name | path | blocknum | disk_page_res | mem_page_res | is_repair ------------------+------------------+------------+-----------------------------+---------------+---------- dn_6001_6002_6003 | base/16552/24745 | 0 | page verification succeeded.| | f 段页式存储: gaussdb=# SELECT * FROM gs_verify_and_tryrepair_page('base/14365/1',4494,false,true); node_name | path | blocknum | disk_page_res | mem_page_res | is_repair ------------------+--------------+----------+------------------------------+--------------+----------- dn_6001_6002_6003 | base/14365/1 | 4494 | page verification succeeded. | | f
  • local_clear_bad_block_info() 描述:清理local_bad_block_info中已修复页面的数据,也就是repair_time不为空的信息。默认只有初始化用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户、以及监控用户可以查看,其余用户需要赋权后才可以使用。多租场景下,non-PDB调用该函数时正常运行,PDB调用该函数时报错。 返回值类型:Boolean 示例: gaussdb=# SELECT * FROM local_clear_bad_block_info(); result -------- t
  • local_bad_block_info() 描述:显示本实例页面损坏的情况。从磁盘读取页面,发现页面CRC校验失败时进行记录。默认只有初始化用户、具有sysadmin属性的用户、具有监控管理员属性的用户以及在运维模式下具有运维管理员属性的用户、以及监控用户可以查看,其余用户需要赋权后才可以使用。多租场景下,non-PDB调用该函数时返回全部信息,PDB调用该函数时仅返回该PDB相关信息。 显示信息:file_path是损坏文件的相对路径。支持段页式。block_num是该文件损坏的具体页面号,页面号从0开始。check_time表示发现页面损坏的时间。repair_time表示修复页面的时间。 返回值类型:record 示例(仅当有损坏记录时输出相关条目,否则输出0行): gaussdb=# SELECT * FROM local_bad_block_info(); node_name | spc_node | db_node | rel_node| bucket_node | fork_num | block_num | file_path | check_time | repair_time -----------------+-------+--------+--------+--------------+----------+-----------+-----------------+--------------------------+------------------------------- dn_6001_6002_6003| 1663 | 16552 | 24745 | -1 | 0 | 0 | base/16552/24745 | 2022-01-13 20:19:08.385004+08 | 2022-01-13 20:19:08.407314+08
  • gs_inconsistency_info(reset bool) 描述:显示/重置数据库中存在的数据不一致相关信息,入参reset为true时进行重置,为false时则进行显示。默认只有初始用户、具有sysadmin属性的用户、具有监控管理员属性的用户、在运维模式下具有运维管理员属性的用户以及监控用户可以查看,其余用户需要赋权后才可以使用。其中,inconsistency_type是不一致的类型,node_name是节点名,spc_node是表空间ID,db_node是库节点ID,rel_node是表ID,bucket_node是hashbucket的ID,backend是临时表的ID,index_oid是索引的oid,tuple_blkno是元组所在堆表的页号,tuple_offset是元组所在堆表页的偏移,count是这一条不一致信息出现的次数,last_update_time是最后更新这条不一致信息的时间。 返回值类型:record 示例:(在入参reset为false,且当有不一致信息被校验出来时,才会输出相关条目;其他情况下输出0行。) gaussdb=# SELECT * FROM gs_inconsistency_info(false); inconsistency_type | node_name | spc_node | db_node | rel_node | bucket_node | backend | index_oid | tuple_blkno | tuple_offset | count | last_update_time ---------------------+-----------+----------+---------+----------+-------------+---------+-----------+-------------+--------------+-------+------------------------------ INCONSISTENCY_INDEX | sgnode | 1663 | 12902 | 16722 | -1 | -1 | 16728 | 0 | 1 | 1 | 2024-11-20 16:18:56.85289-05
  • gs_repair_file(tableoid Oid, path text, timeout int) 描述:根据传入的参数修复文件,仅支持有正常主备连接的主DN使用。只支持数据表主文件修复,参数依据gs_verify_data_file函数返回的oid和路径填写。段页式表tableoid赋值为0到4294967295的任意值(内部校验根据文件路径判断是否是段页式表文件,段页式表文件则不使用tableoid)。修复成功返回值为true,修复失败会显示具体失败原因。默认只有在主DN节点上,使用初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。 当DN实例上存在文件损坏时,进行升主会校验出错,报PANIC退出无法升主,为正常现象。 当文件存在但是大小为0时,此时不会去修复该文件,若想要修复该文件,需要将为0的文件删除后再修复。 删除文件需要等文件fd自动关闭后再修复,人工操作可以执行重启进程、主备切换命令。 参数说明: tableoid 要修复的文件对应的表oid,依据gs_verify_data_file函数返回的列表中rel_oid一列填写。 取值范围: Oid,0 - 4294967295。注意:输入负值等都会被强制转成非负整数类型。 path 需要修复的文件路径,依据gs_verify_data_file函数返回的列表中miss_file_path一列填写。 取值范围:字符串。 timeout 等待备DN回放的时长,修复文件需要等待备DN回放到当前主DN对应的位置,根据备DN回放所需时长设定。 取值范围:60s - 3600s。 返回值类型:bool 示例(按照gs_verify_data_file的输出填写tableoid和path): 页式存储: gaussdb=# SELECT * FROM gs_repair_file(16554,'base/16552/24745',360); gs_repair_file ---------------- t 段页式存储: gaussdb=# SELECT * FROM gs_repair_file(16554,'base/16573/2',360); gs_repair_file ---------------- t
  • gs_verify_data_file(verify_segment bool) 描述:校验当前实例当前库是否存在文件丢失的情况。校验只包括数据表主文件是否有中间段丢失的情况。默认参数是false,表示不校验段页式表数据文件。参数设置为true时仅校验段页式表文件。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。 返回的结果: 非段页式表:rel_oid和rel_name是对应文件的表oid和表名,miss_file_path表示丢失文件的相对路径。 段页式表:因所有表存放在相同文件中,所以rel_oid和rel_name无法显示具体表的信息。对于段页式表,如果第一个文件损坏,不会检查出后面的.1 .2等文件。例如3、3.1、3.2损坏,只能检查出3损坏。当段页式文件不足5个时,使用函数检测时,未生成的文件也会校验出来,例如只有1和2文件,校验段页式时,也会检测出3,4,5文件。以下示例,第一个是校验非段页式表的示例,第二是校验段页式表的示例。 参数说明: verify_segment 指定文件校验的范围。false校验非段页式表;true校验段页式表。 取值范围:true和false,默认是false。 返回值类型:record 示例(仅当发现有异常时才会输出异常行,否则输出0行): 校验非段页式表 gaussdb=# SELECT * FROM gs_verify_data_file(); node_name | rel_oid | rel_name | miss_file_path ------------------+---------+--------------+------------------ dn_6001_6002_6003 | 16554 | test | base/16552/24745 校验段页式表 gaussdb=# SELECT * FROM gs_verify_data_file(true); node_name | rel_oid | rel_name | miss_file_path -------------------+---------+----------+---------------- dn_6001_6002_6003 | 0 | none | base/16573/2
  • PG_VARIABLE_INFO PG_VARIABLE_INFO视图用于查询数据库中当前节点的xid、oid的状态。 表1 PG_VARIABLE_INFO字段 名称 类型 描述 node_name text 节点名称。 next_oid oid 该节点下一次生成的oid。 next_xid xid 该节点下一次生成的事务号。 oldest_xid xid 该节点最旧的事务号。 xid_vac_limit xid 强制autovacuum的临界点。 oldest_xid_db oid 该节点datafrozenxid最小的数据库oid。 last_extend_csn_logpage xid 最后一次扩展csnlog的页面号。 start_extend_csn_logpage xid csnlog扩展的起始页面号。 next_commit_seqno xid 该节点下次生成的csn号。 latest_completed_xid xid 该节点提交或者回滚后节点上的最新事务号。 startup_max_xid xid 该节点关机前的最后一个事务号。 父主题: 其他系统视图
  • logical_switch_time 参数说明:物理容灾数据库转为逻辑复制的转换超时时间。 参数类型:整型 参数单位:min(分钟) 取值范围:0 ~ 60。其中0表示不设置超时时间。 默认值:10 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:若容灾备数据库和主数据库RTO或RPO较大(超过10分钟)按照默认时间执行物理转逻辑可能失败,需要修改该参数为当前容灾RTO或RPO值加10分钟或更多。物理转逻辑操作建议在业务低谷期执行。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sqlapply_dumptxn_when 参数说明:逻辑回放转储事务的时机。 参数类型:枚举类型 参数单位:无 取值范围: any:逻辑回放总是转储事务的变更到文件。 error:逻辑回放事务执行出错时转储事务的变更到文件。 none:不转储事务的变更到文件。 默认值:error 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sqlapply_shared_storage_log_replay_type 参数说明:逻辑回放时共享盘被用于哪一类数据日志回放。 参数类型:枚举类型 参数单位:无 取值范围: physic:使用共享盘进行物理日志回放。 logic:使用共享盘进行逻辑日志回放。 none:不使用共享盘进行日志回放。 默认值:physic 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sql_apply_autorun 参数说明:逻辑备是否自启动逻辑回放。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:该参数默认为off,在滚动升级期间的备数据库需要设置为on。数据库滚动升级操作时逻辑备机不要关闭此参数。 设置不当的风险与影响:如果在滚动升级期间的备数据库设置为off,逻辑回放会停止,滚动升级会发生异常。
  • logical_replica_identity_force 参数说明:控制全局逻辑复制旧元组的记录级别。 参数类型:枚举类型 参数单位:无 取值范围: 'full':表示所有列都记录为副本标识。 'unique':表示副本标识为主键和唯一键。 'default':表示复制副本标识为默认选择(主键或无)。 'nothing':表示没有记录此关系的副本标识。 'none':表示此全局控制参数不生效。 默认值:'none' 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 如需将已设置为非默认值的logical_replica_identity_force重新设置成'none',须使用将GUC参数恢复成默认值的方法。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sqlapply_logical_decode_options 参数说明:逻辑回放的解码任务启动选项。选项包括:parallel-decode-num,parallel-queue-size,max-txn-in-memory,max-reorderbuffer-in-memory,exclude-users,skip-generated-columns,enable-ddl-decoding,only-local,decode-sequence。 参数类型:字符串 参数单位:无 取值范围: parallel-decode-num 指定并行解码的Decoder线程数量。 取值范围:1 ~ 20的整型,默认值为2。 parallel-queue-size 并行逻辑解码线程间进行交互的队列长度。 取值范围:2 ~ 1024的整型,且只能为2的幂次方,默认值为128。 max-txn-in-memory 内存管控参数,单位为MB,单个事务占用内存大于该值即进行落盘。 取值范围:0 ~ 100的整型,默认值为0,即不开启此种管控。 max-reorderbuffer-in-memory 内存管控参数,单位为GB,拼接-发送线程中正在拼接的事务总内存(包含缓存)大于该值则对当前解码事务进行落盘。 取值范围:0 ~ 100的整型,默认值为0,即不开启此种管控。 exclude-users 黑名单用户的名字参数。 取值范围:指定黑名单用户的名字,多个名字通过','分隔。 skip-generated-columns 逻辑解码控制参数,用于跳过存储生成列的输出。对UPDATE和DELETE的旧元组无效,相应元组始终会输出存储生成列。 取值范围:boolean型,默认值为false。 false:设为false时,输出存储生成列的解码结果。 true:值为true时,不输出存储生成列的解码结果。 虚拟生成列不受此参数控制,DML的解码结果始终不会输出虚拟生成列。 enable-ddl-decoding 逻辑解码控制参数,用于控制是否开启DDL语句的逻辑解码。 取值范围:bool型,默认值为true。 false:设为false时,不开启DDL语句的逻辑解码。 true:设为true时,开启DDL语句的逻辑解码。 only-local 是否仅解码本地日志。 取值范围:Boolean,默认值为true。 false:设为false时,解码非本地日志和本地日志。 true:设为true时,仅解码本地日志。 decode-sequence 逻辑解码控制参数,用来指定是否输出sequence值的变更日志的解码结果。 取值范围:boolean型,默认值为true。 false:设为false时,不输出sequence值的变更日志的解码结果。 true:输出sequence值的变更日志的解码结果。 默认值:默认设置enable-ddl-decoding=true和decode-sequence=true。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。该参数SIGHUP生效并不会影响已经启动的逻辑解码流程。 设置建议:建议根据业务需求进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sqlapply_guard_mode 参数说明:逻辑备机的数据保护模式。 参数类型:枚举类型 参数单位:无 取值范围: guard_none:逻辑备不进行额外数据保护。 guard_standby:逻辑备不允许修改主备同步的数据对象。 guard_all:逻辑备只允许逻辑回放修改数据。 默认值:guard_all 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sqlapply_cache_memory_maxsize 参数说明:控制逻辑回放缓存可使用的内存总量。 参数类型:整型 参数单位:kB 取值范围:-1 ~ 2147483647‬。-1表示内存使用量不受限制。 默认值:102400 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:在不同CPU和内存下,sqlapply_cache_memory_maxsize的设置值可参考表1。 设置不当的风险与影响:设置过大,会消耗过多的系统资源;设置过小,回放效率会降低。 表1 不同CPU和内存的参数设置参考 编号 CPU个数 内存(GB) sqlapply_apply_worker_count sqlapply_cache_memory_maxsize(kB) 备注 1 4 - 4 102400 - 2 8 - 16 102400 - 3 8 64 64 1024000 - 4 16 128 64 2048000 - 5 32 256 128 4096000 - 6 64 512 192 5120000 - 7 96 768 256 10240000 大于此硬件规格的系统均参考此参数设置值。
  • logical_replication_dictionary_retention_time 参数说明:GS_TXN_LSN_TIME以及数据字典相关系统表数据保留时间。 参数类型:整型 参数单位:d(天) 取值范围:1 ~ 3650 默认值:365 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据实际业务需求进行设置。 设置不当的风险与影响:设置过小,会导致指定位点解码的可选区间过小;设置过大,会影响解码性能。
  • sqlapply_preserve_commit_order 参数说明:控制逻辑备机,是否按照远端主机事务的提交顺序进行回放提交。 参数类型:布尔型 参数单位:无 取值范围: on:表示按照远端主机事务的提交顺序。 off:表示不按照远端主机事务的提交顺序。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 设置此参数后,如果当前已经完成物理转逻辑操作,需重启逻辑备机上的逻辑回放业务以使其生效。
  • disable_logical_cache 参数说明:表示是否缓存解码元信息。 参数类型:布尔型 参数单位:无 取值范围: on:不缓存解码元信息。 off:缓存解码元信息。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数默认off,如果需要关闭解码元信息缓存设置为on。 设置不当的风险与影响:设置为on,每次解码都需要构建元信息,影响解码性能。建议在构建元信息版本链无报错的情况下,不设置为on。
  • sqlapply_apply_writeset_maxsize 参数说明:在行集冲突检测方法中,控制全局哈希表存放历史修改行标识的数量。 参数类型:整型 参数单位:无 取值范围:-1 ~ 2147483647‬ 设置为0,表示关闭行集冲突检测。 设置为-1,则表示数量不受限制。 默认值:10000 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,会消耗过多的系统资源。
  • max_keep_log_seg 参数说明:流控参数,逻辑复制在DN本地会解析物理日志转换成逻辑日志,当未被解析的物理日志文件数量大于该参数时会触发限流。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647。此参数为0表示关闭限流功能。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据实际业务需求,判断是否需要进行流控。 设置不当的风险与影响:设置过大,流控一直不触发。
  • sqlapply_apply_worker_count 参数说明:逻辑回放线程的数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 1024,当内存大小不超过16GB时,该参数值不可超过8。 默认值:4 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:在不同CPU和内存下,sqlapply_apply_worker_count的设置值可参考表1。 设置不当的风险与影响:设置过大,会消耗过多的系统资源;设置过小,回放效率会降低。
  • max_changes_in_memory 参数说明:逻辑解码时,单个事务在内存中缓存的DML语句数量上限。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:1 ~ 2147483647‬ 默认值:4096 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,解码到大事务会占用较多的动态内存;设置过小,解码效率会降低。
  • enable_logical_replication_ddl 参数说明:设置逻辑解码是否支持DDL,是否反解析,是否生成日志。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:逻辑复制可支持DDL,对DDL执行结果进行反解析,并生成DDL的WAL日志。 off:不支持DDL,不反解析也不生成WAL日志。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_cached_tuplebufs 参数说明:逻辑解码时,总元组信息在内存中缓存的数量上限。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:1 ~ 2147483647‬ 默认值:8192 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。建议设置为max_changes_in_memory的两倍以上。 设置不当的风险与影响:设置过大,解码到大事务会占用较多的动态内存;设置过小,解码效率会降低。
  • logical_sender_timeout 参数说明:设置本端等待逻辑日志接收端接收日志的最大等待时间。该参数可在PDB级别设置。 参数类型:整型 参数单位:ms(毫秒) 取值范围:0 ~ 2147483647 默认值:30000(30s) 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_logical_replication_dictionary 参数说明:表示是否开启创建多版本字典表类型的逻辑复制槽。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数默认on,如果需要创建online catalog类型的逻辑复制槽时设置为off。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 当该参数开启时,字典类型的系统表基线化完成后才能创建逻辑复制槽,否则创建失败。
共100000条