华为云用户手册

  • 参数说明 IF EXISTS 如果指定的表不存在,则发出一个notice而不是抛出一个error。 schema 模式名称。 table_name 表名称。 CASCADE | RESTRICT CASCADE:表示允许级联删除依赖于该表的对象(比如视图)。 RESTRICT:表示有依赖于该表的对象存在时,该索引无法被删除。此选项为缺省值。 PURGE 该参数表示即使开启回收站功能,使用DROP TABLE删除表时,也会直接物理删除表,而不是将其放入回收站中。
  • 调试 用户可以根据自己的需要,通过修改实例数据目录下的gaussdb.conf文件中特定的配置参数来控制日志的输出,从而更好的了解数据库的运行状态。 可调整的配置参数请参见表1。 表1 配置参数 参数名称 描述 取值范围 备注 client_min_messages 配置发送到客户端信息的级别。 DEBUG5 DEBUG4 DEBUG3 DEBUG2 DEBUG1 LOG NOTICE WARNING ERROR FATAL PANIC 默认值:NOTICE 设置级别后,发送到客户端的信息包含所设级别及以下所有低级别会发送的信息。级别越低,发送的信息越少。 log_min_messages 配置写到服务器日志里信息的级别。 DEBUG5 DEBUG4 DEBUG3 DEBUG2 DEBUG1 INFO NOTICE WARNING ERROR LOG FATAL PANIC 默认值:WARNING 指定某一级别后,写到日志的信息包含所有更高级别会输出的信息。级别越高,服务器日志的信息越少。 log_min_error_statement 配置写到服务器日志中错误SQL语句的级别。 DEBUG5 DEBUG4 DEBUG3 DEBUG2 DEBUG1 INFO NOTICE WARNING ERROR FATAL PANIC 缺省值:ERROR 所有导致一个特定级别(或者更高级别)错误的SQL语句都将记录在服务器日志中。 只有系统管理员可以修改该参数。 log_min_duration_statement 配置语句执行持续的最短时间。如果某个语句的持续时间大于或者等于设置的毫秒数,则会在日志中记录该语句及其持续时间。打开这个选项可以方便地跟踪需要优化的查询。 INT类型。 默认值:-1。 单位:毫秒。 设置为-1表示关闭这个功能。 只有系统管理员可以修改该参数。 log_connections/log_disconnections 配置是否在每次会话连接或结束时向服务器日志里打印一条信息。 on:每次会话连接或结束时向日志里打印一条信息。 off:每次会话连接或结束时不向日志里打印信息。 默认值:off。 - log_duration 配置是否记录每个已完成语句的持续时间。 on:记录每个已完成语句的持续时间。 off:不记录已完成语句的持续时间。 默认值:off 只有系统管理员可以修改该参数。 log_statement 配置日志中记录哪些SQL语句。 none:不记录任何SQL语句。 ddl:记录数据定义语句。 mod:记录数据定义语句和数据操作语句。 all :记录所有语句。 默认值: none 只有系统管理员可以修改该参数。 log_hostname 配置是否记录主机名。 on:记录主机名。 off:不记录主机名。 默认值:off 缺省时,连接日志只记录所连接主机的IP地址。打开这个选项会同时记录主机名。 该参数同时影响查看审计结果、PG_STAT_ACTIVITY和GUC参数log_line_prefix。 表1有关参数级别的说明请参见表2。 表2 日志级别参数说明 级别 说明 DEBUG[1-5] 提供开发人员使用的信息。5级为最高级别,依次类推,1级为最低级别。 INFO 提供用户隐含要求的信息。如在VACUUM VERBOSE过程中的信息。 NOTICE 提供可能对用户有用的信息。如长标识符的截断,作为主键一部分创建的索引。 WARNING 提供给用户的警告。如在事务块范围之外的COMMIT。 ERROR 报告导致当前命令退出的错误。 LOG 报告一些管理员感兴趣的信息。如检查点活跃性。 FATAL 报告导致当前会话终止的原因。 PANIC 报告导致所有会话退出的原因。 父主题: 应用程序开发教程
  • MY_TRIGGERS MY_TRIGGERS视图显示当前用户拥有的触发器的信息。该视图同时存在于PG_CATALOG和SYS Schema下。具体字段信息如表1所示。 表1 MY_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。 父主题: 其他系统视图
  • 示例 重命名索引。 --创建test1表并为其创建索引。 gaussdb=# CREATE TABLE test1(col1 int, col2 int); gaussdb=# CREATE INDEX aa ON test1(col1); --将索引aa重命名为idx_test1_col1。 gaussdb=# ALTER INDEX aa RENAME TO idx_test1_col1; --查询test1表上的索引信息。 gaussdb=# SELECT tablename,indexname,tablespace FROM pg_indexes WHERE tablename = 'test1'; tablename | indexname | tablespace -----------+----------------+------------ test1 | idx_test1_col1 | (1 row) 修改索引所属表空间。 --创建表空间tbs_index1。 gaussdb=# CREATE TABLESPACE tbs_index1 RELATIVE LOCATION 'tablespace1/tbs_index1'; --修改索引idx_test1_col1的所属表空间为tbs_index1。 gaussdb=# ALTER INDEX IF EXISTS idx_test1_col1 SET TABLESPACE tbs_index1; --查询test1表上的索引信息。 gaussdb=# SELECT tablename,indexname,tablespace FROM pg_indexes WHERE tablename = 'test1'; tablename | indexname | tablespace -----------+----------------+------------ test1 | idx_test1_col1 | tbs_index1 (1 row) 修改与重置索引存储参数。 --查看索引idx_test1_col1详细信息。 gaussdb=# \di idx_test1_col1 List of relations Schema | Name | Type | Owner | Table | Storage --------+----------------+-------+-------+-------+--------- public | idx_test1_col1 | index | omm | test1 | (1 row) --修改索引idx_test1_col1 的填充因子。 gaussdb=# ALTER INDEX IF EXISTS idx_test1_col1 SET (FILLFACTOR = 70); --查看索引idx_test1_col1详细信息。 gaussdb=# \di idx_test1_col1 List of relations Schema | Name | Type | Owner | Table | Storage --------+----------------+-------+-------+-------+----------------- public | idx_test1_col1 | index | omm | test1 | {fillfactor=70} (1 row) --重置索引idx_test1_col1 的存储参数。 gaussdb=# ALTER INDEX IF EXISTS idx_test1_col1 RESET (FILLFACTOR); --查看索引idx_test1_col1详细信息。 gaussdb=# \di idx_test1_col1 List of relations Schema | Name | Type | Owner | Table | Storage --------+----------------+-------+-------+-------+--------- public | idx_test1_col1 | index | omm | test1 | (1 row) 修改索引可用性。 --设置索引idx_test1_col1不可用。 gaussdb=# ALTER INDEX IF EXISTS idx_test1_col1 UNUSABLE; --查看索引idx_test1_col1的可用性。 gaussdb=# SELECT indisusable FROM pg_index WHERE indexrelid = 'idx_test1_col1'::regclass; indisusable ------------- f (1 row) --重建索引idx_test1_col1。 gaussdb=# ALTER INDEX idx_test1_col1 REBUILD; --查看索引idx_test1_col1的可用性。 gaussdb=# SELECT indisusable FROM pg_index WHERE indexrelid = 'idx_test1_col1'::regclass; indisusable ------------- t (1 row) --删除。 gaussdb=# DROP INDEX idx_test1_col1; gaussdb=# DROP TABLE test1; gaussdb=# DROP TABLESPACE tbs_index1; 重命名索引分区。 --创建分区表test2。 gaussdb=# CREATE TABLE test2(col1 int, col2 int) PARTITION BY RANGE (col1)( PARTITION p1 VALUES LESS THAN (100), PARTITION p2 VALUES LESS THAN (200) ); --创建分区索引。 gaussdb=# CREATE INDEX idx_test2_col1 ON test2(col1) LOCAL( PARTITION p1, PARTITION p2 ); --重命名索引分区。 gaussdb=# ALTER INDEX idx_test2_col1 RENAME PARTITION p1 TO p1_test2_idx; gaussdb=# ALTER INDEX idx_test2_col1 RENAME PARTITION p2 TO p2_test2_idx; --查询索引idx_test2_col1分区的名称。 gaussdb=# SELECT relname FROM pg_partition WHERE parentid = 'idx_test2_col1'::regclass; relname -------------- p1_test2_idx p2_test2_idx (2 rows) 修改索引分区的所属表空间。 --创建表空间tbs_index2与tbs_index3。 gaussdb=# CREATE TABLESPACE tbs_index2 RELATIVE LOCATION 'tablespace1/tbs_index2'; gaussdb=# CREATE TABLESPACE tbs_index3 RELATIVE LOCATION 'tablespace1/tbs_index3'; --修改索引idx_test2_col1分区的所属表空间。 gaussdb=# ALTER INDEX idx_test2_col1 MOVE PARTITION p1_test2_idx TABLESPACE tbs_index2; gaussdb=# ALTER INDEX idx_test2_col1 MOVE PARTITION p2_test2_idx TABLESPACE tbs_index3; --查询索引idx_test2_col1分区的所属表空间。 gaussdb=# SELECT t1.relname index_name, t2.spcname tablespace_name FROM pg_partition t1, pg_tablespace t2 WHERE t1.parentid = 'idx_test2_col1'::regclass AND t1.reltablespace = t2.oid; index_name | tablespace_name --------------+----------------- p1_test2_idx | tbs_index2 p2_test2_idx | tbs_index3 (2 rows) --删除。 gaussdb=# DROP INDEX idx_test2_col1; gaussdb=# DROP TABLE test2; gaussdb=# DROP TABLESPACE tbs_index2; gaussdb=# DROP TABLESPACE tbs_index3;
  • 参数说明 index_name 要修改的索引名。 IF EXISTS 如果指定的索引不存在,则发出一个notice而不是error。 RENAME TO new_name 只改变索引的名称。对存储的数据没有影响。 new_name 新的索引名。 取值范围:字符串,且符合标识符命名规范。 SET TABLESPACE tablespace_name 改变索引的表空间为指定表空间,并且把索引相关的数据文件移动到新的表空间里。 tablespace_name 表空间的名称。 取值范围:已存在的表空间。 SET ( {storage_parameter = value} [, ... ] ) 改变索引的一个或多个索引方法特定的存储参数。需要注意的是索引内容不会被这个命令立即修改,根据参数的不同,可能需要使用REINDEX重建索引来获得期望的效果。 storage_parameter 索引方法特定的参数名。ACTIVE_PAGES表示索引的页面数量,可能比实际的物理文件页面少,可以用于优化器调优。目前只对ustore的分区表local索引生效,且会被vacuum、analyze更新(包括auto vacuum)。不建议用户手动设置该参数,该参数在分布式下无效。对GSI执行ALTER时,对INTERNAL_MASK、APPEND_MODE_INTERNAL、WAIT_CLEAN_GPI、PARTITION_DDL_FLAG、COLLATECROSSBUCKET和DEDUPLICATION参数不支持,行为同UBtree,支持FILLFACTOR、INDEXSPLIT参数,ACTIVE_PAGES和WAIT_CLEAN_CBI 不适用于GSI。 value 索引方法特定的存储参数的新值。根据参数的不同,这可能是一个数字或单词。 RESET ( { storage_parameter } [, ...] ) 重置索引的一个或多个索引方法特定的存储参数为缺省值。与SET一样,可能需要使用REINDEX来完全更新索引。 [ MODIFY PARTITION index_partition_name ] UNUSABLE 用于设置表或者索引分区上的索引不可用。 REBUILD [ PARTITION index_partition_name ] 用于重建表或者索引分区上的索引。重建索引时,若索引带有lpi_parallel_method选项,取值为PARTITION且表的parallel_workers选项大于0时,不支持对该索引并行重建;无该选项或选项取值为AUTO时,并行重建时会默认走页面级并行重建索引。详见LPI_PARALLEL_METHOD。 RENAME PARTITION index_partition_name TO new_index_partition_name 用于重命名索引分区。 MOVE PARTITION index_partition_name TABLESPACE new_tablespace 用于修改索引分区的所属表空间。 new_index_partition_name 新索引分区名。 index_partition_name 索引分区名。 new_tablespace 新表空间。 GSIVALID 用于CREATE GLOBAL INDEX CONCURRENTLY功能内部调用,修改分布式全局二级索引状态。 GSIUSABLE 此语法主要用于VACUUM FULL功能内部调用,修改分布式全局二级索引状态。 VISIBLE 用于设置索引状态为可见。 INVISIBLE 用于设置索引状态为不可见。
  • 语法格式 重命名表索引的名称。 1 2 ALTER INDEX [ IF EXISTS ] index_name RENAME TO new_name; 修改表索引的所属空间。 1 2 ALTER INDEX [ IF EXISTS ] index_name SET TABLESPACE tablespace_name; 修改表索引的存储参数。 1 2 ALTER INDEX [ IF EXISTS ] index_name SET ( {storage_parameter = value} [, ... ] ); 重置表索引的存储参数。 1 2 ALTER INDEX [ IF EXISTS ] index_name RESET ( storage_parameter [, ... ] ); 设置表索引或索引分区不可用。 1 2 ALTER INDEX [ IF EXISTS ] index_name [ MODIFY PARTITION index_partition_name ] UNUSABLE; 重建表索引或索引分区。 1 2 ALTER INDEX index_name REBUILD [ PARTITION index_partition_name ]; 重命名索引分区。 1 2 ALTER INDEX [ IF EXISTS ] index_name RENAME PARTITION index_partition_name TO new_index_partition_name; 修改索引分区的所属表空间。 1 2 ALTER INDEX [ IF EXISTS ] index_name MOVE PARTITION index_partition_name TABLESPACE new_tablespace; 设置分布式全局二级索引就绪。 ALTER INDEX [ IF EXISTS ] index_name GSIVALID; 此语法主要用于CREATE GLOBAL INDEX CONCURRENTLY功能内部调用,修改全局二级索引状态,用户不建议使用,否则可能导致索引数据与表数据不一致。如需启用UNVALID状态的GSI,建议使用REINDEX INDEX语法重新创建GSI。 设置分布式全局二级索引可用。 ALTER INDEX [ IF EXISTS ] index_name GSIUSABLE; 此语法主要用于VACUUM FULL功能内部调用,修改全局二级索引状态,用户不建议使用,否则可能导致索引数据与表数据不一致。如需启用UNUSABLE状态的GSI,建议使用REINDEX INDEX语法重新创建GSI。 用于设置索引状态为可见。 ALTER INDEX [ IF EXISTS ] index_name VISIBLE; 此语法仅支持在ORA兼容性数据库下(即sql_compatibility = 'ORA')设置,在其他数据库兼容模式下不支持。 当disable_keyword_options参数设置为“visible”时,VISIBLE关键字不支持使用。 升级未提交阶段,不支持使用此语法。 用于设置索引状态为不可见。 ALTER INDEX [ IF EXISTS ] index_name INVISIBLE; 此语法仅支持在ORA兼容性数据库下(即sql_compatibility = 'ORA')设置,在其他数据库兼容模式下不支持。 当disable_keyword_options参数设置为“invisible”时,INVISIBLE关键字不支持使用。 升级未提交阶段,不支持使用此语法。 备机读场景下,设置索引状态为不可见后,查询语句的执行计划可能会发生变化,备机查询性能可能会受到影响。
  • STATIO_USER_SEQUENCES STATIO_USER_SEQUENCE视图显示当前节点的命名空间中所有用户关系表类型为序列的I/O状态信息,如表1所示。 表1 STATIO_USER_SEQUENCE字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列中缓存命中数。 父主题: Cache/IO
  • WLM_RESOURCEPOOL_RUNTIME WLM_RESOURCEPOOL_RUNTIME视图显示资源池上的一些统计信息,如表1所示。 表1 WLM_RESOURCEPOOL_RUNTIME的字段 名称 类型 描述 rpoid oid 资源池的OID。 respool name 资源池的名称。 control_group name 资源池的控制组。 parentid oid 父资源池的OID。 ref_count integer 关联到该资源池上的作业数量。 active_points integer 资源池上已经使用的点数。 running_count integer 正在资源池上运行的作业数量。 waiting_count integer 正在资源池上排队的作业数量。 io_limits integer 资源池的iops上限。 io_priority integer 资源池的I/O优先级。 父主题: Workload Manager
  • V$DBLINK V$DBLINK系统视图显示DATABASE LINK对象的相关信息,用户可以查看属于自己和PUBLIC级别的DATABASE LINK信息。默认只有管理员用户可以查看该视图。 本视图数据取自于GS_DB_LINKS,但只记录在本次session中曾被使用过或正在使用的链路信息,DATABASE LINK介绍及使用请参考DATABASE LINK。 表1 V$DBLINK字段 名称 类型 描述 db_link character varying(128) 当前DATABASE LINK对象的名称。 owner_id numeric 当前DATABASE LINK对象拥有者的ID。DATABASE LINK对象的拥有者是PUBLIC时,owner_id为0。 logged_on character varying(3) 暂不支持,值为NULL。 heterogeneous character varying(3) 暂不支持,值为NULL。 protocol character varying(6) 暂不支持,值为NULL。 open_cursors numeric 暂不支持,值为NULL。 in_transaction character varying(3) 当前DATABASE LINK对象是否在事务中。 YES:在事务中。 NO:不在事务中。 update_sent character varying(3) 当前DATABASE LINK对象是否使用了更新数据的语句。 YES:使用了更新数据的语句。 NO:没有使用更新数据的语句。 commit_point_strength numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为NULL。 父主题: DATABASE LINK
  • GLOBAL_GS_SEG_SEGMENTS GLOBAL_GS_SEG_SEGMENTS在CN上执行,查看所有节点所有表空间的段信息,包含表、索引、TOAST、TOAST INDEX段及fsm fork、vm fork段。只支持管理员权限用户查询。 表1 GLOBAL_GS_SEG_SEGMENTS字段 名称 类型 描述 node_name text 节点名称。 schema_name name 段对象所属的名称空间。 segment_name name 段对象名,来源:pg_class、pg_partition.relname。 partition_name name 段对象分区名称,非分区为NULL。来源:pg_partition.relname。 forknum integer 段对象的分支类型,取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 segment_type text 段对象类型。取值范围: table:段页式普通表。 table partition:段页式分区表(主表和子表)、段页式二级分区表(其中的一级分区表)。 table subpartition:段页式二级分区表(其中的顶层节点表和二级分区表)。 index:段页式普通表索引。 index partition:段页式分区表、二级分区表的索引。 global partition index:段页式分区表、二级分区表的全局索引。 toast:段页式toast表。 toast index:段页式toast表的索引。 tablespace_name name 段对象所属的表空间。 bucketnode integer 0~1023表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 head_block_id bigint 段头页面号。 contents text 数据文件的存储内容,取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 table_name name 段对象所属的基表名。 blocks bigint 段对象的逻辑页面数。 total_blocks bigint 段对象的物理页面数。 extents integer 段对象的逻辑扩展数。 total_extents integer 段对象的物理扩展数。 head_lsn text 段头lsn标识。 level0_slots bigint[] 段扩展映射level0槽位数组。 level1_slots bigint[] 段扩展映射level1槽位数组。 fork_head bigint[] 段对象的分支段头数组。 父主题: 段页式存储
  • GLOBAL_ACTIVE_SESSION GLOBAL_ACTIVE_SESSION视图显示所有节点上的ACTIVE SESSION PROFILE内存中的样本的汇总,如表1所示。505.0版本新增event_start_time、current_xid、top_xid三个字段信息,由低于505.0版本升级至505.0或更高版本时,升级观察期无法查询。 表1 GLOBAL_ACTIVE_SESSION字段 名称 类型 描述 node_name text 节点名称。 sampleid bigint 采样ID。 sample_time timestamp without time zone 采样的时间。 need_flush_sample boolean 该样本是否需要刷新的磁盘。 databaseid oid 数据库ID。 thread_id bigint 线程的ID。 sessionid bigint 会话的ID。 start_time timestamp without time zone 会话的启动时间。 event text 具体的事件名称。 lwtid integer 当前线程的轻量级线程号。 psessionid bigint streaming线程的父线程。 tlevel integer streaming线程的层级。与执行计划的层级(id)相对应。 smpid integer smp执行模式下并行线程的并行编号。 userid oid session用户的id。 application_name text 应用的名称。 client_addr inet client端的地址。 client_hostname text client端的名称。 client_port integer 客户端用于与后端通讯的TCP端口号。 query_id bigint debug query id。 unique_query_id bigint unique query id。 user_id oid unique query的key中的user_id。 cn_id integer cn id,在DN上表示该unique sql来之该CN节点,unique query的key中的cn_id。 unique_query text 规范化后的UniqueSQL文本串。 locktag text 会话等待锁信息,可通过locktag_decode解析。 lockmode text 会话等待锁模式。 block_sessionid bigint 如果会话正在等待锁,阻塞该会话获取锁的会话标识。 final_block_sessionid bigint 表示源头阻塞会话id。 wait_status text 描述event列的更多详细信息。 global_sessionid text 全局会话ID。 xact_start_time timestamp with time zone 事务开始时间。 query_start_time timestamp with time zone 语句开始执行时间。 state text 当前语句状态。 可能取值为:active、idle in transaction、fastpath function call、idle in transaction (aborted)、disabled、retrying。 event_start_time timestamp with time zone wait event的开始时间。 current_xid xid 当前事务ID。 top_xid xid 顶层事务ID。 父主题: Session/Thread
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter线程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0
  • wal_file_preinit_bounds 参数说明:设置业务运行时,WAL writer辅助线程每秒可预扩的WAL日志段文件的数量限制(WAL日志段文件的大小为16MB)。当该参数值为0时,表示不进行限制。 参数类型:整型 参数单位:无 取值范围:0~1024 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 设置建议:设置为默认值,不做调整。当把该参数设置为有效值时,需基于磁盘IO能力进行设置,可参考参数max_io_capacity的数值进行设置: 若max_io_capacity为500MB,可设置为25; 若max_io_capacity为1GB,可设置为50。
  • wal_flush_timeout 参数说明:遍历WalInsertStatusEntryTbl的超时时间。xLog刷盘自适应控制的刷盘IO遍历WalInsertStatusEntryTbl等待的最大时间。 该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 如果时间过长可能造成xLog刷盘频率降低,降低xLog处理性能。 取值范围:整型, 0 ~ 90000000(微秒) 默认值:2us
  • full_page_writes 参数说明:设置GaussDB服务器在检查点之后对页面的第一次修改时,是否将每个磁盘页面的全部内容写到WAL日志中。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置这个参数是因为在操作系统崩溃过程中可能磁盘页面只写入了一部分内容,从而导致在同一个页面中包含新旧数据的混合。在崩溃后的恢复期间,由于在WAL日志中存储的行变化信息不够完整,因此无法完全恢复该页。把完整的页面影像保存下来就可以保证页面被正确还原,代价是增加了写入WAL日志的数据量。 关闭此参数,在系统崩溃的时候,可能无法恢复原来的数据。如果服务器硬件的特质(比如电池供电的磁盘控制器)可以减小部分页面的写入风险,或者文件系统特性支持(比如ReiserFS 4),并且清楚知道写入风险在一个可以接受的范畴,可以关闭这个参数。 取值范围:布尔型 on表示启用此特性。 off表示关闭此特性。 默认值:on
  • fsync 参数说明:设置GaussDB服务器是否使用fsync()系统函数(请参见wal_sync_method)确保数据的更新及时写入物理磁盘中。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。 取值范围:布尔型 on表示使用fsync()系统函数。 off表示不使用fsync()系统函数。 默认值:on
  • wal_sync_method 参数说明:设置向磁盘强制更新WAL数据的方法。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果将fsync关闭,这个参数的设置就没有意义,因为所有数据更新都不会强制写入磁盘。 取值范围:枚举类型 open_datasync表示用带O_DSYNC选项的open()打开“WAL”文件。 fdatasync表示每次提交的时候都调用fdatasync()(支持suse10和suse11)。 fsync_writethrough表示每次提交的时候调用fsync()强制把缓冲区任何数据写入磁盘。 由于历史原因,Windows平台支持将wal_sync_method设置为fsync_writethrough。在windows平台上fsync_writethrough和fsync等效。 fsync表示每次提交的时候调用fsync()(支持suse10和suse11)。 open_sync表示用带O_SYNC选项的open()写“WAL”文件(支持suse10和suse11)。 不是所有的平台都支持以上参数。 默认值:fdatasync
  • wal_level 参数说明:设置写入WAL信息量的级别,不能为空或被注释掉。 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive、hot_standby或者logical。 如果该参数设置为archive或minimal,则hot_standby参数必须设置为off。在分布式环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。因此不建议该参数设置为archive或minimal,否则数据库将无法启动。 参数类型:枚举类型 取值范围: minimal 优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。 缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。 archive 这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。 hot_standby 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。 logical 设置为logical后才可以进行逻辑日志解析,设置后xLog日志中会额外记录主键信息。 默认值:hot_standby 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:开启逻辑复制功能时设置为logical,其他场景设置为hot_standby。
  • STAT_BAD_BLOCK 获得当前节点表、索引等文件的读取失败信息,如表1所示。 表1 STAT_BAD_BLOCK字段 名称 类型 描述 nodename text 节点名称。 databaseid integer database的oid。 tablespaceid integer tablespace的oid。 relfilenode integer relation的file node。 bucketid smallint 一致性hash bucket ID。 forknum integer fork编号。 error_count integer error的数量。 first_time timestamp with time zone 页面损坏第一次出现的时间。 last_time timestamp with time zone 页面损坏最后出现的时间。 父主题: Object
  • DBE_SQL_UTIL.create_abort_sql_patch create_abort_sql_patch是用于创建避险SQL PATCH的接口函数,返回执行是否成功。本函数是原函数的重载函数,支持通过parent_unique_sql_id值限制abort patch的生效范围,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.create_abort_sql_patch重载函数入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 unique_sql_id IN bigint 查询全局唯一id。 parent_unique_sql_id IN bigint 标识外层SQL语句的全局唯一id,值为0时表示限制存储过程外语句SQL PATCH生效;非0值表示限制特定存储过程生效。 description IN text PATCH的备注,默认值为NULL。 enabled IN bool PATCH是否生效,默认值为true。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • autovacuum_analyze_scale_factor 参数说明:ANALYZE表的规模因子,用于计算执行ANALYZE的阈值,计算方式为autovacuum_analyze_threshold+ reltuples(表上元组的个数) * autovacuum_analyze_scale_factor。当表上被删除、插入或更新的记录数超过阈值时才会对这个表执行ANALYZE操作。 参数类型:浮点型 参数单位:无 取值范围:0.0 ~ 100.0 默认值:0.1 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该值越大,触发ANALYZE的条件就越高,对性能影响越小。
  • autovacuum_freeze_max_age 参数说明:对于ASTORE表,指定在一个VACUUM操作被强制执行前,一个表的pg_class.relfrozenxid域能保持的最大周期(事务的)。 VACUUM也可以删除pg_clog/子目录中的旧文件。 即使自动清理线程被禁止,系统也会调用自动清理线程。 参数类型:长整型 参数单位:无 取值范围:100 000~576 460 752 303 423 487 默认值:4000000000 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
  • autovacuum_vacuum_scale_factor 参数说明:VACUUM时计算表的规模因子,用于计算执行VACUUM的阈值,计算方式为autovacuum_vacuum_threshold+ reltuples (表上元组的个数)* autovacuum_vacuum_scale_factor。当表上被删除或更新的记录数超过阈值时才会对这个表执行VACUUM操作。 参数类型:浮点型 参数单位:无 取值范围:0.0 ~ 100.0 默认值:0.2 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该值越大,触发VACUUM的条件就越高,对性能影响越小。
  • log_autovacuum_min_duration 参数说明:当自动清理的执行时间大于或者等于某个特定的值时,向服务器日志中记录自动清理执行的每一步操作。设置此选项有助于追踪自动清理的行为。 举例如下:将log_autovacuum_min_duration设置为250ms,表示记录所有运行大于或者等于250ms的自动清理命令的相关信息。 参数类型:整型 参数单位:毫秒 取值范围:-1~2147483647。 当参数设置为0时,表示所有的自动清理操作都记录到日志中。 当参数设置为-1时,表示所有的自动清理操作都不记录到日志中。 当参数设置为非-1时,当由于锁冲突的存在导致一个自动清理操作被跳过,记录一条消息(记录跳过autovacuum原因,便于审计)。 默认值:-1 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:一般默认-1。日志中需要记录autovacuum操作的场景下,则设置为非-1。
  • autovacuum_vacuum_threshold 参数说明:用于计算触发VACUUM的阈值,计算方式为autovacuum_vacuum_threshold+ reltuples(表上元组的个数) * autovacuum_vacuum_scale_factor。当表上被删除或更新的记录数超过阈值时才会对这个表执行VACUUM操作。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 默认值:50 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。
  • autovacuum_mode 参数说明:该参数仅在autovacuum设置为on的场景下生效,它控制autoanalyze和autovacuum的打开情况。 参数类型:枚举类型 参数单位:无 取值范围:analyze、vacuum、mix、none analyze:表示只做autoanalyze。 vacuum:表示只做autovacuum。 mix:表示autoanalyze和autovacuum都做。 none:表示autoanalyze和autovacuum都不做。 默认值:mix 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • autovacuum_naptime 参数说明:设置两次自动清理操作的时间间隔。 参数类型:整型 参数单位:s 取值范围:1~2147483。 默认值:10min(即600s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值600,表示autovacuum_naptime为600s;带单位取值10min,表示autovacuum_naptime为10min。取值如果要带单位,必须为s、min、h、d 设置建议:设置为默认值,不作调整。
  • autovacuum_analyze_threshold 参数说明:用于计算触发ANALYZE操作的阈值,计算方式为autovacuum_analyze_threshold+ reltuples(表上元组的个数) * autovacuum_analyze_scale_factor。当表上被删除、插入或更新的记录数超过阈值时才会对这个表执行ANALYZE操作。若表上存在全局二级索引,则当表上被删除、插入和更新的记录数超过阈值的20倍时,才会对全局二级索引执行ANALYZE操作。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 默认值:50 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。
  • autoanalyze_timeout 参数说明:设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。 这里的时间检查不能保证完全精确,原则上要保证各个CN上统计信息一致,因此在CN间同步信息时,即便超时也不会被打断。这导致实际的执行时间有可能超过用户定义的时间。 参数类型:整型 参数单位:秒(s) 取值范围:0~2147483,0表示不超时。 默认值:300 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:无
  • autovacuum_max_workers 参数说明:设置能同时运行的自动清理线程的最大数量,该参数的取值上限与GUC参数max_connections和job_queue_processes大小有关。 参数类型:整型 参数单位:无 取值范围:最小值为0(表示不会自动进行autovacuum),理论最大值为262143,实际最大值为动态值,计算公式为“262143 - max_inner_tool_connections - max_connections - max_concurrent_autonomous_transactions - job_queue_processes - 辅助线程数 – autovacuum的launcher线程数 - 1”,其中辅助线程数和autovacuum的launcher线程数由两个宏来指定,当前版本的默认值分别为20和2。 默认值:3 调整建议:此参数设置越大,自动清理功能创建的线程数越多,占用的系统cpu和内存资源越多,所以设置时不建议设置过大,避免由于此参数设置过大导致内存无法分配或者占用过多cpu资源,导致数据库启动报错或业务受到影响。 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
共100000条