华为云用户手册

  • NOT IN expression NOT IN (value [, ...]) 右侧括号中的是一个表达式列表。左侧表达式的结果与表达式列表的内容进行比较。如果在列表中的内容没有符合左侧表达式结果的内容,则NOT IN的结果为true。如果有符合的内容,则NOT IN的结果为false。 示例如下: 1 2 3 4 5 gaussdb=# SELECT 8000+500 NOT IN (10000, 9000) AS RESULT; result ---------- t (1 row) 如果查询语句返回结果为空,或者表达式列表不符合表达式的条件且右侧表达式列表返回结果至少一处为空,则NOT IN的返回结果为null,而不是false。这样的处理方式和SQL返回空值的布尔组合规则是一致的。 在所有情况下X NOT IN Y等价于NOT(X IN Y)。 不支持对XML类型数据操作。
  • IN expression IN (value [, ...]) 右侧括号中的是一个表达式列表。左侧表达式的结果与表达式列表的内容进行比较。如果列表中的内容符合左侧表达式的结果,则IN的结果为true。如果没有相符的结果,则IN的结果为false。 示例如下: 1 2 3 4 5 gaussdb=# SELECT 8000+500 IN (10000, 9000) AS RESULT; result ---------- f (1 row)
  • 背景信息 ANALYZE语句可收集与数据库中表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC中。查询优化器会使用这些统计数据,以生成最有效的执行计划。ANALYZE语句操作请参见ANALYZE | ANALYSE。 建议在执行了大批量插入/删除操作后,例行对表或全库执行ANALYZE语句更新统计信息。目前默认收集统计信息的采样比例是30000行(即:GUC参数default_statistics_target默认设置为100),如果表的总行数超过一定行数(大于1600000),建议设置GUC参数default_statistics_target为-2,即按2%收集样本估算统计信息。 对于在批处理脚本或者存储过程中生成的中间表,也需要在完成数据生成之后显式地调用ANALYZE。 对于表中多个列有相关性且查询中有同时基于这些列的条件或分组操作的情况,可尝试收集多列统计信息,以便查询优化器可以更准确地估算行数,并生成更有效的执行计划。 若表上存在全局二级索引,则需要对基表执行ANALYZE之后再对全局二级索引执行ANALYZE。
  • DBE_PLDEBUGGER.print_var debug端调试过程中,调用print_var,打印当前存储过程内变量中指定的变量名及其取值,也可在报错断住时,使用此函数来打印变量。该函数入参frameno表示查询遍历的栈层数,支持不加入该参数调用,缺省为查看最上层栈变量,如表1所示。 表1 print_var入参和返回值列表 名称 类型 描述 var_name IN text 变量。 frameno IN integer(可选) 指定的栈层数,缺省为最顶层。 varname OUT text 变量名。 vartype OUT text 变量类型。 value OUT text 变量值。 package_name OUT text 变量对应的package名,预留使用,当前均为空。 isconst OUT boolean 是否为常量。 父主题: DBE_PLDEBUGGER Schema
  • 示例 1 2 3 4 5 6 7 8 9 10 11 --创建数据表all_data。 gaussdb=# CREATE TABLE all_data(id int, role varchar(100), data varchar(100)); --创建行访问控制策略。 gaussdb=# CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(role = CURRENT_USER); --删除行访问控制策略。 gaussdb=# DROP ROW LEVEL SECURITY POLICY all_data_rls ON all_data; --删除数据表all_data。 gaussdb=# DROP TABLE all_data;
  • 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_distribute_decode_status() 描述:获取当前节点上分布式解码状态细节(以复制槽为粒度),需在CN上执行,DN上执行仅返回空。 返回值类型:text、int、int、int64、xid、xid、text、text、text gaussdb=# SELECT * FROM gs_get_distribute_decode_status(); slot_name | logical_receiver_num | slice_num | walsender_thread_id | last_sent_csn | last_confirmed_csn | receiver_queue_length | connect_times | csn_receive_array -----------+----------------------+-----------+---------------------+---------------+--------------------+---------------------------------+---------------------------------+--------------------------------------------------- slot1 | 1 | 3 | 139958481843968 | 2012169 | 2010107 | queue0: 1, queue1: 1, queue2: 0 | slice0: 2, slice1: 2, slice2: 2 | slice0: 2012244, slice1: 2012244, slice2: 2012244 (1 row) 表2 指标含义 指标名称 类型 说明 slot_name text 复制槽名。 logical_receiver_num int 分布式解码启动的receiver线程数量。 slice_num int 集群分片数。 walsender_thread_id int64 walsender线程id。 last_sent_csn xid 最近发送的 CS N。 last_confirmed_csn xid 最后从客户端返回的已确认接收的CSN。 receiver_queue_length text 各DN接收日志队列长度(拼接后以字符串格式显示)。 connect_times text 各DN连接次数(拼接后以字符串格式显示)。 csn_receive_array text 各DN获取到的最新CSN(拼接后以字符串格式显示)。
  • gs_logical_decode_start_observe('slot_name', window, interval) 描述:开启逻辑复制性能指标采样。分布式需要在DN上执行。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 window 指定采样窗口大小 取值范围:整数类型,最小2,最大1024,收集最近interval*window时间内采样数据。 interval 性能监控的间隔,时间间隔类型,秒级。 取值范围:时间间隔类型,最小1s,最大1min,收集最近interval*window时间内采样数据。 返回值类型:text
  • gs_get_distribute_decode_status_detail() 描述:获取当前节点上分布式解码状态细节(以DN为粒度),需在CN上执行,DN上执行仅返回空。 返回值类型:text、int、int64、int、int、xid gaussdb=# SELECT * FROM gs_get_distribute_decode_status_detail(); slot_name | slice_id | thread_id | queue_len | connect_times | received_csn -----------+----------+-----------------+-----------+---------------+-------------- slot1 | 0 | 139959895848704 | 1 | 2 | 2012244 slot1 | 1 | 139959895848704 | 1 | 2 | 2012244 slot1 | 2 | 139959895848704 | 0 | 2 | 2012244 (3 rows) 表3 指标含义 指标名称 类型 说明 slot_name text 复制槽名。 slice_id int 分片号(从0开始)。 thread_id int64 分布式解码启动的receiver线程号。 queue_len int 当前DN接收日志队列长度。 connect_times int 各DN连接次数。 received_csn xid 从当前DN获取的最新CSN。
  • gs_change_replication_slot_plugin('slot_name', 'plugin_name') 描述:修改逻辑复制槽插件类型。 参数说明: 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)
  • pg_replication_origin_session_setup (node_name) 描述:将当前会话标记为从给定的原点回放,从而允许跟踪回放进度。只能在当前没有选择原点时使用。使用pg_replication_origin_session_reset 命令来撤销。 备注:调用该函数的用户需要具有SYSADMIN权限。 参数说明: node_name 复制源名称。 取值范围:字符串,不支持除字母、数字以及“_”,“?”,“-”,“.”以外的字符。
  • pg_replication_origin_advance (node_name, lsn) 描述: 将给定节点的复制进度设置为给定的位置。这主要用于设置初始位置,或在配置更改或类似的变更后设置新位置。 注意:这个函数的使用不当可能会导致不一致的复制数据。 备注:调用该函数的用户需要具有SYSADMIN权限。 参数说明: node_name 已有复制源名称。 取值范围:字符串,不支持除字母、数字以及“_”,“?”,“-”,“.”以外的字符。 lsn 复制源回放位置。 取值范围:LSN
  • gs_get_parallel_decode_thread_info() 描述:在并行解码所在的DN执行,返回当前DN上并行解码的线程信息。 返回值类型: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_create_physical_replication_slot('slot_name', 'isDummyStandby') 描述:创建新的物理复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 isDummyStandby 预留参数。 类型:Boolean 返回值类型:name,text 调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 由于该函数创建的物理复制槽没有restart_lsn,会被认为是无效槽,在做checkpoint时会被自动删除。
  • pg_logical_slot_get_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value') 描述:解码并推进流复制槽。 参数说明: 与pg_logical_slot_peek_changes一致,详细内容请参见pg_logical_slot_peek_changes。 备注:调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 在CN上,该函数不支持在CSN序复制槽(confirmed_csn值不为0)上执行。此函数在备DN调用会同步推进主DN上对应的逻辑复制槽。在备DN上执行该函数,推进主DN对应复制槽时需占用主DN的一个walsender。由于逻辑解码功能会为每个逻辑复制槽预留walsender,因此正常场景执行该函数会正常推进主DN的逻辑复制槽,如果短时间连续执行该函数会导致通知主DN推进失败,且没有报错。
  • pg_logical_slot_get_binary_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value') 描述:以二进制格式解码并推进流复制槽。 参数说明:与pg_logical_slot_peek_binary_changes一致,详细内容请参见pg_logical_slot_peek_binary_changes。 备注:调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 在CN上,该函数不支持在CSN序复制槽(confirmed_csn值不为0)上执行。该函数不支持在备DN上执行。
  • pg_replication_slot_advance ('slot_name', 'upto_lsn') 描述:直接推进流复制槽到指定位置(CSN序逻辑复制槽代表CSN,LSN序复制槽代表LSN),不输出解码结果。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除小写字母,数字,以及“_”,“?”,“-”,“.”以外的字符,且不支持'.'或'..'单独作为复制槽名称。 upto_lsn 在CSN序逻辑复制槽上代表推进到的日志CSN位置,下次解码时只会输出比该CSN大的事务结果。如果输入的CSN比当前流复制槽记录的confirmed_csn还要小,则直接返回;如果输入的CSN比当前可获取的最新CSN要大,则推进到当前可获取的最新CSN。 在LSN序复制槽上代表推进到的日志LSN位置,下次解码时只会输出提交位置比该LSN大的事务结果。如果输入的LSN比当前流复制槽记录的推进位置还要小,则报错;如果输入的LSN比当前最新物理日志LSN还要大,则推进到当前最新物理日志LSN。 取值范围:字符串(代表十六进制格式表示的uint64,在正中间用'/'分割,左右两边各为一个uint32,如某个uint32为0则显示0),如'1/2AAFC60'、'0/A060'或'3A/0'。为NULL时表示不对解码截止的日志位置做限制。 返回值类型:name, text 返回值分别对应slot_name和实际推进到的位置(CSN或LSN)。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 在CN上,该函数不支持在CSN序复制槽(confirmed_csn值不为0)上执行。该函数在备DN上仅支持对逻辑复制槽执行,同步推进主DN上对应的逻辑复制槽。在备DN上执行该函数,推进主DN对应复制槽时需占用主DN的一个walsender。由于逻辑解码功能会为每个逻辑复制槽预留walsender,因此正常场景执行该函数会正常推进主DN的逻辑复制槽,如果短时间连续执行该函数会导致通知主DN推进失败,且没有报错。
  • gs_logical_parallel_decode_reset_status('slot_name') 描述:重置gs_logical_parallel_decode_status('slot_name')中的指标。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 返回值类型:text 示例: gaussdb=# SELECT * FROM gs_logical_parallel_decode_reset_status('replication_slot'); gs_logical_parallel_decode_reset_status ----------------------------------------- OK (1 row) gaussdb=# SELECT * FROM gs_logical_parallel_decode_status('replication_slot'); stat_id | stat_name | value ---------+------------------------------+------------------ 1 | slot_name | replication_slot 2 | reader_lsn | 0/357E420 3 | wal_read_total_time | 0 4 | wal_wait_total_time | 0 5 | parser_total_time | 0 6 | decoder_total_time | 0 7 | sender_total_time | 0 8 | net_send_total_time | 0 9 | net_wait_total_time | 0 10 | net_send_total_bytes | 0 11 | transaction_count | 0 12 | big_transaction_count | 0 13 | max_transaction_tuples | 0 14 | sent_transaction_count | 0 15 | spill_disk_transaction_count | 0 16 | spill_disk_bytes | 0 17 | spill_disk_count | 0 18 | input_queue_full_count | 0 19 | output_queue_full_count | 0 20 | dml_count | 0 21 | dml_filtered_count | 0 22 | toast_count | 0 23 | candidate_catalog_xmin | 0 24 | candidate_xmin_lsn | 0/0 25 | candidate_restart_valid | 0/420A598 26 | candidate_restart_lsn | 0/420A598 (26 rows) 备注:传入不存在的slot_name时,函数不报错,返回值为invalid slot name。 不允许对正在进行observe的复制槽进行reset操作,异常信息按优先级如下: slot_name为空,报错,显示:ERROR: inputString should not be NULL。 slot_name不为空,但不存在,不报错,显示:invalid slot name。 slot_name不为空,但当前slot_name对应的复制槽正在被采样(observing),不报错,显示:can't reset during observing! use gs_logical_decode_stop_observe to stop。
  • gs_get_slot_decoded_wal_time(slot_name) 描述:查看某个复制槽最新解码的WAL日志时间。 参数说明: slot_name: 要查询的复制槽名称。 取值范围:字符串,不支持除字母、数字以及“_”,“?”,“-”,“.”以外的字符。 示例: gaussdb=# SELECT * FROM gs_get_slot_decoded_wal_time('replication_slot'); gs_get_slot_decoded_wal_time ------------------------------ 2023-01-10 11:25:22+08 (1 row) 备注:返回一列值代表该复制槽最新解码到的WAL日志时间。 返回的时间来自检查点日志和事务提交日志,存在一定误差。如果没有解码到任何前述包含时间的日志,则显示“2000-01-01 08:00:00+08”(依照数据库设置的时区而定)。查询一个当前不存在的逻辑复制槽的最新解码的WAL日志时间时,返回NULL,在gsql中NULL显示和设置有关,可以使用\pset null 'null'设置。
  • pg_drop_replication_slot('slot_name') 描述:删除流复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 返回值类型:void 调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 删除数据库时不会删除该库上的逻辑复制槽。该库上的逻辑复制槽需要手动删除,否则将会导致xlog和系统表历史版本无法回收。 在CN上删除逻辑复制槽时,若为LSN序逻辑复制槽,则仅删除当前节点复制槽,其他节点同名复制槽不受影响;否则只要其他节点有残留同名CSN序逻辑复制槽,执行删除时不会因为某些节点不存在复制槽而报错,同时所有节点的同名复制槽会被成功删除;如果任何节点均不存在该复制槽,则报错。 如果当前CN节点残留LSN序逻辑复制槽,同时其他某些节点上残留同名CSN序逻辑复制槽,则在当前CN节点上执行删除复制槽操作仅会删除本地LSN序逻辑复制槽,待删除完成再次执行删除操作方可删除其他节点的同名复制槽。
  • pg_get_replication_slots() 描述:获取复制槽列表。 返回值类型:text、text、text、oid、boolean、xid、xid、text、boolean、text、xid、xid、text 示例: 在DN上执行查询: 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 -----------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+---------------------- dn_6002 | | physical | 0 | t | | | 0/3622B528 | f | | | | dn_6003 | | physical | 0 | t | | | 0/3622B528 | f | | | | slot_lsn | mppdb_decoding | logical | 131072 | f | | 66658 | 0/36252350 | f | 0/362523D0 | | | slot_test | mppdb_decoding | logical | 131072 | f | | 66658 | 0/36251718 | f | | 10025527 | | (4 rows) 在CN上执行查询: 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 -----------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+---------------------- slot_test | mppdb_decoding | logical | 139264 | f | | | | f | | | | (1 row) 返回值类型: text、text、text、oid、boolean、xid、xid、text、boolean、text、xid 备注:返回值的slot_name代表复制槽名,plugin代表逻辑复制槽对应的输出插件名称,slot_type代表复制槽的类型(physical代表物理复制槽,logical代表逻辑复制槽),datoid代表复制槽所在的数据库OID,active代表复制槽是否为激活状态(f代表未激活,t代表已激活),xmin代表数据库需为复制槽保留的最早事务的事务号,catalog_xmin代表数据库须为逻辑复制槽保留的最早的涉及系统表的事务的事务号,restart_lsn表示复制槽需要的最早xlog的物理位置,dummy_standby是预留参数,confirmed_flush代表客户端确认接收到的日志位置(逻辑复制槽专用),confirmed_csn代表客户端确认接收到的日志中最后一个事务对应的CSN(逻辑复制槽专用),dictionary_csn_min代表数据库须为逻辑复制槽保留的最早的涉及字典表的事务提交csn,slot_dictionary_type代表逻辑复制槽的类型。 在DN上执行查询,LSN序逻辑复制槽的confirmed_csn查询结果为空,CSN序逻辑复制槽的confirmed_flush查询结果为空;在CN上执行查询,CSN序逻辑复制槽的catalog_xmin、restart_lsn、confirmed_flush和confirmed_csn均不予显示,查询结果为空。
  • gs_get_parallel_decode_status() 描述:监控各个解码线程的读取日志队列和解码结果队列的长度,以便定位并行解码性能瓶颈。 返回值类型:text、int、text、text、text、int64、int64、TimestampTz 示例: gaussdb=# SELECT * FROM gs_get_parallel_decode_status(); slot_name | parallel_decode_num | read_change_queue_length | decode_change_queue_length | reader_lsn | working_txn_cnt | working_txn_memory | decoded_time -----------+---------------------+---------------------------+----------------------------+------------+-----------------+--------------------+------------------------ slot1 | 2 | queue0: 1005, queue1: 320 | queue0: 63, queue1: 748 | 0/1DCE2578 | 42 | 192927504 | 2023-01-10 11:18:22+08 (1 row) 备注:返回值的slot_name代表复制槽名,parallel_decode_num代表该复制槽的并行解码线程数,read_change_queue_length列出了每个解码线程读取日志队列的当前长度,decode_change_queue_length列出了每个解码线程解码结果队列的当前长度,reader_lsn表示当前reader线程读取的日志位置,working_txn_cnt表示当前拼接-发送线程中正在拼接的事务个数,working_txn_memory代表拼接-发送线程中拼接事务占用总内存(单位字节),decoded_time代表该复制槽最新解码到的WAL日志时间。 decoded_time时间来自检查点日志和事务提交日志,存在一定误差。如果没有解码到任何前述包含时间的日志,则显示“2000-01-01 08:00:00+08”(依照数据库设置的时区而定)。
  • pg_create_logical_replication_slot('slot_name', 'plugin_name', 'output_order') 描述:创建逻辑复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,仅支持小写字母、数字以及“_”,“?”,“-”,“.”字符,且不支持“.”或“..”单独作为复制槽名称。 plugin_name 插件名称。 取值范围:字符串,当前支持mppdb_decoding、sql_decoding、parallel_binary_decoding、parallel_json_decoding、parallel_text_decoding。 output_order 复制槽解码结果输出顺序,该参数为可选参数。 取值范围:0或1,在DN上默认值为0, 在CN上默认值为1。 0:设为0时,复制槽解码结果按照事务的COMMIT LSN排序。此时复制槽的confirmed_csn为0,此复制槽称为LSN序复制槽。 1:设为1时,复制槽解码结果按照事务的CSN排序。此时复制槽的confirmed_csn为非0值,此复制槽称为CSN序复制槽,此类复制槽的confirmed_flush值无意义。 返回值类型:name, text 示例: gaussdb=# SELECT * FROM pg_create_logical_replication_slot('slot_lsn','mppdb_decoding',0); slotname | xlog_position ----------+--------------- slot_lsn | 0/6D08B58 (1 row) gaussdb=# SELECT * FROM pg_create_logical_replication_slot('slot_csn','mppdb_decoding',1); slotname | xlog_position ----------+--------------- slot_csn | 0/59AD800 (1 row) 备注:第一个返回值表示slot_name,第二个返回值在LSN序复制槽和CSN序复制槽下有不同含义。对于LSN序复制槽,该值为复制槽的confirmed_flush,表示COMMIT LSN小于等于该值的事务之后不会被解码输出;对于CSN序复制槽,该值为复制槽的confirmed_csn,表示CSN小于等于该值的事务之后不会被解码输出。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。此函数目前只支持在CN或主DN上调用。 当该函数在CN上执行时,如果output_order值为1,会在所有CN和主DN上创建同名复制槽,如果某些DN上已存在同名复制槽,会在除当前CN节点外,其他不存在同名复制槽的CN和主DN节点上创建CSN序逻辑复制槽,同时报错复制槽已存在。因此需删除其他CN和主DN上已有的同名复制槽(如为LSN序复制槽则需在对应节点手动删除)再在CN上重新创建。如果在CN上创建复制槽时指定output_order为0,则不会在DN上创建复制槽。CN上创建的复制槽仅用于标识DN上存在相关复制槽。
  • ADM_TRIGGERS ADM_TRIGGERS视图显示数据库中的触发器信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TRIGGERS字段 名称 类型 描述 owner character varying(128) 触发器的所有者。 trigger_name character varying(64) 触发器名称。 trigger_type character varying 触发器触发的时机。取值范围:before statement、before each row、after statement、after each row、instead of。 triggering_event character varying 触发触发器的事件。取值范围:update、insert、delete、truncate。 table_owner character varying(64) 定义触发器的表的所有者。 base_object_type character varying(18) 定义触发器的基础对象。取值范围:table,view。 table_name character varying(64) 定义触发器的表或视图名称。 column_name character varying(4000) 暂不支持,值为NULL。 referencing_name character varying(422) 暂不支持,值为referencing new as new old as old。 when_clause character varying(4000) when子句的内容,必须求值为true才能执行trigger_body。 status character varying(64) 触发器的状态。 O:触发器在“origin”和“local”模式下触发。 D:触发器被禁用。 R:触发器在“replica”模式下触发。 A:触发器始终触发。 description character varying(4000) 触发器描述。用于重新创建触发器创建语句。 action_type character varying(11) 触发体的动作类型,仅支持call。 trigger_body text 触发器触发时执行的语句。 crossedition character varying(7) 暂不支持,值为NULL。 before_statement character varying(3) 暂不支持,值为NULL。 before_row character varying(3) 暂不支持,值为NULL。 after_row character varying(3) 暂不支持,值为NULL。 after_statement character varying(3) 暂不支持,值为NULL。 instead_of_row character varying(3) 暂不支持,值为NULL。 fire_once character varying(3) 暂不支持,值为NULL。 apply_server_only character varying(3) 暂不支持,值为NULL。 父主题: 其他系统视图
  • ADM_VIEWS ADM_VIEWS视图显示数据库中的视图信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_VIEWS字段 名称 类型 描述 owner character varying(64) 视图的所有者。 view_name character varying(64) 视图名称。 text text 视图文本。 text_length integer 视图文本长度。 text_vc character varying(4000) 视图创建语句。此列可能会截断视图文本。BEQUEATH子句将不会作为此视图中的TEXT_VC列的一部分出现。 type_text_length numeric 暂不支持,值为NULL。 type_text character varying(4000) 暂不支持,值为NULL。 oid_text_length numeric 暂不支持,值为NULL。 oid_text character varying(4000) 暂不支持,值为NULL。 view_type_owner character varying(128) 暂不支持,值为NULL。 view_type character varying(128) 暂不支持,值为NULL。 superview_name character varying(128) 暂不支持,值为NULL。 editioning_view character varying(1) 暂不支持,值为NULL。 read_only character varying(1) 暂不支持,值为NULL。 container_data character varying(1) 暂不支持,值为NULL。 bequeath character varying(12) 暂不支持,值为NULL。 origin_con_id character varying(256) 暂不支持,值为NULL。 default_collation character varying(100) 暂不支持,值为NULL。 containers_default character varying(3) 暂不支持,值为NULL。 container_map character varying(3) 暂不支持,值为NULL。 extended_data_link character varying(3) 暂不支持,值为NULL。 extended_data_link_map character varying(3) 暂不支持,值为NULL。 has_sensitive_column character varying(3) 暂不支持,值为NULL。 admit_null character varying(3) 暂不支持,值为NULL。 pdb_local_only character varying(3) 暂不支持,值为NULL。 父主题: 其他系统视图
  • copy_special_character_version 参数说明:控制使用COPY导入导出数据时对非法编码的字符处理的相关表现。 参数类型:字符串 参数单位:无 取值范围:""、"no_error"、"per_byte"。 表2 兼容性配置项 兼容性配置项 兼容性行为控制 "no_error" 使用COPY导入数据文件时,当文件编码与服务端编码相同时,对数据文件中不满足编码信息的数据进行容错处理,不报错,并直接按照原编码插入表中。 "per_byte" 使用COPY导出文本格式的数据文件时,对文件编码为GBK或ZHS16GBK文件的处理方式。 设置per_byte后,在导出数据时一次导出一个字节数据,否则一次导出两个字节数据(GBK编码下,一个字符占两个字节)。 "" 参数默认配置,不影响任何功能使用,做前向兼容处理。即COPY存在非法编码时报错。 默认值:"" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。使用gsql连接数据库,使用set方式设置时不区分大小写,使用gs_guc设置时仅能设置小写。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 为保证导入表中数据的合法性,COPY中需要对数据编码的合法性进行校验。当开启此参数后,会屏蔽非法校验操作并导致字段内出现非法字符,请酌情考虑开启此参数。 当前屏蔽数据编码校验仅在服务端编码与数据编码保持一致时生效,即copy_special_character_version参数值为"no_error"时,数据库服务端编码须与数据文件编码保持一致,否则会报错;未指定数据编码时,数据编码默认为客户端编码。 二进制模式下,copy_special_character_version参数值为"no_error"时,仅对TEXT、CHAR、VARCHAR、NVARCHAR2、CLOB类型的字段生效。 此参数仅在UTF-8、GB18030、GB18030_2022、ZHS16GBK、LATIN1字符集数据库下使用生效。 客户端编码与服务端编码都为GBK或ZHS16GBK时,当数据库内存在非法编码的数据时,如果不设置copy_special_character_version为"per_byte",导出的数据文件中可能会存在预期外的数据。 设置copy_special_character_version值为"no_error"的优先级高于COPY内COMPATIBLE_ILLEGAL_CHARS参数。
  • a_format_enable_copy_empty_lobs 参数说明:ORA兼容模式下,执行COPY FROM批量插入时,是否允许通过空字符串输入向BLOB及CLOB类型中插入空字符串。 参数类型:布尔型 参数单位:无 取值范围:on、off。 表4 兼容性配置项 兼容性配置项 兼容性行为控制 on ORA兼容模式下,允许通过空字符串输入向CLOB及BLOB类型中插入空字符串。 比如将1,"",3插入到表中,第二个字段的结果为空,但是无法通过WHERE col2 IS null进行过滤,且字段的长度为0。 off ORA兼容模式下,允许通过空字符串输入向CLOB及BLOB类型中插入空字符串。空字符串会被转换为NULL进行存储。 比如将1,"",3插入到表中,第二个字段的结果为NULL,可以通过WHERE col2 IS null进行过滤。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议配置为默认值,如果需要前向兼容再设置为off。 关于空字符串输入与空值输入: 在COPY的CSV格式下,1,,3表示空值输入,1,"",3表示空字符串输入。参数开启时,前者的第二个字段会被插入为NULL,后者的第二个字段会被插入为空字符串;参数关闭时,前者和后者的第二个字段都会被插入为NULL。 对于新安装部署的数据库,参数默认取值为on;对于升级更新后的数据库,为了保证数据库的前向兼容性,参数默认取值为off。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • support_binary_copy_version 参数说明:使用COPY TO的BINARY模式导出数据时,是否包含当前数据库服务端的编码信息。 参数类型:字符串 参数单位:无 取值范围:""、"header_encoding"。 表1 兼容性配置项 兼容性配置项 兼容性行为控制 header_encoding 使用COPY TO的BINARY模式导出数据时,二进制文件头中包含当前数据库服务端的编码信息。 空字符串 做前向兼容处理时配置,以原二进制格式进行导出。 默认值:"header_encoding" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:无特殊情况时建议配置为默认取值,仅做前向兼容时需另行配置为空。 设置不当的风险与影响:设置为空字符串时,导出结果中不包含服务端编码信息,在需要编码信息的场景下,需要用户自行查询并记录。
  • enable_log_copy_illegal_chars 参数说明:使用gs_loader导入数据及COPY导入导出数据时,遇到非法编码的字符时,是否向数据库运行日志中写入记录。 参数类型:布尔型 参数单位:无 取值范围:on、off。 表3 兼容性配置项 兼容性配置项 兼容性行为控制 on 每出现一行包括非法编码字符的数据,都会向数据库运行日志中写入一条记录。 off 不向数据库运行日志中写入非法编码字符相关记录。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:无特殊情况时建议配置为默认值,仅对数据库性能及磁盘带宽有要求时设置为off。 设置不当的风险与影响:设置为off时将不会在运行日志中写入非法编码字符相关记录,影响可定位能力。
  • gds_debug_mod 参数说明:为了增强对Gauss Data Service(以下简称GDS)相关问题的分析定位能力,可以通过此参数选择是否开启GDS的debug功能。参数开启后,将在集群节点对应的日志中输出GDS每次收发的包裹类型、命令交互的对端以及其他交互相关的细节信息,方便记录Gaussdb端状态机的状态跳转,以及目前所处的状态信息。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启GDS的debug功能。 off:表示不开启GDS的debug功能。 默认值:off 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议仅在定位GDS问题时开启。 设置不当的风险与影响:此参数打开会输出额外日志,增加日志I/O开销,进而影响性能和日志的信息有效性。
共100000条
提示

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