华为云用户手册

  • 背景信息 GaussDB数据库 支持的分区表为范围分区表、间隔分区表、列表分区表和哈希分区表。 范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式被广泛应用,并且分区键经常采用日期,例如将销售数据按照月份进行分区。 间隔分区表:是一种特殊的范围分区表,相比范围分区表,新增间隔值定义,当插入记录找不到匹配的分区时,可以根据间隔值自动创建分区。 列表分区表:将数据中包含的键值分别存储在不同的分区中,依次将数据映射到每一个分区,分区中包含的键值由创建分区表时指定。 哈希分区表:将数据根据内部哈希算法依次映射到每一个分区中,包含的分区个数由创建分区表时指定。 分区表和普通表相比具有以下优点: 改善查询性能:对分区对象的查询可以仅搜索与查询条件匹配的分区数据,提高检索效率。 增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。 方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。 普通表若要转成分区表,需要新建分区表,然后把普通表中的数据导入到新建的分区表中。因此在初始设计表时,请根据业务提前规划是否使用分区表。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 --查看现有预备语句。 gaussdb=# SELECT name, statement, parameter_types FROM pg_prepared_statements; name | statement | parameter_types ------+-----------+----------------- (0 rows) --创建q1,q2,q3,q4四个预备语句。 gaussdb=# PREPARE q1 AS SELECT 1 AS a; PREPARE gaussdb=# PREPARE q2 AS SELECT 1 AS a; PREPARE gaussdb=# PREPARE q3 AS SELECT 1 AS a; PREPARE gaussdb=# PREPARE q4 AS SELECT 1 AS a; PREPARE --再次查看现有预备语句。 gaussdb=# SELECT name, statement, parameter_types FROM pg_prepared_statements; name | statement | parameter_types ------+------------------------------+----------------- q1 | PREPARE q1 AS SELECT 1 AS a; | {} q4 | PREPARE q4 AS SELECT 1 AS a; | {} q3 | PREPARE q3 AS SELECT 1 AS a; | {} q2 | PREPARE q2 AS SELECT 1 AS a; | {} (4 rows) --删除q4预备语句并查看剩余预备语句。 gaussdb=# DEALLOCATE q4; gaussdb=# SELECT name, statement, parameter_types FROM pg_prepared_statements; name | statement | parameter_types ------+------------------------------+----------------- q1 | PREPARE q1 AS SELECT 1 AS a; | {} q3 | PREPARE q3 AS SELECT 1 AS a; | {} q2 | PREPARE q2 AS SELECT 1 AS a; | {} (3 rows) --删除所有预备语句并查看剩余预备语句。 gaussdb=# DEALLOCATE ALL; DEALLOCATE ALL gaussdb=# SELECT name, statement, parameter_types FROM pg_prepared_statements; name | statement | parameter_types ------+-----------+----------------- (0 rows)
  • SUMMARY_STAT_USER_TABLES 显示数据库各节点所有Schema中用户自定义普通表的状态信息的汇总求和结果(其中timestamp类型字段不进行求和,仅取所有节点该字段的最新值),如表1所示。 表1 SUMMARY_STAT_USER_TABLES 名称 类型 描述 schemaname name 此表所在的Schema名。 relname name 表名。 seq_scan numeric 此表发起的顺序扫描数。 seq_tup_read numeric 顺序扫描抓取的活跃行数。 idx_scan numeric 此表发起的索引扫描数。 idx_tup_fetch numeric 索引扫描抓取的活跃行数。 n_tup_ins numeric 插入行数。 n_tup_upd numeric 更新行数。 n_tup_del numeric 删除行数。 n_tup_hot_upd numeric HOT更新行数(即没有更新索引列的行数)。 n_live_tup numeric 估计活跃行数。 n_dead_tup numeric 估计不活跃行数。在Ustore表中仅代表不活跃行指针数量。 last_vacuum timestamp with time zone 最后一次此表是手动清理的(不计算VACUUM FULL)时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次手动分析这个表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护线程分析的时间。 vacuum_count numeric 这个表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count numeric 这个表被autovacuum清理的次数。 analyze_count numeric 这个表被手动分析的次数。 autoanalyze_count numeric 这个表被autovacuum守护线程分析的次数。 父主题: Object
  • DB_DEPENDENCIES DB_DEPENDENCIES视图显示当前用户可访问的类型、表、视图、存储过程、函数、触发器之间的依赖关系。所有用户都可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_DEPENDENCIES字段 名称 类型 描述 owner name 对象的所有者。 name name 对象的名称。 type character varying(18) 对象的类型。 referenced_owner name 被引用对象的所有者。 referenced_name name 被引用对象的名称。 referenced_type character varying(18) 被引用对象的类型。 referenced_link_name character varying(128) 暂不支持,值为NULL。 dependency_type character varying(4) 暂不支持,值为NULL。 父主题: 其他系统视图
  • 算子说明 合并连接(Merge Join)是一种高效的连接方法,它依赖于排序操作。在进行合并连接时, GaussDB 会对两个表的连接字段进行排序,然后同步扫描两个表,寻找匹配的行。 Merge Join的时间复杂度为O(n+m), 其中n和m分别代表两个表的行数。然而,如果需要排序操作,这个排序操作的时间复杂度可能会达到max(O(logn), O(logm)), 这通常会比直接的Merge Join操作更加耗时。 在GaussDB中,优化器更倾向于选择Hash Join,即使需要连接的两张表已经经过排序。
  • 示例 --创建一个无用的外部数据封装器dummy。 gaussdb=# CREATE FOREIGN DATA WRAPPER dummy; --创建一个带有处理器函数file_fdw_handler 的外部数据封装器file。 gaussdb=# CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler; --创建一个带有一些选项的外部数据封装器mywrapper。 gaussdb=# CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
  • 参数说明 name 要创建的外部数据封装器的名称。 HADNLER handler_function handler_function是先前已经注册了的函数的名称,用来为外部表检索执行函数。处理器函数必须没有参数,并且它的返回类型必须为fdw_handler。 不用处理器函数创建外部数据封装器是可能的,但是使用这种封装器的外部表只能被声明,不能被访问。 VALIDATOR validator_function validator_function 是先前已经注册了的函数的名字用来检查提供给外部数据封装器的通用选项,还有使用该外部数据封装器的外部服务器、用户映射和外部表的选项。如果没有验证器函数或声明了NO VALIDATOR,那么在创建时将不检查选项(外部数据封装器可能在运行时忽略或拒绝无效的选项说明,取决于实现)。验证器函数必须接受两个参数:一个类型为text[],将包含存储在系统目录中的选项的数组;一个类型为oid,是包含这些选项的系统目录的OID。忽略返回类型;该函数应该使用ereport(ERROR)函数报告无效选项。 OPTIONS ( option 'value' [, ... ] ) 这个子句为新的外部数据封装器声明选项。允许的选项名和值是特定于每个外部数据封装器的,并且是经过外部数据封装器的验证器函数验证了的。选项名必须是唯一的。
  • PG_TS_PARSER PG_TS_PARSER系统表包含文本解析器的定义。解析器负责将输入文本分割为词位,并且为每个词位分配标记类型。因为解析器必须通过C语言级别的函数实现,所以新解析器必须由数据库系统管理员创建。 表1 PG_TS_PARSER字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 prsname name - 文本搜索解析器名。 prsnamespace oid PG_NAMESPACE.oid 包含这个解析器的名称空间的OID。 prsstart regproc PG_PROC.proname 解析器的启动函数名。 prstoken regproc PG_PROC.proname 解析器的下一个标记函数名。 prsend regproc PG_PROC.proname 解析器的关闭函数名。 prsheadline regproc PG_PROC.proname 解析器的标题函数名。 prslextype regproc PG_PROC.proname 解析器的lextype函数名。 父主题: 其他系统表
  • SESSION_MEMORY 统计Session级别的内存使用情况,包含执行作业在当前节点上GaussDB线程和Stream线程分配的所有内存,单位为MB,如表1所示。 表1 SESSION_MEMORY字段 名称 类型 描述 sessid text 线程启动时间+线程标识。 init_mem integer 当前正在执行作业进入执行器前已分配的内存。 used_mem integer 当前正在执行作业已分配的内存。 peak_mem integer 当前正在执行作业已分配的内存峰值。 父主题: Session/Thread
  • 行转列与列转行 行转列 --建表并插入数据。 gaussdb=# CREATE TABLE test_p2(id INT, class VARCHAR(20), score INT); gaussdb=# INSERT INTO test_p2 VALUES (1,'math',64), (1,'english',78); gaussdb=# INSERT INTO test_p2 VALUES (2,'math',98), (2,'english',82); gaussdb=# INSERT INTO test_p2 VALUES (3,'math',68), (3,'english',59); gaussdb=# SELECT * FROM test_p2; id | class | score ----+---------+------- 3 | math | 68 3 | english | 59 1 | math | 64 1 | english | 78 2 | math | 98 2 | english | 82 (6 rows) --行转列。 gaussdb=# SELECT * FROM test_p2 PIVOT(MAX(score) FOR class IN('math','english')); id | 'math' | 'english' ----+--------+----------- 3 | 68 | 59 1 | 64 | 78 2 | 98 | 82 (3 rows) --删除。 gaussdb=# DROP TABLE test_p2; 列转行 --建表并插入数据。 gaussdb=# CREATE TABLE test_p1(id INT, math INT, english INT); gaussdb=# INSERT INTO test_p1 VALUES (1,84,78), (2,98,82), (3,68,59); gaussdb=# SELECT * FROM test_p1; id | math | english ----+------+--------- 3 | 68 | 59 1 | 84 | 78 2 | 98 | 82 (3 rows) --列转行。 gaussdb=# SELECT * FROM test_p1 UNPIVOT(score FOR class IN(math, english)); id | class | score ----+---------+------- 3 | MATH | 68 3 | ENGLISH | 59 1 | MATH | 84 1 | ENGLISH | 78 2 | MATH | 98 2 | ENGLISH | 82 (6 rows) --删除。 gaussdb=# DROP TABLE test_p1; 父主题: SELECT
  • GLOBAL_STATIO_SYS_SEQUEN CES GLOBAL_STATIO_SYS_SEQUENCES视图显示各节点的命名空间中所有系统序列的I/O状态信息,如表1所示。 表1 GLOBAL_STATIO_SYS_SEQUENCES字段 名称 类型 描述 node_name name 节点名称。 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列中缓存命中数。 父主题: Cache/IO
  • 示例 --创建表customer_demographics_t1。 gaussdb=# CREATE TABLE customer_demographics_t1 ( CD_DEMO_SK INTEGER NOT NULL, CD_GENDER CHAR(1) , CD_MARITAL_STATUS CHAR(1) , CD_EDUCATION_STATUS CHAR(20) , CD_PURCHASE_ESTIMATE INTEGER , CD_CREDIT_RATING CHAR(10) , CD_DEP_COUNT INTEGER , CD_DEP_EMPLOYED_COUNT INTEGER , CD_DEP_COLLEGE_COUNT INTEGER ) ; --插入记录。 gaussdb=# INSERT INTO customer_demographics_t1 VALUES(1920801,'M', 'U', 'DOCTOR DEGREE', 200, 'GOOD', 1, 0,0); --开启事务。 gaussdb=# START TRANSACTION; --更新字段值。把cd_education_status字段值更新为Unknown。 gaussdb=# UPDATE customer_demographics_t1 SET cd_education_status= 'Unknown'; --终止事务,上面所执行的更新会被撤销掉。 gaussdb=# ABORT; --查询数据。发现cd_education_status字段的值未被修改成Unknown。 gaussdb=# SELECT * FROM customer_demographics_t1 WHERE cd_demo_sk = 1920801; cd_demo_sk | cd_gender | cd_marital_status | cd_education_status | cd_purchase_estimate | cd_credit_rating | cd_dep_count | cd_dep_employed_count | cd_dep_college_count ------------+-----------+-------------------+----------------------+----------------------+------------------+--------------+-----------------------+---------------------- 1920801 | M | U | DOCTOR DEGREE | 200 | GOOD | 1 | 0 | 0 (1 row) --删除表。 gaussdb=# DROP TABLE customer_demographics_t1;
  • SUMMARY_STAT_BAD_BLOCK 获得数据库各节点的表、索引等文件的读取失败信息的汇总求和结果(其中first_time取最早的时间,last_time取最新的时间),如表1所示。 表1 SUMMARY_STAT_BAD_BLOCK字段 名称 类型 描述 databaseid integer database的oid。 tablespaceid integer tablespace的oid。 relfilenode integer relation的file node。 forknum bigint fork编号。 error_count bigint error的数量。 first_time timestamp with time zone 页面损坏第一次出现的时间。 last_time timestamp with time zone 页面损坏最后出现的时间。 父主题: Object
  • opfusion_debug_mode 参数说明:用于调试简单查询是否进行查询优化。设置成log级别可以在数据库节点的执行计划中看到没有查询优化的具体原因。该参数可在PDB级别设置。 参数类型:枚举类型 参数单位:无 取值范围: off:表示不打开该功能。 log:表示打开该功能,可以在数据库节点的执行计划中看到没有查询优化的具体原因。 提供在log中显示语句没有查询优化的具体原因,需要将参数设置成log级别,log_min_messages设置成debug4级别,logging_module设置'on(OPFUSION)',注意log内容可能会比较多,尽可能在调优期间执行少量作业使用。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_debug_vacuum 参数说明:允许输出一些与VACUUM相关的日志,便于定位VACUUM相关问题。开发人员专用,不建议普通用户使用。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启此日志开关。 off:表示关闭此日志开关。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_err_stack 参数说明:控制ERROR级别中ACTION为"Contact Huawei technical support."的错误码报错是否打印堆栈。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启此日志开关。 off:表示关闭此日志开关。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • logging_module 参数说明:用于设置或者显示模块日志在服务端的可输出性。该参数依赖于log_min_messages参数的设置,低于log_min_messages设置级别的模块日志不会打印。 参数类型:字符串 参数单位:无 默认值:'off(ALL)'。即默认关闭所有模块日志。在PDB场景内,若未设置该参数,则继承来自全局的设置。 取值范围:所有模块日志在服务端不输出,可由SHOW logging_module查看: 1 ALL,on(),off(COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,CBOPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,OPT_STAT_EXT,SPM,SPM_KEY_FLOW,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,WDR_REPORT,ASP_REPORT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PA RAM ,TIMESERIES,SCHEMA,GTT,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UPAGE,UBTREE,UNDO,TIMECAPSULE,GEN_COL,DCF,AI4DB,DB4AI,ABO,MOD_ABOFEEDBACK,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,COMM_STATUS,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,STANDBY_READ,REPSYNC,SQLPATCH,PARTITION,UBT_NEWPAGE,GPI,GS_DEPENDENCY,LWLOCK,LOCK,UNIQUE_SQL,GLC,SRF,DBLINK,BARRIER_CREATOR,EXRTO_PAGE_P,SEQ_TUP_P,BT_TUP_P,DISPATCH_VERIFY,HBKT,DBE_STATS,DBE_XMLGEN,GS_ILM,GSPERF,EXEC_REMOTE,UBTREE_PARA,BTREE_PARA,ANTI_CACHE,ANTI_RECYCLER,VERIFYLOG,GS_REPAIR,AUTHID,CCINDEX,ONLINE_DDL,MTD,EXRTO_BUFFER,STREAM_PBE,HTAP,UALT,GTM_LITE_READ_S,UGIN) 当前版本CN_RETRY不生效。 设置方式:该参数属于会话级参数,不建议通过gs_guc工具来设置。该参数可在PDB级别设置。 设置方法:首先,可以通过SHOW logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 5 gaussdb=# show logging_module; logging_module -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,CBOPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,OPT_STAT_EXT,SPM,SPM_KEY_FLOW,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,WDR_REPORT,ASP_REPORT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PARAM,TIMESERIES,SCHEMA,GTT,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UPAGE,UBTREE,UNDO,TIMECAPSULE,GEN_COL,DCF,AI4DB,DB4AI,ABO,MOD_ABOFEEDBACK,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,COMM_STATUS,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,STANDBY_READ,REPSYNC,SQLPATCH,PARTITION,UBT_NEWPAGE,GPI,GS_DEPENDENCY,LWLOCK,LOCK,UNIQUE_SQL,GLC,SRF,DBLINK,BARRIER_CREATOR,EXRTO_PAGE_P,SEQ_TUP_P,BT_TUP_P,DISPATCH_VERIFY,HBKT,DBE_STATS,DBE_XMLGEN,GS_ILM,GSPERF,EXEC_REMOTE,UBTREE_PARA,BTREE_PARA,ANTI_CACHE,ANTI_RECYCLER,VERIFYLOG,GS_REPAIR,AUTHID,CCINDEX,ONLINE_DDL,MTD,EXRTO_BUFFER,STREAM_PBE,HTAP,UALT,GTM_LITE_READ_S,UGIN) (1 row) 支持可控制的模块使用大写来标识,特殊标识ALL用于对所有模块日志进行设置。可以使用on/off来控制模块日志的输出。设置SSL模块日志为可输出,使用如下命令: 1 2 3 4 5 6 gaussdb=# set logging_module='on(SSL)'; SET gaussdb=# show logging_module; logging_module ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(SSL),off(COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,CBOPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,OPT_STAT_EXT,SPM,SPM_KEY_FLOW,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,WDR_REPORT,ASP_REPORT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PARAM,TIMESERIES,SCHEMA,GTT,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UPAGE,UBTREE,UNDO,TIMECAPSULE,GEN_COL,DCF,AI4DB,DB4AI,ABO,MOD_ABOFEEDBACK,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,COMM_STATUS,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,STANDBY_READ,REPSYNC,SQLPATCH,PARTITION,UBT_NEWPAGE,GPI,GS_DEPENDENCY,LWLOCK,LOCK,UNIQUE_SQL,GLC,SRF,DBLINK,BARRIER_CREATOR,EXRTO_PAGE_P,SEQ_TUP_P,BT_TUP_P,DISPATCH_VERIFY,HBKT,DBE_STATS,DBE_XMLGEN,GS_ILM,GSPERF,EXEC_REMOTE,UBTREE_PARA,BTREE_PARA,ANTI_CACHE,ANTI_RECYCLER,VERIFYLOG,GS_REPAIR,AUTHID,CCINDEX,ONLINE_DDL,MTD,EXRTO_BUFFER,STREAM_PBE,HTAP,UALT,GTM_LITE_READ_S,UGIN) (1 row) 可以看到模块SSL的日志输出被打开。 ALL标识相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 8 9 10 11 12 13 gaussdb=# set logging_module='off(ALL)'; SET gaussdb=# show logging_module; logging_module -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(),off(COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,CBOPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,OPT_STAT_EXT,SPM,SPM_KEY_FLOW,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,WDR_REPORT,ASP_REPORT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PARAM,TIMESERIES,SCHEMA,GTT,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UPAGE,UBTREE,UNDO,TIMECAPSULE,GEN_COL,DCF,AI4DB,DB4AI,ABO,MOD_ABOFEEDBACK,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,COMM_STATUS,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,STANDBY_READ,REPSYNC,SQLPATCH,PARTITION,UBT_NEWPAGE,GPI,GS_DEPENDENCY,LWLOCK,LOCK,UNIQUE_SQL,GLC,SRF,DBLINK,BARRIER_CREATOR,EXRTO_PAGE_P,SEQ_TUP_P,BT_TUP_P,DISPATCH_VERIFY,HBKT,DBE_STATS,DBE_XMLGEN,GS_ILM,GSPERF,EXEC_REMOTE,UBTREE_PARA,BTREE_PARA,ANTI_CACHE,ANTI_RECYCLER,VERIFYLOG,GS_REPAIR,AUTHID,CCINDEX,ONLINE_DDL,MTD,EXRTO_BUFFER,STREAM_PBE,HTAP,UALT,GTM_LITE_READ_S,UGIN) (1 row) gaussdb=# set logging_module='on(ALL)'; SET gaussdb=# show logging_module; logging_module -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ALL,on(COMMAND,DFS,GUC,GSCLEAN,HDFS,ORC,SLRU,MEM_CTL,AUTOVAC,CACHE,ADIO,SSL,GDS,TBLSPC,WLM,OBS,INDEX,EXECUTOR,OPFUSION,GPC,GSC,VEC_EXECUTOR,STREAM,LLVM,OPT,OPT_REWRITE,CBOPT_REWRITE,OPT_JOIN,OPT_AGG,OPT_CHOICE,OPT_SUBPLAN,OPT_SETOP,OPT_SKEW,OPT_PLANNER,OPT_STAT_EXT,SPM,SPM_KEY_FLOW,UDF,COOP_ANALYZE,WLMCP,ACCELERATE,PLANHINT,PARQUET,PGSTAT,CARBONDATA,SNAPSHOT,XACT,HANDLE,CLOG,EC,REMOTE,CN_RETRY,PLSQL,TEXTSEARCH,SEQ,REDO,FUNCTION,PARSER,INSTR,WDR_SNAPSHOT,WDR_REPORT,ASP_REPORT,INCRE_CKPT,INCRE_BG_WRITER,DBL_WRT,RTO_RPO,HEARTBEAT,COMM_IPC,COMM_PARAM,TIMESERIES,SCHEMA,GTT,SEGMENT_PAGE,LIGHTPROXY,HOTKEY,THREAD_POOL,OPT_AI,WALRECEIVER,USTORE,UPAGE,UBTREE,UNDO,TIMECAPSULE,GEN_COL,DCF,AI4DB,DB4AI,ABO,MOD_ABOFEEDBACK,PLDEBUGGER,ADVISOR,SEC,SEC_FE,SEC_LEGER,SEC_POLICY,SEC_SDD,SEC_TDE,COMM_FRAMEWORK,COMM_PROXY,COMM_POOLER,COMM_STATUS,VACUUM,JOB,SPI,NEST_COMPILE,RESOWNER,GSSTACK,LOGICAL_DECODE,GPRC,DISASTER_READ,STANDBY_READ,REPSYNC,SQLPATCH,PARTITION,UBT_NEWPAGE,GPI,GS_DEPENDENCY,LWLOCK,LOCK,UNIQUE_SQL,GLC,SRF,DBLINK,BARRIER_CREATOR,EXRTO_PAGE_P,SEQ_TUP_P,BT_TUP_P,DISPATCH_VERIFY,HBKT,DBE_STATS,DBE_XMLGEN,GS_ILM,GSPERF,EXEC_REMOTE,UBTREE_PARA,BTREE_PARA,ANTI_CACHE,ANTI_RECYCLER,VERIFYLOG,GS_REPAIR,AUTHID,CCINDEX,ONLINE_DDL,MTD,EXRTO_BUFFER,STREAM_PBE,HTAP,UALT,GTM_LITE_READ_S,UGIN),off() (1 row) 设置建议:根据需要开启对应模块日志的打印。不建议开启所有模块的日志打印(即:'on(ALL)')。 设置不当的风险与影响:开启时可能会打印较多对应模块相关的日志,影响系统性能。
  • log_temp_files 参数说明:控制记录比该参数设定值大的临时文件的删除信息。临时文件可以用来排序、哈希及临时查询结果。当一个临时文件被删除时,将会产生一条日志消息。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:-1 ~ 2147483647 正整数表示只记录比log_temp_files设定值大的临时文件的删除信息。 0表示记录所有的临时文件的删除信息。 -1表示不记录任何临时文件的删除信息。 默认值:-1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。取值为整数时,默认单位为kB;如果带单位,必须为kB、MB、GB。例如,不带单位取值16384,表示log_temp_files为16384kB;带单位取值16MB,表示log_temp_files为16MB。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置为非-1的值时,当满足记录要求的临时文件越多,日志记录也会越多,则会影响系统性能。取值若超出范围,或者取值带有除kB、MB、GB以外的单位时,会有报错提示。
  • log_lock_waits 参数说明:当一个会话的等待获得一个锁的时间超过deadlock_timeout的值时,此参数控制在数据库日志中记录此消息,有助于判断锁等待事件是否会导致死锁等问题。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示记录此信息。 off:表示不记录此信息。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_statement 参数说明:控制记录SQL语句。对于使用扩展查询协议的客户端,记录接收到执行消息的事件和绑定参数的值(内置单引号要双写)。该参数可在PDB级别设置。 即使log_statement设置为all,包含简单语法错误的语句也不会被记录,因为仅在完成基本的语法分析并确定了语句类型之后才记录日志。在使用扩展查询协议的情况下,执行阶段之前(语法分析或规划阶段)同样不会记录。将log_min_error_statement设为ERROR或更低才能记录这些语句。 设置该参数为非none时,可视为开启相关语句审计功能,数据库DBA可以访问服务端日志查看SQL执行记录。 参数类型:枚举类型 参数单位:无 取值范围: none:表示不记录SQL语句。 ddl:表示记录所有的数据定义语句,比如CREATE、ALTER和DROP语句。 mod:表示记录所有DDL语句,还包括数据修改语句INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM 。 all:表示记录所有语句,PREPARE、EXECUTE和EXPLAIN ANALYZE语句也同样被记录。 默认值:none。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据是否需要记录SQL语句进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_line_prefix 参数说明:控制每条日志信息的前缀格式。日志前缀类似于printf风格的字符串,在日志的每行开头输出。用以%为开头的“转义字符”表示状态信息,具体请参见表1。 表1 转义字符表 转义字符 状态信息 %a 应用程序名称。 %u 用户名。 %d 数据库名。 %r 远端主机名或者IP地址以及远端端口,在不启动log_hostname时显示IP地址及远端端口。 %h 远端主机名或者IP地址,在不启动log_hostname时只显示IP地址。 %p 线程ID。 %t 时间戳(不带毫秒)。 %m 带毫秒的时间戳。 %n 表示指定错误上报的节点。 %i 命令标签:会话当前执行的命令类型。 %e SQLSTATE错误码。 %c 会话ID,详见说明。 %l 每个会话或线程的日志编号,从1开始。 %s 线程启动时间。 %v 虚拟事务ID(backendID/ localXID) %x 事务ID(0表示没有分配事务ID)。 %q 不产生任何输出。如果当前线程是后端线程,忽略这个转义序列,继续处理后面的转义序列;如果当前线程不是后端线程,忽略这个转义序列和它后面的所有转义序列。 %S 会话ID。 %T Trace ID。 %% 字符%。 转义字符%c打印的会话ID,由两个4字节的十六进制数组成,通过字符“.”分开。这两个十六进制数分别表示线程的启动时间及线程编号,所以%c也可以用作一种更节省空间的记录线程启动时间和编号的方式。比如,可以用下面的查询从pg_stat_activity中生成这种十六进制的会话ID: 1 2 3 SELECT to_hex(EXTRACT(EPOCH FROM backend_start)::integer) || '.' || to_hex(pid) FROM pg_stat_activity; 当log_line_prefix设置为非空值时,需要保证最后一个字符是一个空格,以此来直观地与后续的日志行进行区分,也可以使用一个标点符号。 Syslog会生成时间戳及线程ID信息,所以当登录日志时,不需要包含这些转义字符。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:%m %n %u %d %h %p %S %x %a %m %n %u %d %h %p %S %x %a 表示会话开始时间戳、错误上报节点、用户名、数据库名、远程主机名或IP、线程ID、会话ID、事务ID、应用程序名称。 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据对日志状态信息的需求进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_duration 参数说明:控制记录每个已完成SQL语句的执行时间。对使用扩展查询协议的客户端,会记录语法分析、绑定和执行每一步所花费的时间。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示记录所有已完成SQL语句的执行时间。 off:表示不记录SQL语句的执行时间。 该参数设置为on或log_min_duration_statement设置为0都会记录每个已完成SQL语句的执行时间,不同之处在于log_min_duration_statement会强制记录SQL语句。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_checkpoints 参数说明:控制在服务器日志中记录检查点和重启点的信息。打开此参数时,服务器日志消息包含涉及检查点和重启点的统计量,其中包含需要写的缓存区的数量及写入所花费的时间等。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开此参数,服务器日志消息包含涉及检查点和重启点的统计量。 off:表示关闭此参数,服务器日志消息不包含涉及检查点和重启点的统计量。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • debug_pretty_print 参数说明:打开此参数会对debug_print_parse、debug_print_rewritten和debug_print_plan产生的日志进行缩进,会生成易读且更长的输出格式。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示进行缩进。 off:表示不进行缩进。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_connections 参数说明:控制是否记录客户端连接请求的日志信息。日志信息包括连接的IP、PORT、用户名、数据库名、GaussDB数据库响应建立连接流程中关键步骤的耗时等。 有些客户端程序(例如gsql),在判断是否需要口令的时候会尝试连接两次,因此日志消息中可能存在重复的“connection receive”(收到连接请求)。 参数类型:布尔型 参数单位:无 取值范围: on:表示记录日志信息。 off:表示不记录日志信息。 默认值:off 设置方式:该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_error_verbosity 参数说明:控制服务器日志中每条记录的消息写入的详细度。该参数可在PDB级别设置。 参数类型:枚举类型 参数单位:无 取值范围: terse:表示不包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录。 verbose:表示包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 default:表示包括DETAIL、HINT、QUERY及CONTEXT错误信息的记录,不包括SQLSTATE错误代码 、源代码文件名、函数名及产生错误所在的行号。 默认值:default。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据对日志消息的详细度要求进行设置。推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • log_hostname 参数说明:此参数关闭状态下,连接消息日志只显示正在连接主机的IP地址。打开此参数,表示会同时记录主机名。由于解析主机名需要一定的时间,可能影响数据库的性能。 参数类型:布尔型 参数单位:无 取值范围: on:表示记录主机名。 off:表示不记录主机名。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启时可能影响数据库的性能。
  • debug_print_plan 参数说明:用于设置是否将查询的执行计划打印到日志中。 参数类型:布尔型 参数单位:无 取值范围: on:表示将查询的执行计划打印到日志中。 off:表示不将查询的执行计划打印到日志中。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 只有当日志的级别为log及以上时,debug_print_parse、debug_print_rewritten和debug_print_plan的调试信息才会输出。当这些选项打开时,调试信息只会记录在服务器的日志中,而不会输出到客户端的日志中。通过设置client_min_messages和log_min_messages参数可以改变日志级别。 在打开debug_print_plan开关的情况下需尽量避免调用gs_encrypt_aes128及gs_decrypt_aes128函数,避免敏感参数信息在日志中泄露的风险。同时建议用户在打开debug_print_plan开关生成的日志中对gs_encrypt_aes128及gs_decrypt_aes128函数的参数信息进行过滤后再提供给外部维护人员定位,日志使用完成后请及时删除。
  • debug_print_rewritten 参数说明:用于控制打印查询重写结果。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启打印查询重写结果的功能。 off:表示关闭打印查询重写结果的功能。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 参数说明 name 已有外部数据封装的名称。 HANDLER handler_function 为外部数据封装指定一个新的处理函数。 NO HANDLER 这个参数用来指定外部数据封装不再拥有处理函数。 使用外部数据封装但没有handler的外表不能访问。 VALIDATOR validator_function 为外部数据封装指定一个新的验证函数。 根据新的验证器,外部数据封装器或依赖的服务器、 用户映射或外部表的已经存在的选项是有可能是无效的。用户在使用外部数据封装之前需要保证这些选项是正确的。 不过,ALTER FOREIGN DATA WRAPPER 命令中指定的任何选项都将使用新的验证函数检查。 NO VALIDATOR 这个用来指定外部数据封装不再有验证函数。 OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) 修改外部数据封装的选项。 ADD, SET, 和 DROP 指定表现的动作。如果没有明确指定操作默认是ADD。选项名必须唯一。 使用外部数据封装验证函数时,名字和取值也会被验证。
共100000条
提示

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