华为云用户手册

  • hot_standby 参数说明:设置是否允许备机在恢复到minrecovery点后接受连接和查询。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许备机在恢复过程中连接和查询。 off:表示不允许备机在恢复过程中连接和查询。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:备机读功能开启后,即使没有响应业务,也会有一定的资源消耗,包括CPU、内存、磁盘空间、I/O占用。如果没有备机读业务,建议关闭此参数。 如果此参数设置为on,wal_level级别必须设置为hot_standby或以上,否则将导致数据库无法启动。 在集中式环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。 如果hot_standby参数曾经被关闭,且wal_level参数曾被设置低于hot_standby等级,那么,再次打开hot_standby参数之前,为了确保主备环境下备机上待回放的日志都可以支持备机查询功能,需要进行如下操作: 将主、备的wal_level参数调整到hot_standby等级或以上,并重启实例生效。 在主机上执行checkpoint操作,并通过查询pg_stat_get_wal_senders()系统函数,确认各个备机的receiver_replay_location追上主机当前的sender_flush_location,保证wal_level的调整同步到备机并生效,且备机不需要再回放之前低等级的日志。 将主、备的hot_standby参数打开(设为on),并重启实例生效。 备机读开启后,因备机回放与查询冲突,可能会出现查询被取消的报错,报错信息有: ERROR: canceling statement due to conflict with recovery ERROR: terminating connection due to conflict with recovery 在串行和并行回放备机读下,主机在进行在线重建索引时,备机读可能会报错,备机读请稍后重试。报错信息有: could not open relation with OID xxx during recovery delete object, please try again later Catalog is missing xxx attribute(s) for relid xxx cache lookup failed for index xxx, refilenode:xxx, name:"xxx" could not find pg_class entry for xxx could not open block during recovery delete object, please try again later 在极致RTO备机读的情况下,内存配置较小的虚拟机可能出现内存不足的报错,可通过开启GUC参数exrto_standby_read_opt(默认开启)有效降低内存和I/O开销,解决此问题。 典型场景下的备机读性能:使用sysbench进行测试,主机执行100并发的update类型业务,主备机同时执行200并发的读类型业务,在I/O和CPU不受限的条件下,串行回放备机读的性能不低于主机读业务性能的80%,极致RTO备机读的性能和串行回放备机读的性能相比劣化不超过10%。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_standby_streaming_delay 参数说明:当开启双机热备模式时,如果备机正通过流复制接收WAL日志数据,这时进行查询就会产生冲突,这个参数就是设置备机取消查询之前所等待的时间。当参数值较大,或业务压力大时,概率出现查询与回放冲突的报错。 参数类型:整型 参数单位:ms(毫秒) 取值范围:-1 ~ 2147483647 -1表示允许备机一直等待冲突的查询完成。在开启串行或并行回放的场景下,当检测到查询线程与回放线程已处于死锁状态时,仍会通过取消查询来避免阻塞回放。 默认值:3000(即3s) 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:需根据业务需求谨慎调整,推荐使用默认值。设置值越大,备机的查询业务优先级越高,但会影响备机回放;设置值越小,长查询越容易被取消,但回放的优先级越高。 设置不当的风险与影响:设置过大时,如果出现与回放冲突的长查询,有可能导致回放长时间被阻塞,影响此备机的RTO和RPO指标。
  • 字符类型 GaussDB 支持的字符类型如表1所示。字符串操作符和相关的内置函数请参见字符处理函数和操作符。 表1 字符类型 名称 描述 存储空间 CHAR(n) CHARACTER(n) NCHAR(n) 定长字符串,不足补空格。n是指字节长度,如不带精度n,默认精度为1。 最大为10MB。 当sql_compatibility = 'B'时,设置参数b_format_version = '5.7'、b_format_dev_version = 's1'后: 类型:n指字符长度,区间[0,10485760],如不带精度n,默认精度为1。定长字符串,不足补充空格。 输入: 作为表列和临时变量的数据类型:输入字符串字符个数在范围内可以正常输入,sql_mode参数值包含“strict_trans_tables”时,超过范围直接报错,否则按n最大字符长度截断处理并告警。 输出: 作为表列和临时变量的数据类型:sql_mode参数值包含“pad_char_to_full_length”时,输出带有尾部空格的字符串,否则输出不带尾部空格的字符串。 作为函数参数和返回值,存储过程的参数:不支持长度校验(例如:自定义函数入参为CHAR(5)类型,输入一个字符串'123456',不校验长度,可以直接传入参数)。 最大为10M个字符。 VARCHAR(n) CHARACTER VARYING(n) 变长字符串。PG兼容模式下,n是字符长度。其他兼容模式下,n是指字节长度。 n最大为10485760(即10MB)。 不带n时,最大存储字节长度为1GB-85-4(存储长度参数的空间)-其余列长度,比如(a int, b varchar, c int),varchar最大长度为1GB-85-4(存储长度参数的空间)-4(a列int的长度)-4(c列int的长度)=1,073,741,727‬。 当sql_compatibility = 'B'时,设置参数b_format_version = '5.7'、b_format_dev_version = 's1'后: n指字符长度,区间[0,10485760],如不带精度n,默认为不限制长度,长度与TEXT类型相同。 输入: 作为表列和临时变量的数据类型:输入字符串字符个数在范围内可以正常输入,sql_mode参数值包含“strict_trans_tables”时,超过范围直接报错,否则按n最大字符长度截断处理并告警。 输出:原字符串输出。 n最大为10485760(即10MB)。 不带n时,最大存储字节长度为1GB-85-4(存储长度参数的空间)-其余列长度,比如(a int, b varchar, c int),varchar最大长度为1GB-85-4(存储长度参数的空间)-4(a列int的长度)-4(c列int的长度)=1,073,741,727‬。 VARCHAR2(n) 变长字符串。是VARCHAR(n)类型的别名,为兼容Oracle类型。 n最大为10485760(即10MB)。 不带n时,最大存储字节长度为1GB-85-4(存储长度参数的空间)-其余列长度,比如(a int, b varchar2, c int),varchar2最大长度为1GB-85-4(存储长度参数的空间)-4(a列int的长度)-4(c列int的长度)=1,073,741,727‬。 NVARCHAR2(n) 变长字符串。在SQL_ASCII字符集下,n表示的字节;在非SQL_ASCII字符集下,n表示的是字符。 n最大为10485760(即10MB)。 不带n时,最大存储字节长度为1GB-85-4(存储长度参数的空间)-其余列长度,比如(a int, b nvarchar2, c int),nvarchar2最大长度为1GB-85-4(存储长度参数的空间)-4(a列int的长度)-4(c列int的长度)=1,073,741,727‬。 TEXT 变长字符串。 最大存储字节长度为1GB-85-4(存储长度参数的空间)-其余列长度,比如(a int, b text, c int),text最大长度为1GB-85-4(存储长度参数的空间)-4(a列int的长度)-4(c列int的长度)=1,073,741,727‬。 CLOB 文本大对象,兼容Oracle类型。 在astore下,最大为32TB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于32TB-1),因此CLOB类型最大值可能小于32TB-1。 在ustore下,最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此CLOB类型最大值可能小于1GB-1。 TINYTEXT MEDIUMTEXT LONGTEXT 当sql_compatibility = 'B'时,设置参数b_format_version = '5.7'、b_format_dev_version = 's1'后有效。 类型转换成TEXT类型,使用场景与TEXT类型相同。 最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节,主要受列的控制头信息、元组控制头信息以及元组中是否存在NULL字段等影响。 NCHAR为bpchar类型的别名,VARCHAR2(n)为VARCHAR(n)类型的别名。 超过1GB的clob只有dbe_lob相关高级包支持,系统函数不支持大于1GB clob。 在A兼容模式下,默认将接收到的空字符串转换为null。 在GaussDB里另外还有两种定长字符类型。在表2里显示。name类型只用在内部系统表中,作为存储标识符,不建议普通用户使用。该类型长度当前定为64字节(63可用字符加结束符)。类型“char”只用了一个字节的存储空间,在系统内部主要用于系统表,主要作为简单化的枚举类型使用。 表2 特殊字符类型 名称 描述 存储空间 name 用于对象名的内部类型。 64字节。 "char" 单字节内部类型。 1字节。 父主题: 数据类型
  • PG_SHSECLABEL PG_SHSECLABEL系统表存储在共享数据库对象上的安全标签。安全标签可以用SECURITY LABEL命令操作。 查看安全标签的简单点的方法,请参阅PG_SECLABELS。 PG_SECLABEL的作用类似,只是它是用于在单个数据库内部的对象的安全标签的。 不同于大多数的系统表,PG_SHSECLABEL在GaussDB中的所有数据库中共享:每个GaussDB只有一个PG_SHSECLABEL,而不是每个数据库一个。 表1 PG_SHSECLABEL字段 名称 类型 引用 描述 objoid oid 任意OID属性 这个安全标签所属的对象的OID。 classoid oid PG_CLASS.oid 出现这个对象的系统目录的OID。 provider text - 与这个标签相关的标签提供程序。 label text - 应用于这个对象的安全标签。 父主题: 用户和权限管理
  • GLOBAL_STATEMENT_COUNT 显示数据库各节点当前时刻执行的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)和(DDL、DML、DCL)统计信息,如表1所示。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时仅返回该PDB相关信息。 表1 GLOBAL_STATEMENT_COUNT字段 名称 类型 描述 node_name text 节点名称。 user_name text 用户名。 select_count bigint SELECT语句统计结果。 update_count bigint UPDATE语句统计结果。 insert_count bigint INSERT语句统计结果。 delete_count bigint DELETE语句统计结果。 mergeinto_count bigint MERGE INTO语句统计结果。 ddl_count bigint DDL语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句。 dml_count bigint DML语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句。 dcl_count bigint DCL语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句。 total_select_elapse bigint 总SELECT的时间花费(单位:微秒)。 avg_select_elapse bigint 平均SELECT的时间花费(单位:微秒)。 max_select_elapse bigint 最大SELECT的时间花费(单位:微秒)。 min_select_elapse bigint 最小SELECT的时间花费(单位:微秒)。 total_update_elapse bigint 总UPDATE的时间花费(单位:微秒)。 avg_update_elapse bigint 平均UPDATE的时间花费(单位:微秒)。 max_update_elapse bigint 最大UPDATE的时间花费(单位:微秒)。 min_update_elapse bigint 最小UPDATE的时间花费(单位:微秒)。 total_insert_elapse bigint 总INSERT的时间花费(单位:微秒)。 avg_insert_elapse bigint 平均INSERT的时间花费(单位:微秒)。 max_insert_elapse bigint 最大INSERT的时间花费(单位:微秒)。 min_insert_elapse bigint 最小INSERT的时间花费(单位:微秒)。 total_delete_elapse bigint 总DELETE的时间花费(单位:微秒)。 avg_delete_elapse bigint 平均DELETE的时间花费(单位:微秒)。 max_delete_elapse bigint 最大DELETE的时间花费(单位:微秒)。 min_delete_elapse bigint 最小DELETE的时间花费(单位:微秒)。 dbid oid 统计的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)所属的数据库id。 user_dml_count bigint 用户执行的DML语句的数量。 bg_dml_count bigint 数据库后台线程执行的DML语句的数量。 父主题: Query
  • MEMORY_NODE_DETAIL 显示当前数据库节点内存使用情况,如表1所示。在PDB下调用返回空。 表1 MEMORY_NODE_DETAIL字段 名称 类型 描述 nodename text 节点名称。 memorytype text 内存的名称。 max_process_memory:数据库节点可用内存的最大值。 process_used_memory:进程所使用的内存大小。 max_dynamic_memory:最大动态内存。 dynamic_used_memory:已使用的动态内存。 dynamic_peak_memory:内存的动态峰值。 dynamic_used_shrctx:已使用的动态共享内存上下文。 dynamic_peak_shrctx:共享内存上下文的动态峰值。 max_shared_memory:最大共享内存。 shared_used_memory:已使用的共享内存。 max_sctpcomm_memory:TCP代理通信所允许使用的最大内存。 sctpcomm_used_memory:TCP代理通信已使用的内存大小。 sctpcomm_peak_memory:TCP代理通信的内存峰值。 other_used_memory:其他已使用的内存大小。 gpu_max_dynamic_memory:GPU最大动态内存。 gpu_dynamic_used_memory:GPU已使用的动态内存。 gpu_dynamic_peak_memory:GPU内存的动态峰值。 pooler_conn_memory:连接池申请内存计数。 pooler_freeconn_memory:连接池空闲连接的内存计数。 storage_compress_memory:存储模块压缩使用的内存大小。 udf_reserved_memory:UDF预留的内存大小。 memorymbytes integer 内存使用的大小,单位为MB。 父主题: Memory
  • sqlca 嵌入式SQL接口提供了sqlca(SQL通信区)的全局变量。sqlca包含告警和错误信息。如果在语句执行期间发生多个告警和错误,那么sqlca将只保存最后一个信息。在一个多线程的程序中,每一个线程会自动得到它的sqlca副本。 数据结构如下: struct { char sqlcaid[8]; long sqlabc; long sqlcode; struct { int sqlerrml; char sqlerrmc[SQLERRMC_LEN]; } sqlerrm; char sqlerrp[8]; long sqlerrd[6]; char sqlwarn[8]; char sqlstate[5]; } sqlca; 如果SQL语句没有发生错误,则sqlca.sqlcode为0,sqlca.sqlstate为"00000"。如果发生了告警或者错误,那么sqlca.sqlcode是负数并且sqlca.sqlstate不同于"00000"。SQLSTATE与SQLCODE的具体值请参见SQLSTATE与SQLCODE。 如果SQL语句正确执行,那么sqlca.sqlerrd[1]包含被处理行的OID,并且sqlca.sqlerrd[2]包含被处理或返回的行数。 在发生错误或告警时,sqlca.sqlerrm.sqlerrmc将包含描述该错误的字符串。sqlca.sqlerrm.sqlerrml包含存储在sqlca.sqlerrm.sqlerrmc中错误消息的长度(strlen()的结果)。注意:一些消息可能无法适应定长的sqlerrmc数组,它们将被截断。 在发生告警时,sqlca.sqlwarn[2]被设置为W。 sqlcaid、sqlabc、sqlerrp、sqlwarn以及sqlerrd的剩余元素目前未包含有用的信息。 示例如下: /* 整合WHENEVER和sqlca实现错误处理 */ EXEC SQL WHENEVER SQLERROR SQLCALL print_sqlca(); void print_sqlca() { fprintf(stderr, "==== sqlca ====\n"); fprintf(stderr, "sqlcode: %ld\n", sqlca.sqlcode); fprintf(stderr, "sqlerrm.sqlerrml: %d\n", sqlca.sqlerrm.sqlerrml); fprintf(stderr, "sqlerrm.sqlerrmc: %s\n", sqlca.sqlerrm.sqlerrmc); fprintf(stderr, "sqlerrd: %ld %ld %ld %ld %ld %ld\n", sqlca.sqlerrd[0],sqlca.sqlerrd[1],sqlca.sqlerrd[2], sqlca.sqlerrd[3],sqlca.sqlerrd[4],sqlca.sqlerrd[5]); fprintf(stderr, "sqlwarn: %d %d %d %d %d %d %d %d\n", sqlca.sqlwarn[0], sqlca.sqlwarn[1], sqlca.sqlwarn[2], sqlca.sqlwarn[3], sqlca.sqlwarn[4], sqlca.sqlwarn[5], sqlca.sqlwarn[6], sqlca.sqlwarn[7]); fprintf(stderr, "sqlstate: %5s\n", sqlca.sqlstate); fprintf(stderr, "===============\n"); } 输出结果形如下(拼写表名错误): ==== sqlca ==== sqlcode: -400 sqlerrm.sqlerrml: 49 sqlerrm.sqlerrmc: relation "pg_databasep" does not exist on line 38 sqlerrd: 0 0 0 0 0 0 sqlwarn: 0 0 0 0 0 0 0 0 sqlstate: 42P01 =============== 父主题: 错误处理
  • _PG_FOREIGN_TABLES 存储所有的定义在本数据库的外部表信息,如表1所示。只显示当前用户有权访问的外部表信息。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_TABLES字段 名称 类型 描述 foreign_table_catalog information_schema.sql_identifier 外部表所在的数据库名称(永远是当前数据库)。 foreign_table_schema name 外部表的schema名称。 foreign_table_name name 外部表的名称。 ftoptions text[] 外部表的可选项。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在的数据库名称(永远是当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器的名称。 authorization_identifier information_schema.sql_identifier 所有者的角色名称。 父主题: Information Schema
  • ADM_AUDIT_STATEMENT ADM_AUDIT_STATEMENT显示所有GRANT、REVOKE审计跟踪条目,GaussDB审计信息主要通过gs_query_audit函数查询,该视图同时存在于PG_CATA LOG 和SYS schema下。仅拥有AUDITADMIN属性的用户才可以查看审计信息。 表1 ADM_AUDIT_STATEMENT字段 名称 类型 描述 os_username character varying(255) 暂不支持,值为NULL。 username character varying(128) 操作被审计的用户的名称,不是用户ID。 userhost character varying(128) 暂不支持,值为NULL。 terminal character varying(255) 暂不支持,值为NULL timestamp timestamp(0) without time zone 创建审核跟踪条目的日期和时间(用户登录创建条目的日期和时间AUDIT SESSION)。 owner character varying(128) 暂不支持,值为NULL。 obj_name character varying(128) 受操作影响的对象的名称。 action_name character varying(28) DBA_AUDIT_TRAIL中的ACTION列中的数字代码对应的动作类型的名称。 说明: GaussDB的action_name字段与A数据库审计动作不一致,transactionid字段与A数据库中transactionid数据的类型保持一致。 new_name character varying(128) 暂不支持,值为NULL。 obj_privilege character varying(32) 暂不支持,值为NULL。 sys_privilege character varying(40) 暂不支持,值为NULL。 admin_option character varying(1) 暂不支持,值为NULL。 grantee character varying(128) 暂不支持,值为NULL。 audit_option character varying(40) 暂不支持,值为NULL。 ses_actions character varying(19) 暂不支持,值为NULL。 comment_text character varying(4000) 暂不支持,值为NULL。 sessionid numeric 暂不支持,值为NULL。 entryid numeric 暂不支持,值为NULL。 statementid numeric 暂不支持,值为NULL。 returncode numeric 暂不支持,值为NULL。 priv_used character varying(40) 暂不支持,值为NULL。 client_id character varying(128) 暂不支持,值为NULL。 econtext_id character varying(64) 暂不支持,值为NULL。 session_cpu numeric 暂不支持,值为NULL。 extended_timestamp timestamp(6) with time zone 在UTC(协调世界时)时区创建审核跟踪条目的时间戳(创建条目的用户登录时间戳AUDIT SESSION)。 proxy_sessionid numeric 暂不支持,值为NULL。 global_uid character varying(32) 暂不支持,值为NULL。 instance_number numeric 暂不支持,值为NULL。 os_process character varying(16) 暂不支持,值为NULL。 transactionid text 访问或修改对象事务的事务标识符。 说明: GaussDB的transactionid字段与A数据库中transactionid数据的类型保持一致。 scn numeric 暂不支持,值为NULL。 sql_bind nvarchar2(2000) 暂不支持,值为NULL。 sql_text character varying(2000) 查询的SQL文本。 说明: GaussDB的sql_text字段为解析后的SQL描述语句,不完全与执行的SQL语句相同。 obj_edition_name character varying(128) 暂不支持,值为NULL。 父主题: 审计
  • 参数 表1 SQLSetEnvAttr参数 关键字 参数说明 EnvironmentHandle 环境句柄。 Attribute 需设置的环境属性,可为如下值: SQL_ATTR_ODBC_VERSION:指定ODBC版本。 SQL_CONNECTION_POOLING:连接池属性。 SQL_OUTPUT_NTS:指明驱动器返回字符串的形式。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位整型值,或为以空结束的字符串。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,则这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • 原型 1 2 3 4 SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • PG_STAT_ACTIVITY_NG PG_STAT_ACTIVITY_NG视图显示在当前用户所属的逻辑数据库实例下,所有查询的相关信息。 表1 PG_STAT_ACTIVITY_NG字段 名称 类型 描述 datid oid 用户会话在后台连接到的数据库OID。 datname name 用户会话在后台连接到的数据库名称。 pid bigint 后台线程ID。 sessionid bigint 会话ID。 usesysid oid 登录该后台的用户OID。 usename name 登录该后台的用户名。 application_name text 连接到该后台的应用名。 client_addr inet 连接到该后台的客户端的IP地址。 如果该字段取值是null,表明是通过服务器机器上UNIX套接字连接客户端或者这是内部线程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后台通讯的TCP端口号,如果使用Unix套接字,则为-1。 backend_start timestamp with time zone 该会话开始的时间,即当客户端连接服务器的时间。 xact_start timestamp with time zone 当前活跃事务开始的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 query_start timestamp with time zone 当前活跃查询开始的时间, 如果state的值不是active,则这个值是上一个查询的开始时间。如果是存储过程、函数、package,则显示的是第一个查询时间,不会随着存储过程内语句运行而改变。 state_change timestamp with time zone 上次状态改变的时间。 waiting boolean 如果后台当前正等待锁则为true。否则为false。 enqueue text 语句当前排队状态。可能值是: waiting in queue:表示语句在排队中。 空:表示语句正在运行。 state text 该后台当前总体状态。可能值是: active:后台正在执行一个查询。 idle:后台正在等待一个新的客户端命令。 idle in transaction:后台在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后台在事务中,但事务中有语句执行失败。 fastpath function call:后台正在执行一个fast-path函数。 disabled:如果后台禁用track_activities,则报告这个状态。 说明: 普通用户只能查看到自己账户所对应的会话状态。即其他账户的state信息为空。例如以judy用户连接数据库后,在pg_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pg_stat_activity_ng; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- testdb | omm | 10 | | 139968752121616 testdb | omm | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 testdb | omm | 10 | | 139968643069712 testdb | omm | 10 | | 139968680818448 testdb | joe | 16390 | | 139968563377936 (6 rows) resource_pool name 用户使用的资源池。 query_id bigint 查询语句的ID。 query text 该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 node_group text 语句所属用户对应的逻辑数据库实例。 父主题: 其他系统视图
  • pl_trace_func_start 开启trace功能的接口函数。字段信息详见表1。 表1 pl_trace_func_start 参数 类型 描述 session_id bigint 需要开启trace功能的会话ID。 max_num integer 本次trace所能记录的最大信息数量(取值为100~10000)。 level text 本次trace的等级: session:会话级别,在调用pl_trace_func_end函数或会话关闭前一直开启trace功能。 portal:portal级别,执行一次存储过程后自动关闭trace功能。 time:会话级别,在会话级别上添加语句执行时间显示。 threshold:会话级别,在time级别上只记录大于等于阈值的语句。 threshold float8 本次trace的阈值(单位:毫秒,仅在level为threshold时生效)。 父主题: Trace Function
  • autovacuum_vacuum_cost_delay 参数说明:设置在自动VACUUM操作里使用的开销延迟数值。 参数类型:整型 参数单位:ms(毫秒) 取值范围:-1 ~ 100。其中-1表示使用常规的vacuum_cost_delay。 默认值:20 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • cstore_prefetch_quantity 参数说明:临时复用参数,是否打开分区表VACUUM优化以及TID Store缓存优化,仅对当前节点生效。 参数类型:整型 参数单位:KB 取值范围:1024 ~ 1048576 [1024,100000):TID Store缓存优化功能与分区表VACUUM优化功能同时关闭。 [100000,200000):TID Store缓存优化功能关闭,分区表VACUUM优化功能打开。 [200000,300000):TID Store缓存优化功能与分区表VACUUM优化功能同时打开。 [300000,1048576]:TID Store缓存优化功能打开,分区表VACUUM优化功能关闭。 默认值:32768 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,在默认值32768的情况下,TID Store缓存优化功能与分区表VACUUM优化功能同时关闭。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • defer_csn_cleanup_time 参数说明:用来指定本地回收时间间隔。defer_csn_cleanup_time参数用于控制系统何时清理已过期的 CS N信息,指定了系统在多长时间内保留已过期的CSN信息。 参数类型:整型 参数单位:ms(毫秒) 取值范围:0 ~ 2147483647 默认值:5000(即5s) 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。如果系统的负载较轻,可以将defer_csn_cleanup_time设置为较长的时间。如果系统的负载较重,建议将defer_csn_cleanup_time设置为较短的时间。这样可以确保系统在忙碌时也能保持良好的性能。 设置不当的风险与影响:如果设置得太短,系统可能会频繁地清理已过期的CSN信息,从而导致性能下降。如果设置得太长,系统可能会占用过多的内存,从而导致系统变慢或崩溃。
  • autovacuum_vacuum_cost_limit 参数说明:设置在自动VACUUM操作里使用的开销限制数值。 参数类型:整型 参数单位:无 取值范围:-1 ~ 10000。其中-1表示使用常规的vacuum_cost_limit。 默认值:-1 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • cstore_backwrite_max_threshold 参数说明:临时复用参数,是否打开针对主机堆表全零页面的自动主备校验功能,仅对当前节点生效。 参数类型:整型 参数单位:KB 取值范围:4096 ~ INT_MAX / 2。 [4096,3000000):全零页面校验功能打开。 [3000000,INT_MAX / 2]:全零页面校验功能关闭。 默认值:2097152 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,默认参数下,全零页面校验功能打开。如需要关闭此功能请将参数调整大于等于3000000。该功能仅对新安装数据库实例默认打开;对于升级到当前版本的数据库实例,该功能会在升级过程中自动关闭,功能打开后仅对当前节点生效,会在首次顺序扫描过程中影响性能。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • autovacuum_analyze_threshold 参数说明:触发对ASTORE表ANALYZE操作的删除、插入或更新元组的最小数量值。触发ANALYZE的阈值=autovacuum_analyze_threshold+reltuples(表上元组的个数)* autovacuum_analyze_scale_factor。当表上被删除、插入或更新的记录数超过阈值时,才会对这个表执行ANALYZE操作。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 默认值:50 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响: 该参数设置得过低,会导致频繁的ANALYZE操作,增加系统开销,降低性能。 该参数设置得过高,表中的统计信息可能会过时,从而导致查询计划不准确,影响查询性能。
  • autovacuum_max_workers 参数说明:设置能同时运行的自动清理线程的最大数量,该参数的取值上限与GUC参数max_connections和job_queue_processes大小有关。 参数类型:整型 参数单位:无 取值范围:最小值为0(表示不会自动进行autovacuum),最大值为1024,用户设置超过1024时会内部自动调整为1024。实际最大值为动态值,计算公式为“262143 - max_inner_tool_connections - max_connections - max_concurrent_autonomous_transactions - job_queue_processes - 辅助线程数 – autovacuum的launcher线程数 - 1”,其中辅助线程数和autovacuum的launcher线程数由两个宏来指定,当前版本的默认值分别为20和2。 默认值:3 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数设置越大,自动清理功能创建的线程数越多,占用的系统CPU和内存资源越多,所以设置时不建议设置过大,避免由于此参数设置过大导致内存无法分配或者占用过多CPU资源,导致数据库启动报错或业务受到影响。如果将该参数设置得过低,可能会导致autovacuum线程无法及时清理和回收不再使用的表空间,从而导致数据库膨胀和性能下降。
  • autovacuum_freeze_max_age 参数说明:指定ASTORE表pg_class.relfrozenxid字段在超过多少个事务后,会强制执行VACUUM操作。即使自动清理被禁用,系统也会启动AUTOVACUUM线程。清理操作还允许从pg_clog/子目录中删除旧文件。 参数类型:整型 参数单位:无 取值范围:100000 ~ 2000000000 默认值:4000000000 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。如果数据库中的ASTORE表经常进行大量的更新和删除操作,那么建议将该参数设置为较小的值,以便及时回收垃圾。如果数据库中的ASTORE表很少进行更新和删除操作,那么可以将该参数设置为较大的值,以减少自动垃圾回收的频率。 设置不当的风险与影响:在ASTORE表中: 该参数设置得过低,会导致频繁的自动垃圾回收操作,增加系统开销,降低性能。 该参数设置得过高,会导致自动垃圾回收的延迟,从而可能导致大量的无效数据占用磁盘空间,影响数据库性能。
  • autovacuum_naptime 参数说明:设置两次自动清理操作的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 2147483。 默认值:600(即10min) 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示autovacuum_naptime为600s;带单位取值10min,表示autovacuum_naptime为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:仅用Ustore表时推荐使用默认值。对于Astore表,设置值取决于用户的数据库环境和应用程序负载。如果数据库环境中有大量表的更新或删除操作,建议将该参数设置为较短的时间间隔,以确保及时清理无用的数据并避免数据库空间不足的情况。如果数据库环境中的更新或删除操作较少,则可以将该参数设置为较长的时间间隔,以减少自动清理线程的开销。 设置不当的风险与影响: 如果将autovacuum_naptime设置为过短的时间间隔,可能会导致autovacuum线程的开销过大,从而影响数据库的性能。 如果将autovacuum_naptime设置为过长的时间间隔,可能会导致无用的数据堆积,从而占用数据库空间,影响数据库的性能。
  • autovacuum_analyze_scale_factor 参数说明:ANALYZE时表的规模因子,用于计算触发ANALYZE的阈值。触发ANALYZE的阈值=autovacuum_analyze_threshold+reltuples(表上元组的个数)*autovacuum_analyze_scale_factor。当表上被删除、插入或更新的记录数超过阈值时,才会对这个表执行ANALYZE操作。 参数类型:浮点型 参数单位:无 取值范围:0.0 ~ 100.0 默认值:0.1 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响: 该参数设置得过低,会导致频繁的ANALYZE操作,增加系统开销,降低性能。 该参数设置得过高,可能会导致ANALYZE的频率过低,表中的统计信息可能会过时,从而导致查询计划不准确,影响查询性能。
  • autovacuum_vacuum_threshold 参数说明:触发对ASTORE表VACUUM操作的删除或更新元组的最小数量值。触发VACUUM的阈值=autovacuum_vacuum_threshold+reltuples(表上元组的个数)* autovacuum_vacuum_scale_factor。当表上被删除或更新的记录数超过阈值时,才会对这个表执行VACUUM操作。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 默认值:50 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:在ASTORE表中: 该参数设置得过低,会导致频繁的VACUUM操作,增加系统开销,降低性能。 该参数设置得过高,会导致表中过多的死亡行存在,可能会影响查询性能。
  • autovacuum_vacuum_scale_factor 参数说明:VACUUM时表的规模因子,用于计算触发VACUUM的阈值。触发VACUUM的阈值=autovacuum_vacuum_threshold+reltuples(表上元组的个数)*autovacuum_vacuum_scale_factor。当表上被删除或更新的记录数超过阈值时,才会对这个表执行VACUUM操作。 参数类型:浮点型 参数单位:无 取值范围:0.0 ~ 100.0 默认值:0.2 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置值取决于ASTORE表的负载和使用情况;如果是高写入负载的,则用户需要将该参数设置得更低,以便更频繁地清理表以避免性能下降。另一方面,如果是高读取负载的,则可以将该参数设置得更高,以避免在读取时不必要地浪费资源。 设置不当的风险与影响:在ASTORE表中: 该参数设置得太低,那么autovacuum线程可能会过于频繁地清理表,导致性能下降。 该参数设置得太高,那么表可能无法及时清理,会变得非常大,占用过多的磁盘空间。
  • autovacuum_mode 参数说明:该参数仅在autovacuum设置为on的场景下生效,它控制autoanalyze和autovacuum的打开情况。 参数类型:枚举类型 参数单位:无 取值范围: analyze:表示只做autoanalyze。 vacuum:表示只做autovacuum。 mix:表示autoanalyze和autovacuum都做。 none:表示autoanalyze和autovacuum都不做。 默认值:mix 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_autovacuum_min_duration 参数说明:当自动清理的执行时间大于或者等于某个特定的值时,向服务器日志中记录自动清理执行的每一步操作。设置此选项有助于追踪自动清理的行为。 举例如下:将log_autovacuum_min_duration设置为250ms,表示记录所有运行大于或者等于250ms的自动清理命令的相关信息。 参数类型:整型 参数单位:ms(毫秒) 取值范围:-1 ~ 2147483647 当参数设置为0时,表示所有的自动清理操作都记录到日志中。 当参数设置为-1时,表示所有的自动清理操作都不记录到日志中。 当参数设置大于等于0时,当由于锁冲突的存在导致一个自动清理操作被跳过,记录一条消息(记录跳过autovacuum原因,便于审计)。 默认值:-1 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示log_autovacuum_min_duration为600ms;带单位取值10min,表示log_autovacuum_min_duration为10min。取值如果要带单位,必须为ms、s、min、h、d。 设置建议:一般默认为-1。如果需要监控自动VACUUM操作的性能,可以将log_autovacuum_min_duration设置为一个大于0的值,以记录持续时间超过该值的自动VACUUM操作的日志信息。 设置不当的风险与影响:如果设置为0或者过小,则可能会记录大量的日志信息,影响系统性能;如果设置过大,可能无法及时感知自动清理时间过久,导致清理速度不足或异常情况。
  • autovacuum 参数说明:控制数据库自动清理线程(autovacuum)的启动。自动清理线程运行的前提是将track_counts设置为on。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启数据库自动清理线程。 off:表示关闭数据库自动清理线程。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议: 如果希望系统在故障恢复后,具备自动清理两阶段事务的功能,请将autovacuum设置为on; 当设置autovacuum为on,autovacuum_max_workers为0时,表示系统不会自动进行autovacuum,只会在故障恢复后自动清理两阶段事务; 当设置autovacuum为on,autovacuum_max_workers大于0时,表示系统不仅会在故障恢复后自动清理两阶段事务,还可以自动进行autovacuum。 设置不当的风险与影响:在ASTORE表中,关闭该参数会导致表中有过多的不活跃行存在,可能会影响查询性能。
  • autovacuum_io_limits 参数说明:控制autovacuum线程每秒触发I/O的上限。 参数类型:整型 参数单位:无 取值范围:-1 ~ 1073741823。其中-1表示不控制,而是使用系统默认控制组。 默认值:-1 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议: 服务器有足够的磁盘I/O资源,可以将autovacuum_io_limits设置为较高的值,这将允许autovacuum线程更快地完成清理操作。 服务器磁盘I/O资源有限,可以将autovacuum_io_limits设置为较低的值。这将限制autovacuum线程使用的磁盘I/O资源,以避免对其他线程的影响。 设置不当的风险与影响: 设置为过高的值,可能会导致autovacuum线程使用过多的磁盘I/O资源,从而影响其他线程的性能。 设置为过低的值,可能会导致autovacuum线程无法有效地清理表数据,从而导致表数据过度膨胀,影响数据库性能。
  • autoanalyze_timeout 参数说明:设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483,0表示没有超时限制。 默认值:300 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置值取决于数据库的负载和性能需求。如果数据库的负载较轻,可以适当地将autoanalyze_timeout设置大些,以便自动分析操作有足够的时间来完成。如果数据库的负载较重,则应该将autoanalyze_timeout设置小些,以便自动分析操作可以在短时间内完成,从而避免影响其他重要的数据库操作。 设置不当的风险与影响:autoanalyze操作会消耗一定的系统资源,如果该参数设置太大,可能会导致系统资源被过度消耗,从而影响数据库的性能。如果设置太小,autoanalyze操作可能无法完成,可能会导致统计信息不准确,从而影响查询的执行计划和性能。
共100000条
提示

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