华为云用户手册

  • audit_xid_info 参数说明:该参数决定是否在审计日志字段detail_info中记录SQL语句的事务ID。 参数类型:整型 参数单位:无 取值范围:0、1。 0表示关闭审计日志记录事务ID功能。 1表示开启审计日志记录事务ID功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置为默认值。 如果开启此开关,审计日志中detail_info信息则以xid开始,例如: detail_info: xid=14619 , create table t1(id int); 对于不存在事务ID的审计行为,则记录xid=NA。
  • enable_nonsysadmin_execute_direct 参数说明:是否允许非系统管理员和非监控管理员执行EXECUTE DIRECT ON语句。 该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示允许任意用户执行EXECUTE DIRECT ON语句。 off表示只允许系统管理员和监控管理员执行EXECUTE DIRECT ON语句。 默认值:off
  • audit_dml_state 参数说明:该参数决定是否对具体表的INSERT、UPDATE、DELETE、MERGE操作进行审计。 参数类型:整型 参数单位:无 取值范围:0、1。 0表示关闭具体表的INSERT、UPDATE、DELETE、MERGE操作审计功能。 1表示开启具体表的INSERT、UPDATE、DELETE、MERGE操作审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置为默认值。
  • audit_function_exec 参数说明:该参数决定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。 参数类型:整型 参数单位:无 取值范围:0、1。 0表示关闭对存储过程、匿名块或自定义函数(不包括系统自带函数)执行的审计功能。 1表示开启对存储过程、匿名块或自定义函数(不包括系统自带函数)执行的审计功能。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置为默认值。
  • audit_system_object 参数说明:该参数决定是否对数据库对象的CREATE、DROP、ALTER等操作进行审计。数据库对象包括DATABASE、USER、SCHEMA、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作。在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计。 参数类型:整型 参数单位:无 取值范围:0~536870911 0代表关闭数据库对象的CREATE、DROP、ALTER等操作审计功能。 非0代表只审计某类或者某些数据库对象的CREATE、DROP、ALTER等操作。 取值说明: 该参数的值由29个二进制位的组合求出,这29个二进制位分别代表29类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER等操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER等操作。这29个二进制位代表的具体审计内容请参见表1。 用于记录SQL PATCH的参数存在特殊性,如果对该对象进行审计且audit_dml_state_select也开启时,对于一条SQL PATCH操作的审计日志会作为DML和DDL被记录两次。 默认值:67121159(十进制),对应二进制为:00100 0000 0000 0011 0000 0000 0111,表示对DATABASE、SCHEMA、USER、SQLPatch这四种数据库对象的DDL操作进行审计。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据业务需要设置记录审计的数据库对象类型。 对性能的影响:需要审计的对象类型越多,对系统性能的影响越大。 对资源占用的影响:需要审计对象越多,占用的系统CPU和I/O越多。 表1 audit_system_object取值含义说明 二进制位 含义 取值说明 第0位 是否审计DATABASE对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第1位 是否审计SCHEMA对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第2位 是否审计USER对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第3位 是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。 0表示不审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。 1表示审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。 第4位 是否审计INDEX对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第5位 是否审计VIEW/MATVIEW对象的CREATE、DROP操作。 0表示不审计该对象的CREATE、DROP操作。 1表示审计该对象的CREATE、DROP操作。 第6位 是否审计TRIGGER对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第7位 是否审计PROCEDURE/FUNCTION对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第8位 是否审计TABLESPACE对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第9位 是否审计RESOURCE POOL对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作 第10位 是否审计WORKLOAD对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作 第11位 是否审计SERVER对象的CREATE、DROP、ALTER操作 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第13位 保留 - 第14位 是否审计ROW LEVEL SECURITY对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作。 1表示审计该对象的CREATE、DROP、ALTER操作。 第15位 是否审计TYPE对象的CREATE、DROP、ALTER操作。 0表示不审计TYPE对象的CREATE、DROP、ALTER操作。 1表示审计TYPE对象的CREATE、DROP、ALTER操作。 第16位 是否审计TEXT SEARCH对象(CONFIGURATION和DICTIONARY)的CREATE、DROP、ALTER操作。 0表示不审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。 1表示审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。 第17位 是否审计DIRECTORY对象的CREATE、DROP、ALTER操作。 0表示不审计DIRECTORY对象的CREATE、DROP、ALTER操作。 1表示审计DIRECTORY对象的CREATE、DROP、ALTER操作。 第18位 是否审计SYNONYM对象的CREATE、DROP、ALTER操作。 0表示不审计SYNONYM对象的CREATE、DROP、ALTER操作。 1表示审计SYNONYM对象的CREATE、DROP、ALTER操作。 第19位 是否审计SEQUENCE对象的CREATE、DROP、ALTER操作。 0表示不审计SEQUENCE对象的CREATE、DROP、ALTER操作。 1表示审计SEQUENCE对象的CREATE、DROP、ALTER操作。 第20位 是否审计CMK、CEK对象的CREATE、DROP操作。 0表示不审计CMK、CEK对象的CREATE、ALTER、DROP操作。 1表示审计CMK、CEK对象的CREATE、ALTER、DROP操作。 第21位 是否审计PACKAGE对象的CREATE、DROP、ALTER操作。 0表示不审计PACKAGE对象的CREATE、DROP、ALTER操作。 1表示审计PACKAGE对象的CREATE、DROP、ALTER操作。 第22位 是否审计MODEL对象的CREATE、DROP操作。 0表示不审计MODEL对象的CREATE、ALTER操作。 1表示审计MODEL对象的CREATE、DROP操作。 第24位 是否审计对gs_global_config全局对象的ALTER、DROP操作。 0表示不审计对系统表gs_global_config全局对象的ALTER、DROP操作。 1表示审计对系统表gs_global_config全局对象的ALTER、DROP操作。 第25位 是否审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作,目前仅支持CREATE功能,ALTER 、DROP 功能暂不支持。 0表示不审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。 1表示审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作。 第26位 是否审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 0表示不审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 1表示审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 第27位 是否审计EVENT对象的CREATE、ALTER、DROP操作。 0表示不审计EVENT对象的CREATE、ENABLE、DISABLE、DROP操作。 1表示审计EVENT对象的CREATE、ENABLE、DISABLE、DROP操作。 第28位 是否审计DBLINK对象的CREATE、ALTER、DROP操作。目前DATABASE LINK功能暂不支持。 0表示不审计DBLINK对象的CREATE、ALTER、DROP操作。 1表示审计DBLINK对象的CREATE、ALTER、DROP操作。
  • 语法格式 CREATE AGGREGATE name ( input_data_type [ , ... ] ) ( SFUNC = sfunc, -- SFUNC1 = sfunc, // 较早的写法,与SFUNC = sfunc等效 STYPE = state_data_type -- STYPE1 = state_data_type, // 较早的写法,与STYPE = state_data_type等效 [ , FINALFUNC = ffunc ] [ , INITCOND = initial_condition ] -- [ , INITCOND1 = initial_condition ] // 较早的写法,与INITCOND = initial_condition等效 [ , SORTOP = sort_operator ] [ , CFUNC = collection_func ] [ , INITCOLLECT = initial_collection_condition ] [ , IFUNC = init_func ] [ , SHIPPABLE = is_shippable ] ); 也可使用: CREATE AGGREGATE name ( BASETYPE = base_type, SFUNC = sfunc, -- SFUNC1 = sfunc, // 较早的写法,与SFUNC = sfunc等效 STYPE = state_data_type -- STYPE1 = state_data_type, // 较早的写法,与STYPE = state_data_type等效 [ , FINALFUNC = ffunc ] [ , INITCOND = initial_condition ] -- [ , INITCOND1 = initial_condition ] // 较早的写法,与INITCOND = initial_condition等效 [ , SORTOP = sort_operator ] [ , CFUNC = collection_func ] [ , INITCOLLECT = initial_collection_condition ] [ , IFUNC = init_func ] );
  • 参数说明 name 要创建的聚集函数名(可以有模式修饰))。 input_data_type 该聚集函数要处理的输入数据类型。要创建一个零参数聚集函数,可以使用*代替输入数据类型列表。(count(*)就是这种聚集函数的一个实例。) base_type 在CREATE AGGREGATE语法中,输入数据类型是通过basetype参数指定的,而不是写在聚集函数的名称之后。需要注意的是这种语法仅允许一个输入参数。要创建一个零参数聚集函数,可以将basetype指定为ANY,而不是*。 sfunc 将在每一个输入行上调用的状态转换函数的名称。 对于有N个参数的聚合函数,sfunc必须有+1个参数,其中的第一个参数类型为state_data_type,其余的匹配已声明的输入数据类型。 函数必须返回一个state_data_type类型的值。 这个函数接受当前状态值和当前输入数据,并返回下个状态值。ORA数据库的转换函数默认行为为strict,即会跳过null输入值。GaussDB需要用户自行定义转换函数strict属性。不支持用户自定义的C语言函数。 state_data_type 聚合的状态值的数据类型。 ffunc 在转换完所有输入行后调用的最终处理函数,它计算聚合的结果。 此函数必须接受一个类型为state_data_type的参数。 聚合的输出数据类型被定义为此函数的返回类型。 如果没有声明ffunc则使用聚合结果的状态值作为聚合的结果,且输出类型为state_data_type。不支持用户自定义的C语言函数。 initial_condition 状态值的初始设置(值)。 它必须是一个state_data_type类型可以接受的文本常量值。 如果没有声明,状态值初始为null。 sort_operator 用于MIN或MAX类型聚合的排序操作符。 这个只是一个操作符名(可以有模式修饰)。这个操作符假设接受和聚合一样的输入数据类型。 collection_func 如果希望分布式聚合来提高性能,用户可以提供collection_func。collection_func本质上是组合不同Datanode产生的状态转换结果。如果没有最终函数,collection_func产生的结果就是聚合的结果。如果需要collection_func跳过null值,请将collection_func标记为strict函数。如果没有标记为strict,用户需要妥善处理好null值输入。collection_func必须有两个类型为state_data_type的入参。第一个入参state_data_type将传给下一次collection_func执行的第一个参数。如果is_shippable为false,则不会执行collection_func。不支持用户自定义的C语言函数。 initial_collection_condition collection_func状态值的初始设置(值)。 它必须是一个state_data_type类型可以接受的文本常量值。 如果没有声明,状态值初始为null。 init_func sfunc状态值的初始设置函数。 它不能返回null值,必须返回state_data_type类型并且没有入参。如果同时设置init_func和initial_condition,init_func的返回值将会优先作为初始状态值。不支持用户自定义的C语言函数。 is_shippable 标记该聚集函数是否能够下推执行,仅可以取值true或者false。目前该参数不影响系统内置聚集函数的下推行为,仅影响用户自定义聚集函数的行为,默认值为false。仅当存在collection_func且is_shippable为true时,用户自定义聚集可以下推。
  • 示例 --创建自定义函数。 gaussdb=# CREATE OR REPLACE FUNCTION int_add(int,int) returns int as $BODY$ declare begin return $1 + $2; end; $BODY$ language plpgsql; --创建聚集函数。 gaussdb=# CREATE AGGREGATE sum_add(int) ( sfunc = int_add, stype = int, initcond = '0' ); --创建测试表和添加数据。 gaussdb=# CREATE TABLE test_sum(a int,b int,c int); gaussdb=# INSERT INTO test_sum VALUES(1,2),(2,3),(3,4),(4,5); --执行聚集函数。 gaussdb=# SELECT sum_add(a) FROM test_sum; sum_add ----------- 10 --删除聚集函数。 gaussdb=# DROP AGGREGATE sum_add(int); --删除自定义函数。 gaussdb=# DROP FUNCTION int_add(int,int); --删除测试表。 gaussdb=# DROP TABLE test_sum;
  • GS_SPM_BASELINE GS_SPM_BASELINE是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储baseline相关信息的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写操作。 表1 GS_SPM_BASELINE字段 名称 类型 描述 sql_namespace oid schema oid。 sql_hash bigint SPM中SQL的唯一标识。 plan_hash bigint 当前SQL下的plan的唯一标识。 outline text outline文本,可固定当前计划的一组Hint。 cost double precision 计划的总代价。 user oid 创建baseline的用户。 status integer baseline的状态,可选取值有: 0(UNACC):表示未接受的计划。 1(ACC):表示已经接受的计划。 2(FIXED):一种特殊的ACC状态的计划,计划的匹配优先级高于ACC状态的计划。 source text baseline的来源。 gplan boolean 是否是gplan。 creation_time timestamp with time zone baseline的创建时间。 last_used_time timestamp with time zone 计划最近使用时间。 modification_time timestamp with time zone baseline的修改时间。 jump_intercept_cnt bigint 当前baseline拦截计划跳变次数。 invalid boolean 当前baseline是否无效。 父主题: SPM计划管理
  • 执行计划显示信息 除了设置不同的执行计划显示格式外,还可以通过不同的EXPLAIN用法,显示不同详细程度的执行计划信息。常见有如下几种,关于更多用法请参见EXPLAIN语法说明。 EXPLAIN statement:只生成执行计划,不实际执行。其中statement代表SQL语句。 EXPLAIN ANALYZE statement:生成执行计划,进行执行,并显示执行的概要信息。显示中加入了实际的运行时间统计,包括在每个规划节点内部花费的总时间(以毫秒计)和它实际返回的行数。 EXPLAIN PERFORMANCE statement:生成执行计划,进行执行,并显示执行期间的全部信息。 为了测量运行时在执行计划中每个节点的开销,EXPLAIN ANALYZE或EXPLAIN PERFORMANCE会在当前查询执行上增加性能分析的开销。在一个查询上运行EXPLAIN ANALYZE或EXPLAIN PERFORMANCE有时会比普通查询明显的花费更多的时间。超出的时间多少取决于查询本身复杂程度和使用的平台。 因此,当定位SQL运行慢问题时,如果SQL长时间运行未结束,建议通过EXPLAIN命令查看执行计划,进行初步定位。如果SQL可以运行出结果,则推荐使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看执行计划及其实际的运行信息,以便更精确地定位问题原因。
  • ODBC接口参考 ODBC接口是一套提供给用户的API函数,本节将对部分常用接口做具体描述,若涉及其他接口可参考msdn(网址:https://msdn.microsoft.com/en-us/library/windows/desktop/ms714177(v=vs.85).aspx)中ODBC Programmer's Reference项的相关内容。 SQLAllocEnv SQLAllocConnect SQLAllocHandle SQLAllocStmt SQLBindCol SQLBindParameter SQLColAttribute SQLConnect SQLDisconnect SQLExecDirect SQLExecute SQLFetch SQLFreeStmt SQLFreeConnect SQLFreeHandle SQLFreeEnv SQLPrepare SQLGetData SQLGetDiagRec SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr 父主题: 基于ODBC开发
  • Configuration settings Configuration settings列名称及描述如表1所示。 表1 Configuration settings报表主要内容 列名称 描述 Name GUC参数名称。 Abstract GUC参数描述。 Type 数据类型。 Current Value 当前值。 Min Value 合法最小值。 Max Value 合法最大值。 Category GUC参数类别。 Enum Values 如果是枚举值,列举所有枚举值。 Default Value 数据库启动时参数默认值。 Reset Value 数据库重置时参数默认值。 父主题: WDR报告信息介绍
  • socketTimeout 作用:控制套接字操作超时阈值,如果业务语句执行或者从网络读取数据流超过此阈值,连接中断(即语句超过规定时间执行,没有数据返回的时候)。 建议:该参数限制单条SQL最长的执行时间,单语句执行超过该值则会超时报错退出,建议根据业务特征进行配置,如果未配置,默认为0,即不会超时。如果不配置该参数,在数据库进程异常情况下,会导致客户端出现长时间等待,建议根据业务可接受的SQL执行时间进行配置。
  • fetchsize 原理:fetchsize在设置为n时,数据库服务器端在执行查询后,调用者在执行resultset.next()的时候,JDBC会先与服务器端进行通信,取n条数据到JDBC的客户端中,然后返回第一条给调用者。当调用者取到第n+1条数据的时候,会再次到数据库服务端去取数据。 作用:避免了数据库同时把所有结果全部传输到客户端,导致客户端的内存资源不足。 建议:建议根据自身的业务查询数据数量和客户端机器内存情况来配置此参数,设置fetchsize时要关闭自动提交(autocommit=false)模式,否则会导致fetchsize无法生效。
  • loginTimeout 作用:控制与数据库建连时间,其中时间包括connectTimeout和socketTimeoutInConnecting,超过阈值则退出。计算方式为:loginTimeout=(connectTimeout+连接认证时间+初始化语句执行时间)*节点数量,默认值为0。 建议:配置后每次建连都会开启一个异步线程,在连接数较多的情况可能会导致客户端压力增大,可以根据业务酌情调整,建议配置为max(connectTimeout, socketTimeoutInConnecting) * 节点数。 此参数设置后对于多IP而言,时间是尝试连接IP的时间,可能会出现因为设置的值较小导致后面的IP无法连接的问题。例如设置了三个IP,如果loginTimeout为5s,但前两个IP建连总共用了5s,第三个IP会无法进行连接。 当CPU、内存、I/O负载中的任意一项接近100%时,会出现连接慢的现象,可能会导致连接时间超过阈值的问题,可通过以下方式进行问题排查: 登录连接慢的物理机或通过管理工具查询资源负载:可通过top命令等确认CPU使用率;通过free命令确认内存使用情况;通过iostat命令确认I/O负载;此外还可以通过cm_agent中的监控日志,以及数据库运维平台中的监测记录进行检查。 针对短时间内大量慢查询导致的峰值负载场景,可通过[数据库服务器的端口号+1]端口连接,查询pg_stat_activity视图;针对慢查询,可以使用系统函数pg_terminate_backend(pid int)进行查杀会话。 针对业务量长期超负载情况(即无明显慢查询,或慢查询查杀后但新的查询依然会变成慢查询),应考虑降低业务负载、增加数据库资源的方式进行优化。
  • setAutocommit方法 作用:值为true时,执行每个语句都会自动开启事务,在执行结束后自动提交事务,即每个语句都是一个事务。值为false时,会自动开启一个事务,事务需要通过执行SQL手动提交。 建议:根据业务特征进行调整,如果基于性能或者其它方面考虑,需要关闭autocommit时,需要应用程序自己来保证事务的提交。例如,在指定的业务SQL执行完之后做显式提交,特别是客户端退出之前务必保证所有的事务已经提交。
  • global_rto_status global_rto_status视图显示关于主机和备机的日志流控信息(本节点除外、备DN上不可使用),如表1所示。 表1 global_rto_status字段 参数 类型 描述 node_name text 节点的名称,包含主机和备机。 rto_info text 流控的信息,包含了备机当前的日志流控时间(单位:秒),备机通过GUC参数设置的预期流控时间(单位:秒),为了达到这个预期主机所需要的睡眠时间(单位:微秒)。 父主题: RTO & RPO
  • audit_internal_event 参数说明:该参数决定是否审计内部工具cm_agent、gs_clean、WDRXdb的登录登出及进行的操作、DN上是否对来自CN的登录登出进行审计。 参数类型:布尔型 参数单位:无 取值范围: off:表示不对内部工具cm_agent、gs_clean、WDRXdb的登录登出及操作进行审计,DN上不对来自CN的登录登出进行审计。 on:表示对内部工具cm_agent、gs_clean、WDRXdb的登录登出及操作进行审计,DN上对来自CN的登录登出进行审计。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。 数据库服务端内部工具或节点之间通信也会产生审计日志,默认关闭audit_internal_event可以节约审计日志占用空间,提升审计日志查询性能。
  • no_audit_client 参数说明:该参数用于配置不需要审计的客户端名称及IP地址列表。参数格式为:客户端名称@IP,同pg_query_audit函数中的client_conninfo字段,例如“cm_agent@127.0.0.1, gs_clean@127.0.0.1”。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,多个配置项需使用逗号分隔。 默认值:空字符串 当执行的SQL语句同时满足full_audit_users和no_audit_client参数配置时,以no_audit_client配置优先,不记录审计日志。 数据库服务端内部工具或节点之间通信也会产生审计日志,针对这些风险较低的审计场景的可以通过配置no_audit_client参数不记录审计,以节约审计日志占用空间,提升审计日志查询性能。
  • audit_login_logout 参数说明:这个参数决定是否审计用户的登录(包括登录成功和登录失败)、注销。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~7。 0表示关闭用户登录、注销审计功能。 1表示只审计用户登录成功。 2表示只审计用户登录失败。 3表示只审计用户登录成功和失败。 4表示只审计用户注销。 5表示只审计用户注销和登录成功。 6表示只审计用户注销和登录失败。 7表示审计用户登录成功、失败和注销。 默认值:7
  • audit_security_label 参数说明:该参数决定是否审计用户安全标签的创建、删除和应用操作。 参数类型:整型 参数单位:无 取值范围:0、1 0:表示关闭审计用户安全标签的创建、删除和应用操作。 1:表示开启审计用户安全标签的创建、删除和应用操作。 默认值:0 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如开启此参数可能会影响系统性能。
  • 功能描述 在当前数据库中定义一种新的数据类型。定义数据类型的用户将成为该数据类型的拥有者。类型只适用于行存表。 有五种形式的CREATE TYPE,分别为:复合类型、基本类型、shell类型、枚举类型和集合类型。 复合类型 复合类型由一个属性名和数据类型的列表指定。如果属性的数据类型是可排序的,也可以指定该属性的排序规则。复合类型本质上和表的行类型相同,但是如果只想定义一种类型,使用CREATE TYPE避免了创建一个实际的表。单独的复合类型也是很有用的,例如可以作为函数的参数或者返回类型。 为了能够创建复合类型,必须拥有在其所有属性类型上的USAGE特权。 基本类型 用户可以自定义一种新的基本类型(标量类型)。通常来说这些函数必须是底层语言所编写。 shell类型 shell类型是一种用于后面要定义的类型的占位符,通过发出一个不带除类型名之外其他参数的CREATE TYPE命令可以创建这种类型。在创建基本类型时,需要shell类型作为一种向前引用。 枚举类型 由若干个标签构成的列表,每一个标签值都是一个非空字符串,且字符串长度必须不超过63个字节。 集合类型 类似数组,但是没有长度限制,主要在存储过程中使用。 被授予CREATE ANY TYPE权限的用户,可以在public模式和用户模式下创建类型。
  • 语法格式 CREATE TYPE name AS ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] ); CREATE TYPE name ( INPUT = input_function, OUTPUT = output_function [ , RECEIVE = receive_function ] [ , SEND = send_function ] [ , TYPMOD_IN = type_modifier_input_function ] [ , TYPMOD_OUT = type_modifier_output_function ] [ , ANALYZE = analyze_function ] [ , INTERNALLENGTH = { internallength | VARIABLE } ] [ , PASSEDBYVALUE ] [ , ALIGNMENT = alignment ] [ , STORAGE = storage ] [ , LIKE = like_type ] [ , CATEGORY = category ] [ , PREFERRED = preferred ] [ , DEFAULT = default ] [ , ELEMENT = element ] [ , DELIMITER = delimiter ] [ , COLLATABLE = collatable ] ); CREATE TYPE name; CREATE TYPE name AS ENUM ( [ 'label' [, ... ] ] ); CREATE TYPE name AS TABLE OF data_type;
  • GS_LSC_MEMORY_DETAIL GS_LSC_MEMORY_DETAIL视图显示所有线程的本地SysCache的内存占用情况,以MemoryContext节点来统计。仅在开启GSC的模式下有数据。具体字段如表1所示。 表1 GS_LSC_MEMORY_DETAIL字段 名称 类型 描述 threadid text 线程启动时间+线程标识(字符串信息为timestamp.sessionid)。 tid bigint 线程标识。 thrdtype text 线程类型。可以是系统内存在的任何线程类型,如postgresql、wlmmonitor等。 contextname text 内存上下文名称。 level smallint 当前上下文在整体内存上下文中的层级。 parent text 父内存上下文名称。 totalsize bigint 当前内存上下文的内存总数,单位Byte。 freesize bigint 当前内存上下文中已释放的内存总数,单位Byte。 usedsize bigint 当前内存上下文中已使用的内存总数,单位Byte。 父主题: 其他系统视图
  • 注意事项 当enable_access_server_directory=off时,只允许初始用户删除DIRECTORY对象。 当enable_access_server_directory=on时,具有SYSADMIN权限的用户、DIRECTORY对象的属主、被授予了该DIRECTORY的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除DIRECTORY对象。
  • default_week_format 参数说明:用于week()函数的默认mode值,取值范围与表现如下表所示。 default_week_format 一周的第一天 范围 第1周定义 0 周日 0~53 今年第一个有周日的周。 1 周一 0~53 今年第一个有4天及以上的周。 2 周日 1~53 今年第一个有周日的周。 3 周一 1~53 今年第一个有4天及以上的周。 4 周日 0~53 今年第一个有4天及以上的周。 5 周一 0~53 今年第一个有周一的周。 6 周日 1~53 今年第一个有4天及以上的周。 7 周一 1~53 今年第一个有周一的周。 一年的第1周,其中的1代表序号值。根据week_format不同,如第三列所示,一年的第一个周序号可能为0。 参数类型:整型 参数单位:无 取值范围:[0, 7] 默认值:0 设置方式:该参数属于USERSET类型参数,请参考GUC参数设置中对应设置方法进行设置。 设置建议:根据业务需要,选择合适的mode。
  • lc_numeric 参数说明:设置数值的显示格式,影响to_char之类的函数的输出。可接受的值是系统相关的。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串 使用命令locale -a查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 默认值:C
  • lc_time_names 参数说明:控制用于显示日期和月份名称及缩写的语言。影响DATE_FORMAT()、DAYNAME()以及MONTHNAME()函数输出结果。不影响STR_TO_DATE()和GET_FORMAT()的表现。 参数类型:字符串 参数单位:无 取值范围:参数应当为简易格式的IETF语言标记,例如en_US、zh_CN等。 默认值:en_US 设置方式:该参数属于USERSET类型参数,请参考GUC参数设置中对应设置方法进行设置。 设置建议:根据业务需要,切换合适的语言。
  • lc_time 参数说明:设置时间和区域的显示格式,影响to_char之类的函数的输出。可接受的值是系统相关的。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串 使用命令locale -a查看当前系统支持的区域和相应的编码格式,并可以选择进行设置。 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 默认值:C
  • client_encoding 参数说明:设置客户端的字符编码类型。 请根据前端业务的情况确定。尽量客户端编码和服务器端编码一致,提高效率。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:兼容PostgreSQL所有的字符编码类型。其中UTF8表示使用数据库的字符编码类型。 使用命令locale -a查看当前系统支持的区域和相应的编码格式,并可以选择进行设置;不同操作系统之间,或者相同操作系统的不同版本之间,排序规则可能存在差异和变化。当应用业务在上述这些操作系统之间进行逻辑迁移时,操作系统排序规则的差异和变化可能会导致索引、分区、排序算子等数据库功能行为的差异,如相同的范围查询语句返回的数据结果集不同、相同的排序查询语句返回的查询结果不同等。应用业务需要根据操作系统发布的locale差异,在业务上排查业务数据是否涉及相关的字符。 默认情况下,gs_initdb会根据当前的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 参数建议保持默认值,不建议通过gs_guc工具或其他方式直接在gaussdb.conf文件中设置client_encoding参数,即使设置也不会生效,以保证数据库内部通信编码格式一致。 client_encoding 支持设置为GB18030_2022字符编码,当client_encoding=gb18030_2022时,需要保证客户端操作系统支持的GB18030字符集已升级到2022版本。 当数据库字符集编码为UTF8,且当前系统支持的区域下相应的编码格式为GB18030时,若客户端操作系统支持的GB18030字符集已升级到2022版本,且数据库中存在客户端GB18030字符集升级前存入的历史数据,则存在以下情况: set client_encoding = gb18030时,UTF8数据库中的历史数据返回给客户端的字符编码与客户端字符集升级前保持一致,但字符集升级过程中发生映射关系改变的38个字符的字形显示与2022版本保持一致。 set client_encoding = gb18030_2022时,UTF8数据库中的历史数据返回给客户端的字符编码与客户端字符集升级后保持一致,字形与升级前保持一致。这是因为GB18030字符集自身的各版本间存在不完全兼容,可能导致数据的不一致性。因此,若客户端涉及GB18030字符集升级且存在历史数据的场景,在升级前应进行历史数据的升级转换。 client_encoding支持设置为ZHS16GBK字符编码,下表展示了ZHS16GBK、GB18030、GB18030_2022字符集所有转换关系对应的server_encoding与client_encoding设置方式: server_encoding client_encoding locale 设置方法 zhs16gbk utf8 utf8 数据库自动获取locale取值。 utf8 zhs16gbk gbk gsql通过用户手动执行:set client_encoding = zhs16gbk。 jdbc连接时通过url参数直接指定:characterEncoding=zhs16gbk zhs16gbk zhs16gbk gbk gsql连接时数据库自动获取locale取值,内部进行处理后自动设置client_encoding = zhs16gbk。 jdbc连接时通过url参数直接指定:characterEncoding=zhs16gbk。 zhs16gbk gb18030 gb18030 gsql连接时数据库自动获取locale取值。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030。 gb18030 zhs16gbk gbk gsql不支持该设置。 jdbc连接时通过url参数直接指定characterEncoding=zhs16gbk。 zhs16gbk gb18030-2022 gb18030 gsql连接时,用户手动执行:set client_encoding = gb18030_2022。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030_2022。 gb18030-2022 zhs16gbk gbk gsql不支持该设置。 jdbc连接时通过url参数直接指定characterEncoding=zhs16gbk。 gb18030 utf8 utf8 数据库自动获取locale取值。 utf8 gb18030 gb18030 数据库自动获取locale取值。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030。 gb18030_2022 utf8 utf8 数据库自动获取locale取值。 utf8 gb18030_2022 gb18030 gsql连接时,用户手动执行:set client_encoding = gb18030_2022。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030_2022。 gb18030 gb18030 gb18030 数据库自动获取locale取值。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030。 gb18030_2022 gb18030_2022 gb18030 gsql连接时数据库自动获取locale取值,内部进行处理后自动设置client_encoding = gb18030_2022。 jdbc连接时通过url参数直接指定:characterEncoding=gb18030_2022。 默认值:UTF8 推荐值:SQL_ASCII/UTF8
共100000条