华为云用户手册

  • wal_flush_timeout 参数说明:遍历walInsertStatusTable的超时时间。xlog刷盘自适应控制的刷盘I/O遍历walInsertStatusTable等待的最大时间。 参数类型:整型 参数单位:us(微秒) 取值范围:0 ~ 90000000 默认值: 2(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);800(4核CPU/16G内存) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置值过大可能造成xlog刷盘频率降低,降低xlog处理性能。
  • max_size_for_shared_storage_xlog_write 参数说明:控制共享盘单次写入的最大数据量。 参数类型:整型 参数单位:kB 取值范围:8 ~ 131072 默认值:1024 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • walwriter_cpu_bind 参数说明:把walwriter线程绑定到指定CPU核上运行。 参数类型:整型 参数单位:无 取值范围:-1 ~ 核数减1。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把walwriter线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • wal_sender_bind_cpu_attr 参数说明:用于控制日志发送的绑核操作,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:长度大于0,该参数不区分大小写。 'nobind':线程不做绑核。 'cpuorderbind: 8-12': 从8号核开始一个线程绑定一个CPU,区间内核不足就不参与绑定。建议区间大小设置为大于等于参数max_wal_senders。 默认值:'nobind' 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • xlog_file_path 参数说明:双数据库实例共享存储场景下,xlog日志共享盘的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:NULL 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:设置不当会使数据库无法启动。
  • xlog_file_size 参数说明:双数据库实例共享存储场景下,xlog日志共享盘的大小。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:整型 参数单位:Byte 取值范围:134217728 ~ 576460752303423487 默认值:549755813888 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • xlog_lock_file_path 参数说明:双数据库实例共享存储场景下,xlog日志共享盘抢占的锁文件的路径。本参数在数据库系统初始化时由OM进行配置,不建议用户自行修改。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:NULL 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:设置不当会使数据库无法启动。
  • walwriteraux_bind_cpu 参数说明:绑定到辅助写日志线程的CPU核。 参数类型:整型 参数单位:无 取值范围:-1 ~ 2147483647。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把辅助写日志线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。虽然最大值为INT_MAX,但是实际和所用设备核数相关,设置的最大值不能超过(核数-1)。 设置不当的风险与影响:设置值超过(核数-1),会导致数据库无法启动。
  • wal_file_init_num 参数说明:WAL writer辅助线程启动时在主机上一次创建xlog段文件的数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 1000000 默认值:10(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存);0(32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存,4核CPU/16G内存) 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,会占用过多的磁盘空间,占用量为 wal_file_init_num * wal_segment_size。
  • wal_file_preinit_bounds 参数说明:业务运行时,WAL writer辅助线程每秒可预生成空的WAL日志段文件的数量限制(WAL日志段文件的大小为16MB)。当该参数值为0时,表示不进行限制。 参数类型:整型 参数单位:无 取值范围:0 ~ 1024 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐设置为默认值,不做调整。当把该参数设置为有效值时,需基于磁盘I/O能力进行设置,可参考参数max_io_capacity的数值进行设置。 若max_io_capacity为500MB,可设置为25; 若max_io_capacity为1GB,可设置为50。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • wal_sync_method 参数说明:参数fsync开启的前提情况下,设置向磁盘强制更新WAL数据的方法。 如果参数fsync关闭,这个参数的设置就没有意义,因为所有数据更新都不会强制写入磁盘。 参数类型:枚举类型 参数单位:无 取值范围: open_datasync:表示用带O_DSYNC选项的open()打开“WAL”文件。 fdatasync:表示每次提交的时候都调用fdatasync()(支持suse10和suse11)。 fsync_writethrough:表示每次提交的时候调用fsync()强制把缓冲区任何数据写入磁盘。 fsync:表示每次提交的时候调用fsync()(支持suse10和suse11)。 open_sync:表示用带O_SYNC选项的open()写“WAL”文件(支持suse10和suse11)。 不是所有的平台都支持以上参数。 由于历史原因,Windows平台支持将wal_sync_method设置为fsync_writethrough。在windows平台上fsync_writethrough和fsync等效。 在集中式环境,如果配置了enable_standby_walsync_optimization参数,打开WAL日志同步性能优化,在备机上WAL日志采用ADIO方式写盘,写盘固定为PG_O_DIRECT | OPEN_DATASYNC_FLAG方式,不受wal_sync_method参数影响。enable_standby_walsync_optimization参数只影响集中式的备机写盘方式,不影响主机。分布式不支持enable_standby_walsync_optimization参数。 默认值:fdatasync 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。该参数可在PDB级别设置。 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter线程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟可能会造成不必要的等待。 参数类型:整型 参数单位:us(微秒) 取值范围:0 ~ 100000,其中0表示无延迟。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:参考须知。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • full_page_writes 参数说明:设置 GaussDB 服务器在检查点之后对页面的第一次修改时,是否将每个磁盘页面的全部内容写到WAL日志中。当enable_incremental_checkpoint和enable_double_write同时打开时,则不开启full_page_writes。 参数类型:布尔型 参数单位:无 取值范围: on:表示启用此特性。 off:表示关闭此特性。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。启用此特性后,完整的页面写到磁盘,会在崩溃重启过程中,保证页面被正确还原进而确保数据完整,代价是增加了写入WAL日志的数据量。 设置不当的风险与影响:关闭此特性后,由于操作系统崩溃过程中可能出现磁盘页面只写入了一部分内容的现象,从而导致无法恢复原来的数据。如果服务器硬件的特质(比如电池供电的磁盘控制器)可以减小部分页面的写入风险,或者文件系统特性支持(比如ReiserFS 4),并且用户清楚知道写入风险在可接受的范畴,才可以关闭这个参数。
  • wal_log_hints 参数说明:在检查点之后,如果对页面的第一次修改是对页面上元组hint bits的修改时,是否将整个页面的全部内容写到WAL日志中。 参数类型:布尔型 参数单位:无 取值范围: on:表示整个页面全部内容写到WAL日志中。 off:表示整个页面内容不会写到WAL日志中。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不推荐用户修改此设置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • commit_siblings 参数说明:当一个事务发出提交请求时,如果数据库中正在执行的事务数量大于此参数的值,则该事务将等待一段时间(commit_delay的值),否则该事务则直接写入WAL。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 1000 默认值:5。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • wal_segment_size 参数说明:表示WAL日志段文件的大小。可以X LOG _BLCKSZ数量表示,同时也可以实际的大小表示。XLOG_BLCKSZ是XLOG块的大小,一般默认为8kB。 参数类型:整型 参数单位:8kB 取值范围:2048(即16MB) 默认值:16MB(2048 * 8kB) 设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。 设置建议:该参数不允许用户进行设置,只能查看。 设置不当的风险与影响:无
  • fsync 参数说明:设置GaussDB服务器是否使用fsync()系统函数确保数据的更新及时写入物理磁盘中(fsync()系统函数实现的种类,请参见参数wal_sync_method)。 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用fsync()系统函数。 off:表示不使用fsync()系统函数。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 注意事项 不允许对一个已关闭的游标再做任何操作。 一个不再使用的游标应该尽早关闭。 当创建游标的事务用COMMIT或ROLLBACK终止之后,每个不可保持的已打开游标都隐含关闭。 当创建游标的事务通过ROLLBACK退出之后,每个可以保持的游标都将隐含关闭。 当创建游标的事务成功提交,可保持的游标将保持打开,直到执行一个明确的CLOSE或者客户端断开。 GaussDB没有明确打开游标的OPEN语句,因为一个游标在使用CURSOR命令定义的时候就打开了。可以通过查询系统视图pg_cursors看到所有可用的游标。
  • PG_REPLICATION_ORIGIN PG_REPLICATION_ORIGIN系统表包含所有已创建的复制源,该表在数据库实例的所有数据库之间共享,即每个实例只有一份,而不是每个数据库一份。 表1 PG_REPLICATION_ORIGIN字段 名称 类型 描述 roident oid 一个数据库实例范围内唯一的复制源标识符。 roname text 外部的由用户定义的复制源名称。 父主题: 其他系统表
  • 废弃参数 tde_cmk_id transparent_encrypted_string transparent_encrypt_kms_url transparent_encrypt_kms_region hll_default_regwidth hll_default_expthresh hll_default_sparseon hll_max_sparse enable_compress_hll plpgsql_dependency enable_gs_opt prefetch_quantity backwrite_quantity fast_extend_file_size enable_adio_debug version_retention_age wal_flush_delay enable_slow_query_log query_log_file query_log_directory enable_global_stats az_switchover_threshold az_check_and_arbitrate_interval az_connect_check_interval az_connect_check_delay_time enable_fast_allocate
  • gs_get_workload_rule_stat(rule_id) 描述:查询SQL限流规则拦截SQL的次数。需要具有sysadmin权限的用户才可执行。多租场景下,non-PDB调用该函数时正常运行,PDB调用该函数时报错。 参数:rule_id,要查询的限流规则ID,类型为int8。可以指定rule_id为-1,此时表示查询所有的SQL限流规则。 表3 返回值类型说明 名称 类型 描述 rule_id int8 SQL限流规则的ID。 validate_count int8 SQL限流规则拦截SQL的次数。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT * FROM gs_get_workload_rule_stat(1); rule_id | validate_count ---------+---------------- 1 | 0 (1 row) gaussdb=# SELECT * FROM gs_get_workload_rule_stat(-1); rule_id | validate_count ---------+---------------- 1 | 0 2 | 0 (2 rows)
  • gs_delete_workload_rule(rule_id int8) 描述:删除一条SQL限流规则。需要具有sysadmin权限的用户才可执行。 参数:rule_id,要更新的限流规则ID,类型为int8。 返回值类型:BOOLEAN 示例: 1 2 3 4 5 gaussdb=# SELECT gs_delete_workload_rule(3); gs_delete_workload_rule ------------------------- t (1 row)
  • gs_update_workload_rule(rule_id, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:更新一条SQL限流规则,需要重新设置全部参数,不支持只指定部分参数。需要具有sysadmin权限的用户才可执行。 参数:参数介绍请参见表2 返回值类型:BOOLEAN 表2 gs_update_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_id int8 要更新的限流规则ID。 - rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id值为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint。 “select”、“insert”、“update”、“delete”、“merge” :要限流的关键字序列,不区分大小写,可以为NULL。 “resource”:要限流的资源阈值,形式为'{cpu-80, memory-70}',表示触发实例级别限流的操作系统资源阈值,可以为NULL,表示不管资源利用率直接进行限流。 示例: 1 2 3 4 5 6 gaussdb=# CREATE database db1; gaussdb=# SELECT gs_update_workload_rule(2, 'rule for select 2', '{db1}', now(), '', 50, '{tb1}'); gs_update_workload_rule ------------------------- t (1 row)
  • gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val) 描述:创建一条SQL限流规则。需要具有sysadmin权限的用户才可执行。 参数:参数介绍请参见表1。 返回值类型:int8 表1 gs_add_workload_rule参数说明 参数名称 类型 描述 取值范围 rule_type text 限流规则类型,不区分大小写。 “sqlid”:根据Unique SQL ID进行限流。 “select”、“insert”、“update”、“delete”、“merge”:根据查询类型和关键字进行限流。 “resource”:根据系统资源利用率进行实例级别的限流。 rule_name name 限流规则名称,用于检索限流规则。 任意字符串,可以为NULL。 databases name[] 限流规则生效的数据库名称数组,区分大小写。 数据库名列表,必须为已创建的数据库名。可以为NULL,表示所有数据库生效。 目前只有指定rule_type为查询类型时,数据库列表才生效,因为Unique SQL ID本身是与库进行绑定的,其只属于某个库;而根据资源利用率的限流规则是对实例生效的,即对所有库生效。 start_time timestamptz 限流规则生效的开始时间。 可以为NULL,表示从当前时间开始生效。 end_time timestamptz 限流规则生效的结束时间。 可以为NULL,表示规则一直生效。 max_workload int8 限流规则设置的最大并发数。 - option_val text[] 限流规则的补充信息。 与rule_type匹配,具体匹配关系如下: “sqlid”:要限流的Unique SQL ID,以及慢SQL管控规则,格式为'{id=1234, time_limit=100, max_execute_time=500, max_iops=1}',其中id值为Unique SQL ID,为必选项,可通过dbe_perf.statement或者pg_stat_activity视图获取。其他选项非必选,其含义参考慢SQL管控规则的Hint。 “select”、“insert”、“update”、“delete”、“merge”: 要限流的关键字序列,不区分大小写,可以为NULL。 “resource”: 要限流的资源阈值,形式为'{cpu-80, memory-70}',表示触发实例级别限流的操作系统资源阈值,可以为NULL,表示不管资源利用率直接进行限流。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT gs_add_workload_rule('sqlid', 'rule for one query', '', now(), '', 20, '{id=32413214}'); gs_add_workload_rule ---------------------- 1 (1 row) gaussdb=# CREATE database db1; gaussdb=# CREATE database db2; gaussdb=# SELECT gs_add_workload_rule('select', 'rule for select', '{db1, db2}', '', '', 100, '{tb1, tb2}'); gs_add_workload_rule ---------------------- 2 (1 row) gaussdb=# SELECT gs_add_workload_rule('resource', 'rule for resource', '{}', '', '', 20, '{cpu-80}'); gs_add_workload_rule ---------------------- 3 (1 row)
  • DBE_PLDEBUGGER.disable_breakpoint debug端调试过程中,调用disable_breakpoint禁用已被激活的断点,如表1所示。 表1 disable_breakpoint入参和返回值列表 名称 类型 描述 breakpointno IN integer 断点编号。 result OUT bool 是否成功。 父主题: DBE_PLDEBUGGER Schema
  • GLOBAL_REPLICATION_SLOTS GLOBAL_REPLICATION_SLOTS视图用于查看数据库各节点的复制槽的信息,如表1所示。 表1 GLOBAL_REPLICATION_SLOTS字段 名称 类型 描述 node_name name 节点名称。 slot_name text 复制槽的名称。 plugin text 逻辑复制槽对应的输出插件名称。 slot_type text 复制槽的类型。 physical:物理复制槽。 logical:逻辑复制槽。 datoid oid 复制槽所在的数据库OID。 database name 复制槽所在的数据库名称。 active boolean 复制槽是否为激活状态。 t(true):表示是。 f(false):表示不是。 x_min xid 数据库需要为复制槽保留的最早事务的事务号。 catalog_xmin xid 数据库需要为逻辑复制槽保留的最早的涉及系统表的事务的事务号。 restart_lsn text 复制槽需要的最早xlog的物理位置。 dummy_standby boolean 预留参数。 复制槽的连接对端是否为从备。 t(true):表示是。 f(false):表示不是。 父主题: Utility
  • dbe_perf.get_full_sql_by_parent_id_and_timestamp(parent_id bigint, start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:根据parent_id获取某个时间段内,执行某个存储过程的数据库级的全量SQL及其子语句的记录。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 参数 类型 描述 parent_id bigint 指定需要检索的存储过程的调用语句的unique_sql_id。 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 示例: gaussdb=# CREATE TABLE test(a int,b int); CREATE TABLE gaussdb=# INSERT INTO test values(1,1); INSERT 0 1 gaussdb=# CREATE PROCEDURE mypro1() as num int; gaussdb$# begin gaussdb$# INSERT INTO test values(2,2); gaussdb$# DELETE FROM test where a = 2; gaussdb$# end; gaussdb$# / CREATE PROCEDURE --打开参数,跟踪存储过程子语句。 gaussdb=# SET instr_unique_sql_track_type = 'all'; SET --打开参数,dbe_perf.statement_history表生成全量语句记录。 gaussdb=# SET track_stmt_stat_level = 'L0,L0'; SET gaussdb=# CALL mypro1(); mypro1 -------- (1 row) gaussdb=# SET track_stmt_stat_level = 'off,L0'; SET gaussdb=# SET instr_unique_sql_track_type = 'top'; SET --查询关键信息,作为函数参数使用。 gaussdb=# SELECT query,unique_query_id,start_time,finish_time FROM dbe_perf.statement_history; query | unique_query_id | start_time | finish_time --------------------------------------+-----------------+-------------------------------+------------------------------- set track_stmt_stat_level = 'L0,L0'; | 636388010 | 2023-06-02 17:40:49.176155+08 | 2023-06-02 17:40:49.176543+08 call mypro1(); | 536458473 | 2023-06-02 17:40:59.028144+08 | 2023-06-02 17:40:59.032027+08 delete from test where a = ? | 583323884 | 2023-06-02 17:40:59.029955+08 | 2023-06-02 17:40:59.031577+08 insert into test values(?,?) | 769279931 | 2023-06-02 17:40:59.029219+08 | 2023-06-02 17:40:59.029947+08 (4 rows) --通过外层语句的unique_query_id、外层语句的开始和结束时间作为参数,查询该时间段内,指定存储过程及其子语句的信息。 gaussdb=# SELECT query FROM dbe_perf.get_full_sql_by_parent_id_and_timestamp(536458473,'2023-06-02 17:40:59.028144+08','2023-06-02 17:40:59.032027+08'); query ------------------------------ call mypro1(); delete from test where a = ? insert into test values(?,?) (3 rows) gaussdb=# DROP PROCEDURE mypro1(); DROP PROCEDURE gaussdb=# DROP TABLE test; DROP TABLE
  • gs_shared_storage_flush_stat(int operation) 描述:统计共享盘的写入数据量、写入速度、写入时间、读取数据量、读取速度、读取时间等。多租场景下,non-PDB调用该函数时正常运行,PDB调用该函数时报错。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 operation int -1:关闭统计开关。 0:打开统计开关(默认状态为打开)。 1:查询统计信息。 2:重置统计信息。 关闭统计开关后重新打开时会清理之前的统计信息。 输出参数 stat_switch bool 统计开关是否打开。 输出参数 write_times uint64 shared_storage_xlog_copy线程调用dorado_write_xlog接口的次数。 输出参数 avg_write_bytes uint32 每次调用dorado_write_xlog接口请求写的Xlog量(单位:B)。 输出参数 avg_actual_write_bytes uint32 实际每次调用dorado_write_xlog接口写的Xlog量(单位:B)。 输出参数 total_write_time uint64 调用dorado_write_xlog操作总时间统计(单位:us)。 输出参数 avg_write_time uint32 每次调用dorado_write_xlog接口平均时间(单位:us)。 输出参数 avg_write_speed uint32 平均调用dorado_write_xlog接口请求写Xlog的速度(单位:KB/s)。 输出参数 avg_actual_write_speed uint32 实际平均调用dorado_write_xlog接口请求写Xlog的速度(单位:KB/s)。 输出参数 total_write_sleep_time uint64 shared_storage_xlog_copy线程总睡眠时间。 输出参数 read_times uint64 walreceiver线程调用dorado_read_xlog接口的次数。 输出参数 avg_read_bytes uint32 每次调用dorado_read_xlog接口请求写的Xlog量(单位:B)。 输出参数 avg_actual_read_bytes uint32 实际每次调用dorado_read_xlog接口写的Xlog量(单位:B)。 输出参数 total_read_time uint64 调用dorado_read_xlog操作总时间统计(单位:us)。 输出参数 avg_read_time uint32 每次调用dorado_read_xlog接口平均时间(单位:us)。 输出参数 avg_read_speed uint32 平均调用dorado_read_xlog接口请求写Xlog的速度(单位:KB/s)。 输出参数 avg_actual_read_speed uint32 实际平均调用dorado_read_xlog接口请求写Xlog的速度(单位:KB/s)。 输出参数 total_read_sleep_time uint64 walreceiver线程总睡眠时间。 输出参数 stat_start_time timestamptz 本次统计数据开始时间,若无重置统计信息操作则为GaussDB程序开始运行时间,若有重置统计信息操作则为上次重置时间。 输出参数 stat_end_time timestamptz 本次统计数据结束时间,若统计开关开启则为当前时间,若统计开关关闭则为上次关闭时间。 示例: gaussdb=# SELECT * FROM gs_shared_storage_flush_stat(1); stat_switch | write_times | avg_write_bytes | avg_actual_write_bytes | total_write_time | avg_write_time | avg_write_speed | avg_actual_write_speed | total_write_sleep_time | read_times | avg _read_bytes | avg_actual_read_bytes | total_read_time | avg_read_time | avg_read_speed | avg_actual_read_speed | total_read_sleep_time | stat_start_time | stat_end_time -------------+-------------+-----------------+------------------------+------------------+----------------+-----------------+------------------------+------------------------+------------+---- ------------+-----------------------+-----------------+---------------+----------------+-----------------------+-----------------------+-------------------------------+------------------------ ------- t | 43644 | 8624 | 8624 | 263922553 | 6047 | 1392 | 1392 | 26918503404 | 7451 | 140 13 | 14013 | 5321082 | 714 | 19163 | 19163 | 0 | 2023-12-18 07:18:39.766855+08 | 2023-12-18 16:29:22.757 535+08 (1 row)
  • gs_xlogdump_bylastlsn(last_lsn text, blocknum bigint, relation_type text) 描述:传入一个页面LSN以及块号,解析LSN对应的WAL日志,并获取对应块号的last LSN继续解析,直到last LSN为0或者更老版本的WAL日志已被复用回收,并将解析后的日志落盘到指定路径,必须是系统管理员或运维管理员才能执行此函数。本系统函数不支持备机调用。 返回值类型:text 参数类型 参数名 类型 描述 输入参数 last_lsn text 解析指定页面的LSN,基于十六进制表示,如12BA/32CDEDDD,LSN可通过页面解析工具(gs_parse_page_bypath等)获取。 输入参数 blocknum bigint 指定页面的逻辑块号。 参数范围:-1~MaxBlockNumber。 块号指定为-1时表示从WAL日志中获取默认块号。 输入参数 relation_type text 指定解析页面的类型。 参数范围:uheap、ubtree、heap、btree、undo_record、undo_slot。 输出参数 output_filepath text WAL日志解析结果的落盘路径。 示例: # 获取页面LSN信息 # 函数调用前请依据参数说明中的内容确保文件路径真实存在 gaussdb=# SELECT * FROM gs_parse_page_bypath('base/15833/16768', 0, 'uheap', false); output_filepath --------------------------------------------------------------- data1/database/cluster/primary/data/1663_15833_16768_0.page (1 row) gaussdb=# SELECT * FROM gs_xlogdump_bylastlsn('0/4593570', -1, 'uheap'); output_filepath ------------------------------------------------------------------- /data1/database/cluster/primary/data/gs_log/dump/4593570_-1.xlog (1 row) gaussdb=# SELECT * FROM gs_xlogdump_bylastlsn('0/4593570', 0, 'ubtree'); ERROR: The input lsn 0/4593570 related xlog is not ubtree.
  • gs_stat_space(bool init) 描述:用于查询UStore中做Insert操作时拓展页面的状态。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 init bool 是否重置已统计的数据。 输出参数 access_func int8 relation_get_buffer_for_utuple接口访问总次数。 输出参数 cache_blk int8 relation_get_buffer_for_utuple获取缓存次数。 输出参数 cache_succ int8 relation_get_buffer_for_utuple获取缓存成功次数。 输出参数 nblk_first int8 relation_get_buffer_for_utuple中第一次获取nblocks-1次数。 输出参数 nblk_first_succ int8 relation_get_buffer_for_utuple中第一次获取nblocks-1成功次数。 输出参数 nblk_second int8 relation_get_buffer_for_utuple中第二次获取nblocks-1次数。 输出参数 nblk_second_succ int8 relation_get_buffer_for_utuple中第二次获取nblocks-1成功次数。 输出参数 fsm_first int8 第一次访问FSM次数。 输出参数 fsm_first_success int8 第一次访问FSM成功次数。 输出参数 fsm_rewrite int8 FSM回写次数。 输出参数 fsm_second int8 第二次访问FSM次数。 输出参数 fsm_second_sucess int8 第二次访问FSM成功次数。 输出参数 prune_count int8 relation_get_buffer_for_utuple中Prune次数。 输出参数 prune_space int8 relation_get_buffer_for_utuple中Prune总空间。 输出参数 coprune_count int8 联合清理执行次数。 输出参数 coprune_scan_blocks int8 联合清理扫描总页数。 输出参数 coprune_prune_count int8 联合清理Prune次数。 输出参数 coprune_prune_space int8 联合清理Prune总空间。 输出参数 con_extend_count int8 并发扩页数量。 输出参数 con_extend_time int8 并发扩页总时间。 输出参数 single_extend_time int8 单一扩页次数。 示例: gaussdb=# SELECT * FROM gs_stat_space(false); access_func | cache_blk | cache_succ | nblk_first | nblk_first_succ | nblk_sencond | nblk_sencond_succ | fsm_first | fsm_first_success | fsm_rewrite | fsm_ second | fsm_second_success | prune_count | prune_space | coprune_count | coprune_scan_blocks | coprune_prune_count | coprune_prune_space | con_extend_count | con_extend_time | single_extend_count -------------+-----------+------------+------------+-----------------+--------------+-------------------+-----------+-------------------+-------------+----- -------+--------------------+-------------+-------------+---------------+---------------------+---------------------+---------------------+----------------- -+-----------------+--------------------- 10082397 | 10082397 | 10082235 | 88 | 78 | 47021 | 47021 | 162 | 74 | 360996 | 360996 | 270948 | 6711 | 0 | 45497 | 222619 | 0 | 0 | 3675 | 25542884 | 26791 (1 row) 备注:请重点关注cache_succ此值较小说明系统缓存失效,prune_space 此值较小表示UStore数据页页面清理机制可能存在问题,con_extend_time此值过高可能表明UStore并发拓页时耗时较高。
共100000条
提示

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