华为云用户手册

  • 创建Schema 使用CREATE SCHEMA命令来创建一个新的Schema。 1 CREATE SCHEMA myschema; 如果需要在模式中创建或者访问对象,其完整的对象名称由模式名称和具体的对象名称组成。中间由符号“.”隔开。例如:myschema.table。 用户可以创建一个由他人拥有的schema。例如,创建名为myschema的Schema,并指定Schema的所有者为用户jack。 1 CREATE SCHEMA myschema AUTHORIZATION jack; 若不指定authorization username,则其所有者为执行该命令的用户。
  • 使用Schema 在特定Schema下创建对象或者访问特定Schema下的对象,需要使用有Schema修饰的对象名。名称包含Schema名以及对象名,之间用“.”号分开。 在myschema下创建mytable表。以schema_name.table_name格式创建表。 1 CREATE TABLE myschema.mytable(id int, name varchar(20)); 查询myschema下mytable表的所有数据。 1 2 3 4 SELECT * FROM myschema.mytable; id | name ----+------ (0 rows)
  • 设置Schema搜索路径 GUC参数search_path设置Schema的搜索顺序,参数取值形式为采用逗号分隔的Schema名称列表。如果创建对象时未指定目标Schema,则该对象会被添加到搜索路径中列出的第一个Schema中。当不同Schema中存在同名的对象时,查询对象未指定Schema的情况下,将从搜索路径中包含该对象的第一个Schema中返回对象。 使用SHOW命令查看当前搜索路径。 1 2 3 4 5 SHOW SEARCH_PATH; search_path ---------------- "$user",public (1 row) search_path参数的默认值为:"$user",public。$user表示与当前会话用户名同名的Schema名,如果这样的模式不存在,$user将被忽略。所以默认情况下,用户连接数据库后,如果数据库下存在同名Schema,则对象会添加到同名Schema下,否则对象被添加到Public Schema下。 使用SET命令修改当前会话的默认Schema。例如,将搜索路径设置为myschema、public,首先搜索myschema。 1 SET SEARCH_PATH TO myschema, public; 也可以使用ALTER ROLE命令为特定的角色(用户)设置search_path。例如: 1 ALTER ROLE jack SET search_path TO myschema, public;
  • dynamic_library_path 参数说明:设置数据查找动态加载的共享库文件的路径。当需要打开一个可以动态装载的模块并且在CREATE FUNCTION或LOAD命令里面声明的名字没有目录部分时,系统将搜索这个目录以查找声明的文件。 用于dynamic_library_path的数值必须是一个冒号分隔(Windows下是分号分隔)的绝对路径列表。当一个路径名字以特殊变量$libdir为开头时,会替换为GaussDB(DWS)发布提供的模块安装路径。例如: 1 dynamic_library_path = '/usr/local/lib/postgresql:/opt/testgs/lib:$libdir' 参数类型:SUSET 取值范围:字符串 设置为空字符串,表示关闭自动路径搜索。 默认值:$libdir
  • PG_STATIO_USER_INDEXES PG_STATIO_USER_INDEXES视图显示命名空间中所有用户关系表索引的IO状态信息。 表1 PG_STATIO_USER_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓冲区数。 父主题: 系统视图
  • 返回值 SQL_SUCCESS:表示调用正确。 SQL_SUCCESS_WITH_INFO:表示会有一些警告信息。 SQL_NEED_DATA:在执行SQL语句前没有提供足够的参数。 SQL_ERROR:表示比较严重的错误,如:内存分配失败、建立连接失败等。 SQL_INVALID_HANDLE:表示调用无效句柄。其他API的返回值同理。 SQL_STILL_EXECUTING:表示语句正在执行。 SQL_NO_DATA:表示SQL语句不返回结果集。
  • PG_TS_TEMPLATE PG_TS_TEMPLATE系统表包含定义文本搜索模板的项。模板是文本搜索字典的类的实现框架。因为模板必须通过C语言级别的函数实现,索引新模板的创建必须由数据库系统管理员创建。 表1 PG_TS_TEMPLATE字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 tmplname name - 文本搜索模板名。 tmplnamespace oid PG_NAMESPACE.oid 模板所属的命名空间的OID。 tmplinit regproc PG_PROC.oid 模板的初始化函数的OID。 tmpllexize regproc PG_PROC.oid 模板的lexize函数的OID。 父主题: 系统表
  • PG_USER_MAPPINGS PG_USER_MAPPINGS视图提供访问关于用户映射的信息的接口。 这个视图只是一个PG_USER_MAPPING的可读部分的视图化表现,如果用户无权使用它则查询此表时,有些选项字段会显示为空。 表1 PG_USER_MAPPINGS字段 名字 类型 引用 描述 umid oid PG_USER_MAPPING.oid 用户映射的OID。 srvid oid PG_FOREIGN_SERVER.oid 包含这个映射的外部服务器的OID。 srvname name PG_FOREIGN_SERVER.srvname 外部服务器的名字。 umuser oid PG_AUTHID.oid 被映射的本地角色的OID,如果用户映射是公共的则为0。 usename name - 被映射的本地用户的名字。 umoptions text[ ] - 如果当前用户是外部服务器的所有者,则为用户映射指定选项, 使用“keyword=value”字符串,否则为null。 父主题: 系统视图
  • PG_USER_STATUS PG_USER_STATUS系统表提供了访问数据库用户的状态。需要有系统管理员权限才可以访问此系统表 表1 PG_USER_STATUS字段 名称 类型 描述 roloid oid 角色的标识。 failcount integer 尝试失败次数。 locktime timestamp with time zone 角色被锁定的时间点。 rolstatus smallint 角色的状态。 0:正常状态。 1:由于登录失败次数超过阈值被锁定了一定的时间。 2:被管理员锁定。 permspace bigint 角色在当前实例上已经使用的永久表存储空间大小。 tempspace bigint 角色在当前实例上已经使用的临时表存储空间大小。 父主题: 系统表
  • PG_AGGREGATE PG_AGGREGATE系统表存储与聚集函数有关的信息。PG_AGGREGATE里的每条记录都是一条pg_proc里面的记录的扩展。PG_PROC记录承载该聚集的名字、输入和输出数据类型,以及其它一些和普通函数类似的信息。 表1 PG_AGGREGATE字段 名字 类型 引用 描述 aggfnoid regproc PG_PROC.oid 此聚集函数的PG_PROC OID。 aggtransfn regproc PG_PROC.oid 转换函数。 aggcollectfn regproc PG_PROC.oid 收集函数。 aggfinalfn regproc PG_PROC.oid 最终处理函数(如果没有则为0)。 aggsortop oid PG_OPERATOR.oid 关联排序操作符(如果没有则为0)。 aggtranstype oid PG_TYPE.oid 此聚集函数的内部转换(状态)数据的数据类型。 agginitval text - 转换状态的初始值。这是一个文本数据域,它包含初始值的外部字符串表现形式。如果数据域是null,则转换状态值从null开始。 agginitcollect text - 收集状态的初始值。这是一个文本数据域,它包含初始值的外部字符串表现形式。如果数据域是null,则收集状态值从null开始。 父主题: 系统表
  • 数据类型转换 数据库中允许有些数据类型进行隐式类型转换(赋值、函数调用的参数等),有些数据类型间不允许进行隐式数据类型转换,可尝试使用GaussDB(DWS)提供的类型转换函数,例如CAST进行数据类型强转。 GaussDB(DWS)数据库常见的隐式类型转换,请参见表1。 GaussDB(DWS)支持的DATE的效限范围是:公元前4713年到公元294276年。 表1 隐式类型转换表 原始数据类型 目标数据类型 备注 CHAR VARCHAR2 - CHAR NUMBER 原数据必须由数字组成。 CHAR DATE 原数据不能超出合法日期范围。 CHAR RAW - CHAR CLOB - VARCHAR2 CHAR - VARCHAR2 NUMBER 原数据必须由数字组成。 VARCHAR2 DATE 原数据不能超出合法日期范围。 VARCHAR2 CLOB - NUMBER CHAR - NUMBER VARCHAR2 - DATE CHAR - DATE VARCHAR2 - RAW CHAR - RAW VARCHAR2 - CLOB CHAR - CLOB VARCHAR2 - CLOB NUMBER 原数据必须由数字组成。 INT4 CHAR - 父主题: 存储过程
  • 参数 表1 SQLSetStmtAttr参数 关键字 参数说明 StatementtHandle 语句句柄。 Attribute 需设置的属性。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位无符号整型值,或指向以空结束的字符串,二进制缓冲区,或者驱动定义值。注意,如果ValuePtr参数是驱动程序指定值。ValuePtr可能是有符号的整数。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • 原型 1 2 3 4 SQLRETURN SQLSetStmtAttr(SQLHSTMT StatementHandle SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 应用示例 查看分区表的分区信息: 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 CREATE TABLE web_returns_p1 ( wr_returned_date_sk integer, wr_returned_time_sk integer, wr_item_sk integer NOT NULL, wr_refunded_customer_sk integer ) WITH (orientation = column) DISTRIBUTE BY HASH (wr_item_sk) PARTITION BY RANGE (wr_returned_date_sk) ( PARTITION p2016 VALUES LESS THAN(20161231), PARTITION p2017 VALUES LESS THAN(20171231), PARTITION p2018 VALUES LESS THAN(20181231), PARTITION p2019 VALUES LESS THAN(20191231), PARTITION p2020 VALUES LESS THAN(maxvalue) ); SELECT * FROM dba_tab_partitions where table_name='web_returns_p1'; table_owner | schema | table_name | partition_name | high_value | pretty_high_value | tablespace_name -------------+--------+----------------+----------------+------------+-------------------+-------------------- dbadmin | public | web_returns_p1 | p2016 | 20161231 | 20161231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2017 | 20171231 | 20171231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2018 | 20181231 | 20181231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2019 | 20191231 | 20191231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2020 | MAXVALUE | MAXVALUE | DEFAULT TABLESPACE (5 rows)
  • 性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用以记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS SNAP_PGXC_INSTR_UNIQUE_SQL SNAP_PGXC_STAT_BAD_BLOCK SNAP_PGXC_STAT_BGWRITER SNAP_PGXC_STAT_REPLICATION SNAP_PGXC_REPLICATION_SLOTS SNAP_PGXC_SETTINGS SNAP_PGXC_INSTANCE_TIME SNAP_GLOBAL_WORKLOAD_TRANSACTION SNAP_PGXC_WORKLOAD_SQL_COUNT SNAP_PGXC_STAT_DATABASE SNAP_GLOBAL_STAT_DATABASE SNAP_PGXC_REDO_STAT SNAP_GLOBAL_REDO_STAT SNAP_PGXC_REL_IOSTAT SNAP_GLOBAL_REL_IOSTAT SNAP_PGXC_TOTAL_MEMORY_DETAIL SNAP_PGXC_NODE_STAT_RESET_TIME SNAP_PGXC_SQL_COUNT SNAP_GLOBAL_TABLE_STAT SNAP_GLOBAL_TABLE_CHANGE_STAT SNAP_GLOBAL_COLUMN_TABLE_IO_STAT SNAP_GLOBAL_ROW_TABLE_IO_STAT 此类系统表除增加snapshot_id字段(bigint类型)外,其余的字段定义与对应视图相同,且各表的分布键均为snapshot_id。 例如,SNAP_PGXC_OS_RUN_INFO,用于存储PGXC_OS_RUN_INFO视图的快照,其字段新增了snapshot_id,其余字段含义均与PGXC_OS_RUN_INFO视图相同。 以上系统表的schema都是dbms_om。 禁止从外部修改或删除以上系统表,否则可能引起视图快照相关功能异常。 父主题: 系统表
  • audit_operation_error 参数说明:该参数决定是否审计GaussDB(DWS)中各类执行失败的操作,由用户根据实际需求进行配置。 参数类型:SIGHUP 取值范围:字符串 none:表示未配置审计项,如果同时配置了其他任何审计项,则none失效。 syn_success:表示同步audit_operation_exec的配置,即配置了某操作执行成功场景的审计,则对应的执行失败场景也记入审计。需注意,配置了syn_success后,仍可以继续配置其他操作执行失败场景的审计;如果audit_operation_exec配置为all,则所有的失败场景均记入审计;如果audit_operation_exec配置为none,则syn_success等同于none,即未配置审计项。 parse:表示对用户输入命令解析失败场景进行审计,包含等待命令超时的失败场景。 login:表示对用户登录失败的场景进行审计。 user_lock:表示对用户锁定和解锁失败的场景进行审计。 violation:表示对用户访问存在越权的场景进行审计。 grant_revoke:表示对用户权限授予和回收失败的场景进行审计。 ddl:表示对DDL操作失败的场景进行审计,因为DDL操作由会根据操作对象进行更细粒度控制,仍然需要结合audit_system_object的配置情况,所以此处配置ddl后,将对audit_system_object指定类型的DDL失败场景进行审计。 select:表示对SELECT操作失败的场景进行审计。 copy:表示对COPY操作失败的场景进行审计。 userfunc:表示对用户自定义函数、存储过程、匿名块操作失败的场景进行审计。 set:表示对set操作失败的场景进行审计。 transaction:表示对事务操作失败的场景进行审计。 vacuum:表示对VACUUM操作失败的场景进行审计。 analyze:表示对ANALYZE操作失败的场景进行审计。 explain:表示对EXPLAIN操作失败的场景进行审计。 specialfunc:表示对特殊函数调用操作失败的场景进行审计,特殊函数包括:pg_terminate_backend、pg_cancel_backend。 insert:表示对INSERT操作失败的场景进行审计。 update:表示对UPDATE操作失败的场景进行审计。 delete:表示对DELETE操作失败的场景进行审计。 merge:表示对MERGE操作失败的场景进行审计。 show:表示对SHOW操作失败的场景进行审计。 checkpoint:表示对CHECKPOINT操作失败的场景进行审计。 barrier:表示对BARRIER操作失败的场景进行审计。 cluster:表示对CLUSTER操作失败的场景进行审计。 comment:表示对COMMENT操作失败的场景进行审计。 cleanconn:表示对CLEANCONNECTION操作失败的场景进行审计。 prepare:表示对PREPARE、EXECUTE、DEALLOCATE操作失败的场景进行审计。 constraints:表示对CONSTRAINTS操作失败的场景进行审计。 cursor:表示对游标操作失败的场景进行审计。 blacklist:表示对黑名单执行失败进行审计。 discard:表示对清理当前会话的全局临时表信息执行失败的场景进行审计。 默认值:login
  • audit_system_object 参数说明:该参数决定是否对GaussDB(DWS)数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB(DWS)数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作。 参数类型:SIGHUP 取值范围:整型,0~4194303 0代表关闭GaussDB(DWS)数据库对象的CREATE、DROP、ALTER操作审计功能。 非0代表只审计GaussDB(DWS)的某类或者某些数据库对象的CREATE、DROP、ALTER操作。 取值说明: 该参数的值由22个二进制位的组合求出,这22个二进制位分别代表GaussDB(DWS)的22类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER操作。这22个二进制位代表的具体审计内容请参见表1。 默认值:12303 表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对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作; 1表示审计该对象的CREATE、DROP、ALTER操作。 第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 FOR HADOOP对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作; 1表示审计该对象的CREATE、DROP、ALTER操作 第12位 是否审计DATA SOURCE对象的CRAETE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作; 1表示审计该对象的CREATE、DROP、ALTER操作。 第13位 是否审计NODE GROUP对象的CREATE、DROP、ALTER操作。 0表示不审计该对象的CREATE、DROP、ALTER操作; 1表示审计该对象的CREATE、DROP、ALTER操作。 第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位 是否审计REDACTION POLICY对象的CREATE、DROP、ALTER操作。 0表示不审计REDACTION POLICY对象的CREATE、DROP、ALTER操作; 1表示审计REDACTION POLICY对象的CREATE、DROP、ALTER操作。 第20位 是否审计SEQUENCE对象的CREATE、DROP、ALTER操作。 0表示不审计SEQUENCE对象的CREATE、DROP、ALTER操作; 1表示审计SEQUENCE对象的CREATE、DROP、ALTER操作。 第21位 是否审计NODE对象的CREATE、DROP、ALTER操作。 0表示不审计NODE对象的CREATE、DROP、ALTER操作; 1表示审计NODE对象的CREATE、DROP、ALTER操作。
  • security_enable_options 参数说明:该参数决定是否允许安全模式下使用grant_to_public、grant_with_grant_option和foreign_table_options三种功能,可根据实际需求进行配置。该参数仅8.2.0及以上集群版本支持。 参数类型:SIGHUP 取值范围:字符串 grant_to_public,表示允许安全模式下使用grant to public功能。 grant_with_grant_option,表示允许安全模式下使用with grant option功能。 foreign_table_options,表示允许安全模式下使用外表操作功能,不需要显式赋予用户useft权限。 默认值:空 新安装集群场景下,该参数默认值为空,表示安全模式下不允许使用grant_to_public、grant_with_grant_option和foreign_table_options中任何一种功能。 升级场景下,该参数的默认值保持前向兼容,若用户升级前原版本中GUC参数enable_grant_public和enable_grant_option默认为ON,那么升级后security_enable_options参数的默认值为“grant_to_public, grant_with_grant_option”。
  • audit_operation_exec 参数说明:该参数决定是否审计GaussDB(DWS)中各类执行成功的操作,由用户根据实际需求进行配置。 参数类型:SIGHUP 取值范围:字符串 none:表示未配置审计项,如果同时配置了其他任何审计项,则none失效。 all:表示对所有操作成功的场景进行审计。如果同时配置了其他任何审计项,则覆盖所有其他审计项的配置。注意,即使配置为all,也不表示对所有的DDL操作进行审计,仍然需要结合audit_system_object,对DDL操作的对象级别进行控制。 login:表示对用户登录成功的场景进行审计。 logout:表示对用户退出进行审计。 database_process:表示对数据库启动、停止、切换、恢复操作进行审计。 user_lock:表示对用户锁定和解锁成功的场景进行审计。 grant_revoke:表示对用户权限授予和回收成功的场景进行审计。 ddl:表示对DDL操作成功的场景进行审计,因为DDL操作由会根据操作对象进行更细粒度控制,仍然沿用审计开关audit_system_object,即由audit_system_object控制对哪些对象的DDL操作进行审计(此处不配置ddl,只要配置了audit_system_object,审计也会生效)。 select:表示对select操作成功的场景进行审计。 copy:表示对copy操作成功的场景进行审计。 userfunc:表示对用户自定义函数、存储过程、匿名块操作成功的场景进行审计。 set:表示对set操作成功的场景进行审计。 transaction:表示对事务操作成功的场景进行审计。 vacuum:表示对vacuum操作成功的场景进行审计。 analyze:表示对analyze操作成功的场景进行审计。 explain:表示对explain操作成功的场景进行审计。 specialfunc:表示对特殊函数调用操作成功的场景进行审计,特殊函数包括:pg_terminate_backend、pg_cancel_backend。 insert:表示对insert操作成功的场景进行审计。 update:表示对update操作成功的场景进行审计。 delete:表示对delete操作成功的场景进行审计。 merge:表示对merge操作成功的场景进行审计。 show:表示对show操作成功的场景进行审计。 checkpoint:表示对checkpoint操作成功的场景进行审计。 barrier:表示对barrier操作成功的场景进行审计。 cluster:表示对cluster操作成功的场景进行审计。 comment:表示对comment操作成功的场景进行审计。 cleanconn:表示对cleanconnection操作成功的场景进行审计。 prepare:表示对PREPARE、EXECUTE、DEALLOCATE操作成功的场景进行审计。 constraints:表示对constraints操作成功的场景进行审计。 cursor:表示对游标操作成功的场景进行审计。 discard:表示对清理当前会话的全局临时表信息操作成功的场景进行审计。 默认值:login, logout, database_process, user_lock, grant_revoke, set, transaction, cursor 建议transaction审计项保留,否则事务内语句都不会被审计。 建议cursor审计项保留,否则cursor内select语句不会被审计。 需注意Data Studio客户端会自动给select语句封装cursor。 如果自定义函数、存储过程中有fetch语句,则审计fetch语句时,其中common_text字段记录的为其对应的CURSOR内容。
  • 游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不同的SQL语句,游标的使用情况不同,详细信息请参见表1。 表1 游标使用情况 SQL语句 游标 非查询语句 隐式的 结果是单行的查询语句 隐式的或显式的 结果是多行的查询语句 显式的 父主题: 游标
  • client_min_messages 参数说明:控制发送到客户端的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,发送给客户端的消息就越少。 参数类型:USERSET 当client_min_messages和log_min_messages取相同值时,其值所代表的级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error。参数的详细信息请参见表1。 默认值:notice
  • log_min_error_statement 参数说明:控制在服务器日志中记录错误的SQL语句。 参数类型:SUSET 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 设置为error ,表示导致错误、日志消息、致命错误、panic的语句都将被记录。 设置为panic,表示关闭此特性。 默认值:error
  • log_min_duration_statement 参数说明:当某条语句的持续时间大于或者等于特定的毫秒数时,log_min_duration_statement参数用于控制记录每条完成语句的持续时间。 设置log_min_duration_statement可以很方便地跟踪需要优化的查询语句。对于使用扩展查询协议的客户端,语法分析、绑定、执行每一步所花时间被独立记录。 参数类型:SUSET 当此选项与log_statement同时使用时,已经被log_statement记录的语句文本不会被重复记录。在没有使用syslog情况下,推荐使用log_line_prefix记录PID或会话ID,方便将当前语句消息连接到最后的持续时间消息。 取值范围:整型,-1 ~ INT_MAX,单位为毫秒。 设置为250,所有运行时间不短于250ms的SQL语句都会被记录。 设置为0,输出所有语句的持续时间。 设置为-1,关闭此功能。 默认值:30min
  • backtrace_min_messages 参数说明:控制当产生该设置参数级别相等或更高级别的信息时,会打印函数的堆栈信息到服务器日志文件中。 参数类型:SUSET 该参数作为客户现场问题定位手段使用,且由于频繁的打印函数栈会对系统的开销及稳定性有一定的影响,因此如果需要进行问题定位时,建议避免将backtrace_min_messages的值设置为fatal及panic以外的级别。 取值范围:枚举类型 有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:panic
  • profile_logging_module 参数说明:用于设置记录性能日志的类型,使用该参数时需确保plog_merge_age参数值非0。该参数属于会话级参数,不建议通过gs_guc工具来设置。仅8.1.3及以上集群版本支持。 参数类型:USERSET 取值范围:字符串 默认值:默认打开OBS、HADOOP、REMOTE_DATANODE,关闭MD。可由SHOW profile_logging_module查看。 设置方法:首先,可以通过SHOW profile_logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 show profile_logging_module; profile_logging_module -------------------------------------------- ALL,on(OBS,HADOOP,REMOTE_DATANODE),off(MD)(1 row) 打开MD性能日志,并查看设置结果。其中ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 set profile_logging_module='on(md)'; SET show profile_logging_module; profile_logging_module --------------------------------------------- ALL,on(MD,OBS,HADOOP,REMOTE_DATANODE),off()(1 row)
  • log_min_messages 参数说明:控制写到服务器日志文件中的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,服务器运行日志中记录的消息就越少。 参数类型:SUSET 当client_min_messages和log_min_messages取相同值log时所代表的消息级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:warning
  • 参数 表1 SQLFreeHandle参数 关键字 参数说明 HandleType SQLFreeHandle要释放的句柄类型。必须为下列值之一: SQL_HANDLE_ENV SQL_HANDLE_DBC SQL_HANDLE_STMT SQL_HANDLE_DESC 如果HandleType不是这些值之一,SQLFreeHandle返回SQL_INVALID_HANDLE。 Handle 要释放的句柄。
  • 参数 表1 SQLSetConnectAttr参数 关键字 参数说明 StatementtHandle 连接句柄。 Attribute 设置属性。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr是32位无符号整型值或指向以空结束的字符串。注意,如果ValuePtr参数是驱动程序指定值。ValuePtr可能是有符号的整数。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • 原型 1 2 3 4 SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 自定义外部函数(pgSQL/Java)使用 【关注】Java UDF可以实现一些java逻辑计算,禁止在Java UDF中封装业务。 【关注】禁止在Java函数中使用任何方式连接数据库,包括但不限于JDBC。 【关注】只能选择下表中的数据类型,不支持自定义类型、复杂数据类型(Java Array类及派生类)等: 【关注】不支持UDAF(用户定义聚合函数)、UDTF(用户自定义表生成函数)。 表1 PL/Java默认数据类型映射关系 GaussDB(DWS) Java BOOLEAN boolean "char" byte bytea byte[] SMALLINT short INTEGER int BIGINT long FLOAT4 float FLOAT8 double CHAR java.lang.String VARCHAR java.lang.String TEXT java.lang.String name java.lang.String DATE java.sql.Timestamp TIME java.sql.Time (stored value treated as local time) TIMETZ java.sql.Time TIMESTAMP java.sql.Timestamp TIMESTAMPTZ java.sql.Timestamp 父主题: 开发设计建议
共100000条