华为云用户手册

  • shared_storage_write_mode 参数说明:用于控制共享存储下,主集群的最大Xlog可写入位置。 参数类型:枚举类型 参数单位:无 取值范围: none:无限制。 standby:集群内已连接备机的本地最大Xlog LSN + xlog_file_size(双数据库实例共享存储场景下,xlog日志共享盘的大小)。 disaster_standby:灾备集群已连接备机的本地最大LSN + xlog_file_size。 disaster_standby_strict:灾备集群备机的本地最大LSN + xlog_file_size。(和disaster_standby的区别在于,即使主备集群之间数据面网络隔离,也不会覆盖写入) standby_and_disaster_standby:集群内已连接备机的本地最大LSN和灾备集群已连接备机的本地最大LSN中的较小值+xlog_file_size。 默认值:disaster_standby 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:不建议用户修改此配置。 设置不当的风险与影响:修改该参数可能会导致备集群触发重建(build),不建议手动修改。
  • 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。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_size_for_shared_storage_xlog_write 参数说明:控制共享盘单次写入的最大数据量。 参数类型:整型 参数单位:kB 取值范围:8 ~ 131072 默认值:1024 设置方式:该参数属于POSTMASTER类型参数,请参考表表1中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • walwriteraux_bind_cpu 参数说明:绑定到辅助写日志线程的CPU核。 参数类型:整型 参数单位:无 取值范围:-1 ~ 2147483647。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把辅助写日志线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。虽然最大值为INT_MAX,但是实际和所用设备核数相关,设置的最大值不能超过(核数-1)。 设置不当的风险与影响:设置值超过(核数-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中对应设置方法进行设置。 设置建议:安装时会进行设定,不建议用户修改此配置。 设置不当的风险与影响:设置不当会使数据库无法启动。
  • 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类型参数,为固定参数,用户无法修改此参数,只能查看。 设置建议:该参数不允许用户进行设置,只能查看。 设置不当的风险与影响:无
  • walwriter_cpu_bind 参数说明:把walwriter线程绑定到指定CPU核上运行。 参数类型:整型 参数单位:无 取值范围:-1 ~ 核数减1。CPU核从0号开始排序。 -1:表示不进行绑核操作。 N:表示把walwriter线程绑定到第N号CPU核上。 默认值:-1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。该参数可在PDB级别设置。 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter线程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟可能会造成不必要的等待。 参数类型:整型 参数单位:us(微秒) 取值范围:0 ~ 100000,其中0表示无延迟。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:参考须知。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • fsync 参数说明:设置GaussDB服务器是否使用fsync()系统函数确保数据的更新及时写入物理磁盘中(fsync()系统函数实现的种类,请参见参数wal_sync_method)。 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用fsync()系统函数。 off:表示不使用fsync()系统函数。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 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中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 接口介绍 根据输入的参数,评估指定数据对象的采样压缩率或者获取指定行数据的压缩类型。 表1 DBE_COMPRESSION 接口名称 描述 GET_COMPRESSION_RATIO 根据输入参数评估指定数据对象的采样压缩率。 GET_COMPRESSION_TYPE 根据输入参数获取指定行数据的压缩类型。 GET_COMPRESSION_TYPE接口只支持 分布式数据库 中数据节点(DN),其他节点暂不支持。 DBE_COMPRESSION.GET_COMPRESSION_RATIO 根据输入参数评估指定数据对象的采样压缩率,原型为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 DBE_COMPRESSION.GET_COMPRESSION_RATIO( SCRATCHTBSNAME IN VARCHAR2, OWNNAME IN VARCHAR2, OBJNAME IN VARCHAR2, SUBOBJNAME IN VARCHAR2, COMPTYPE IN NUMBER, BLKCNT_CMP OUT INTEGER, BLKCNT_UNCMP OUT INTEGER, ROW_CMP OUT INTEGER, ROW_UNCMP OUT INTEGER, CMP_RATIO OUT NUMBER, COMPTYPE_STR OUT VARCHAR2, SAMPLE_RATIO IN NUMBER DEFAULT 20, OBJTYPE IN INTEGER DEFAULT 1); 表2 DBE_COMPRESSION.GET_COMPRESSION_RATIO接口参数说明 参数 描述 SCRATCHTBSNAME 数据对象所属表空间。 OWNNAME 数据对象所有者(所属模式)。 OBJNAME 数据对象名称。 SUBOBJNAME 数据子对象名称。 COMPTYPE 压缩类型,支持: 1:未压缩 2:高级压缩。 BLKCNT_CMP 样本被压缩后占用的块数。 BLKCNT_UNCMP 样本未压缩占用的块数。 ROW_CMP 样本被压缩后单个块内可容纳的行数。 ROW_UNCMP 样本未被压缩时单个数据块可容纳的行数。 CMP_RATIO 压缩比,blkcnt_uncmp除以blkcnt_cmp。 COMPTYPE_STR 描述压缩类型的字符串。 SAMPLE_RATIO 采样比例,输入为0-100的整数或浮点数,对应为百分之N的采样比例。默认为20,即对20%的行数进行采样。 OBJTYPE 对象类型,支持: 1:表对象。 DBE_COMPRESSION.GET_COMPRESSION_TYPE 根据输入参数获取指定行数据的压缩类型,该接口属于运维类接口,不做可见性判断,即传入的ctid为已删除的行时,该接口依然会返回当前行在页面上最新的状态,原型为: 1 2 3 4 5 6 DBE_COMPRESSION.GET_COMPRESSION_TYPE( OWNNAME IN VARCHAR2, TABNAME IN VARCHAR2, CTID IN TEXT, SUBOBJNAME IN VARCHAR2 DEFAULT NULL, BUCKETID IN pg_catalog.int2 DEFAULT NULL) 表3 DBE_COMPRESSION.GET_COMPRESSION_TYPE接口参数说明 参数 描述 OWNNAME 数据对象所有者(所属模式)。 TABNAME 数据对象名称。 CTID 目标行ctid。 SUBOBJNAME 数据子对象名称。 BUCKETID 目标行的tablebucketid,仅用于bucket表,默认为NULL。
  • GLOBAL_RECORD_RESET_TIME GLOBAL_RECORD_RESET_TIME用于获取集群中各节点的“重置(重启,主备倒换,数据库删除)时间”的统计信息,如表1所示。 表1 GLOBAL_RECORD_RESET_TIME字段 名称 类型 描述 node_name text 节点名称。 reset_time timestamp with time zone 重置时间点。 父主题: Utility
  • 注意事项 不允许对一个已关闭的游标再做任何操作。 一个不再使用的游标应该尽早关闭。 当创建游标的事务用COMMIT或ROLLBACK终止之后,每个不可保持的已打开游标都隐含关闭。 当创建游标的事务通过ROLLBACK退出之后,每个可以保持的游标都将隐含关闭。 当创建游标的事务成功提交,可保持的游标将保持打开,直到执行一个明确的CLOSE或者客户端断开。 GaussDB没有明确打开游标的OPEN语句,因为一个游标在使用CURSOR命令定义的时候就打开了。可以通过查询系统视图pg_cursors看到所有可用的游标。
  • GLOBAL_WLM_RESPOOL_CONCURRENCY_INFO 该视图用于查看分布式下所有节点实时的资源池并发数使用情况。查询该视图需要sysadmin权限或者monadmin权限。 该视图只能查询主DN节点上的数据,备节点需要登录到备节点上后使用系统函数gs_wlm_respool_concurrency_info()查询并发数使用情况。 表1 GLOBAL_WLM_RESPOOL_CONCURRENCY_INFO字段 名称 类型 描述 node_name name 节点名称。 respool_name name 资源池名称。 max_concurrency integer 资源池支持的最大并发数。 running_conurrency integer 当前资源池正在执行的并发数。 waiting_concurrency integer 当前资源池正在等待的并发数。 示例: 1 2 3 4 5 6 7 8 gaussdb=# SELECT * FROM GLOBAL_WLM_RESPOOL_CONCURRENCY_INFO; node_name | respool_name | max_concurrency | running_concurrency | waiting_concurrency --------------+--------------+-----------------+---------------------+--------------------- coordinator1 | default_pool | -1 | 1 | 0 datanode3 | default_pool | -1 | 1 | 0 datanode1 | default_pool | -1 | 1 | 0 datanode2 | default_pool | -1 | 1 | 0 (4 rows) 父主题: 负载管理
  • PG_REPLICATION_ORIGIN PG_REPLICATION_ORIGIN系统表包含所有已创建的复制源,该表在数据库实例的所有数据库之间共享,即每个实例只有一份,而不是每个数据库一份。 表1 PG_REPLICATION_ORIGIN字段 名称 类型 描述 roident oid 一个数据库实例范围内唯一的复制源标识符。 roname text 外部的由用户定义的复制源名称。 父主题: 其他系统表
  • 背景信息 索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。所以是否要为表增加索引,索引建立在哪些字段上,是创建索引前必须要考虑的问题。需要分析应用程序的业务处理、数据使用、经常被用作查询的条件或者被要求排序的字段来确定是否建立索引。 索引建立在数据库表中的某些列上。因此,在创建索引时,应该仔细考虑在哪些列上创建索引。 在经常需要搜索查询的列上创建索引,可以加快搜索的速度。 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。 在经常使用连接的列上创建索引,可以加快连接的速度。 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。 在经常使用WHERE子句的列上创建索引,加快条件的判断速度。 在经常出现关键字ORDER BY、GROUP BY和DISTINCT后面的字段建立索引。 索引创建成功后,系统会自动判断何时引用索引。当系统认为使用索引比顺序扫描更快时,就会使用索引。 索引创建成功后,必须和表保持同步以保证能够准确地找到新数据,这样就增加了数据操作的负荷。因此请定期删除无用的索引。 分区表索引分为LOCAL索引与GLOBAL索引,一个LOCAL索引对应一个具体分区,而GLOBAL索引则对应整个分区表。
  • 废弃参数 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
  • GS_GLOBAL_CONFIG GS_GLOBAL_CONFIG记录了集群初始化时,用户指定的参数值。除此之外,还存放了用户设置的弱口令、集群是否处于扩容状态(redis_bucket_expansion),支持数据库初始用户通过ALTER和DROP语法对系统表中的参数进行写入、修改和删除。此系统表默认只有初始用户、系统管理员和安全管理员可以访问,其他用户默认无权访问。 表1 GS_GLOBAL_CONFIG字段 名称 类型 描述 name name 集群初始化时系统内置的指定参数名称、弱口令名称、扩容重分布参数名称、或用户需要使用的参数。 value text 集群初始化时系统内置的指定参数值、弱口令、扩容重分布参数、或用户需要使用的参数值。 不建议用户写入、修改和删除“redis_bucket_expansion”参数。该参数名称被占用,在扩容期间用来表示集群处于扩容状态。 父主题: 其他系统表
  • SQL限流函数 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) 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_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_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_USER GS_USER视图显示数据库用户的信息。默认只有初始化用户和具有sysadmin属性的用户可以查看,其余用户需要赋权后才可以查看。 表1 GS_USER字段 名称 类型 描述 usename name 用户名。 usesysid oid 用户的id。 usecreatedb boolean 用户是否可以创建数据库。 t(true):表示是。 f(false):表示否。 usesuper boolean 用户是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示否。 usecatupd boolean 用户是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示是。 f(false):表示否。 userepl boolean 用户是否可以复制数据流。 t(true):表示是。 f(false):表示否。 passwd text 密文存储后的用户密码,始终为********。 valbegin timestamp with time zone 账户的有效开始时间。如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone 账户的有效结束时间。如果没有设置有效结束时间,则为NULL。 respool name 用户所在的资源池。 parent oid 父用户OID。 spacelimit text 永久表存储空间的限额,单位KB。 useconfig text[] 运行时配置项的默认值。参考PG_DB_ROLE_SETTING.setconfig。 tempspacelimit text 临时表存储空间的限额,单位KB。 spillspacelimit text 算子落盘空间的限额,单位KB。 usemonitoradmin boolean 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 用户和权限管理
  • 空字符串和NULL的关系? 答:GaussDB中对空字符串是否为NULL和数据库的兼容模式有关。 ORA兼容模式中空字符串判断为NULL。 gaussdb=# CREATE DATABASE db_test1 DBCOMPATIBILITY = 'ORA'; gaussdb=# \c db_test1 db_test1=# SELECT '' IS NULL; ?column? ---------- t (1 row) MYSQL兼容模式中空字符串判断不为NULL。 gaussdb=# CREATE DATABASE db_test2 DBCOMPATIBILITY = 'MYSQL'; gaussdb=# \c db_test2 db_test2=# SELECT '' IS NULL; ?column? ---------- f (1 row) 父主题: FAQ
  • DBE_PLDEBUGGER.disable_breakpoint debug端调试过程中,调用disable_breakpoint禁用已被激活的断点,如表1所示。 表1 disable_breakpoint入参和返回值列表 名称 类型 描述 breakpointno IN integer 断点编号。 result OUT bool 是否成功。 父主题: DBE_PLDEBUGGER Schema
  • 常见问题处理 connect to server failed: no such file or directory 此问题可能的原因: 配置了错误的/不可达的数据库地址,或者端口 请检查数据源配置中的Server及Port配置项。 服务器侦听不正确 如果确认Server及Port配置正确,请根据“操作步骤”中数据库服务器的相关配置,确保数据库侦听了合适的网卡及端口。 防火墙及网闸设备 请确认防火墙设置,将数据库的通信端口添加到可信端口中。 如果有网闸设备,请确认相关的设置。 The password-stored method is not supported. 此问题可能原因: 数据源中未配置sslmode配置项,请调整此项至allow或以上级别,允许SSL连接,此选项的更多说明,请参见表1。 authentication method 10 not supported. 使用开源客户端碰到此问题,可能原因: 数据库中存储的密码校验只存储了SHA256格式哈希,而开源客户端只识别MD5校验,双方校验方法不匹配报错。 数据库并不存储用户密码,只存储用户密码的哈希码。 当用户更新用户密码或者新建用户时,数据库会同时存储两种格式的哈希码,这时将兼容开源的认证协议。 当旧版本升级到新版本时,由于哈希的不可逆性,所以数据库无法还原用户密码,进而生成新格式的哈希,所以仍然只保留了SHA256格式的哈希,导致仍然无法使用MD5做密码认证。 MD5加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 要解决该问题,可以更新用户密码(请参见ALTER USER),或者新建一个用户(请参见CREATE USER),赋予同等权限,使用新用户连接数据库。 unsupported frontend protocol 3.51: server supports 1.0 to 3.0 目标数据库版本过低,或者目标数据库为开源数据库。请使用对应版本的数据库驱动连接目标数据库。 FATAL: GSS authentication method is not allowed because XXXX user password is not disabled. 目标CN的gs_hba.conf里配置了当前客户端IP使用"gss"方式来做认证,该认证算法不支持用作客户端的身份认证,请修改到"sha256"后再试。
共100000条
提示

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