华为云用户手册

  • 示例 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --将创建在模式tpcds里的所有表(和视图)的SELECT权限授予每一个用户。 gaussdb=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds GRANT SELECT ON TABLES TO PUBLIC; --创建用户普通用户jack。 gaussdb=# CREATE USER jack PASSWORD '********'; --将tpcds下的所有表的插入权限授予用户jack。 gaussdb=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds GRANT INSERT ON TABLES TO jack; --将tpcds下由jack创建的所有表的插入权限授予用户jack。 gaussdb=# GRANT USAGE,CREATE ON SCHEMA tpcds TO jack; gaussdb=# ALTER DEFAULT PRIVILEGES FOR ROLE jack IN SCHEMA tpcds GRANT INSERT ON TABLES TO jack; --撤销上述权限。 gaussdb=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds REVOKE SELECT ON TABLES FROM PUBLIC; gaussdb=# ALTER DEFAULT PRIVILEGES IN SCHEMA tpcds REVOKE INSERT ON TABLES FROM jack; --删除用户jack。 gaussdb=# DROP USER jack CASCADE; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds;
  • 语法格式 ALTER DEFAULT PRIVILEGES [ FOR { ROLE | USER } target_role [, ...] ] [ IN SCHEMA schema_name [, ...] ] abbreviated_grant_or_revoke; 其中abbreviated_grant_or_revoke子句用于指定对哪些对象进行授权或回收权限。 grant_on_tables_clause | grant_on_sequences_clause | grant_on_functions_clause | grant_on_types_clause | grant_on_client_master_keys_clause | grant_on_column_encryption_keys_clause | revoke_on_tables_clause | revoke_on_sequences_clause | revoke_on_functions_clause | revoke_on_types_clause | revoke_on_client_master_keys_clause | revoke_on_column_encryption_keys_clause 其中grant_on_tables_clause子句用于对表授权。 GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] } ON TABLES TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中grant_on_sequences_clause子句用于对序列授权。 1 2 3 4 5 GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON SEQUENCES TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中grant_on_functions_clause子句用于对函数授权。 GRANT { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON FUNCTIONS TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中grant_on_types_clause子句用于对类型授权。 GRANT { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TYPES TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中grant_on_client_master_keys_clause子句用于对客户端主密钥授权。 GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] } ON CLIENT_MASTER_KEYS TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中grant_on_column_encryption_keys_clause子句用于对列加密密钥授权。 GRANT { { USAGE | DROP } [, ...] | ALL [ PRIVILEGES ] } ON COLUMN_ENCRYPTION_KEYS TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] 其中revoke_on_tables_clause子句用于回收表对象的权限。 REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM } [, ...] | ALL [ PRIVILEGES ] } ON TABLES FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ] 其中revoke_on_sequences_clause子句用于回收序列的权限。 1 2 3 4 5 6 REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON SEQUENCES FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ] 其中revoke_on_functions_clause子句用于回收函数的权限。 REVOKE [ GRANT OPTION FOR ] { {EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON FUNCTIONS FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ] 其中revoke_on_types_clause子句用于回收类型的权限。 REVOKE [ GRANT OPTION FOR ] { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TYPES FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT | CASCADE CONSTRAINTS ]
  • 参数说明 target_role 已有角色的名称。如果省略FOR ROLE/USER,则缺省值为当前角色/用户。 取值范围:已有角色的名称。 schema_name 现有模式的名称。 target_role必须有schema_name的CREATE权限。 取值范围:现有模式的名称。 role_name 被授予或者取消权限角色的名称。 取值范围:已存在的角色名称。 如果想删除一个被赋予了默认权限的角色,有必要恢复改变的缺省权限或者使用DROP OWNED BY来为角色脱离缺省的权限记录。
  • 事务管理 在事务管理上,GaussDB采取了MVCC(多版本并发控制)结合两阶段锁的方式,其特点是读写之间不阻塞。GaussDB的astore存储引擎将历史版本数据和当前元组的版本放在了一起。GaussDB的astore存储引擎没有回滚段的概念,但是为了定期清除历史版本数据,GaussDB的astore存储引擎引入了VACUUM线程。一般情况下,除非用户要做性能调优,否则不用特别关注VACUUM线程。GaussDB的ustore存储引擎是将历史版本数据统一存放到undo回滚段里,由undo回收线程统一清理历史版本数据。此外,GaussDB对于单语句查询(没有使用BEGIN等语句显示启动事务块)是自动提交事务的。
  • 功能描述 创建一个预备语句。 预备语句是服务端的对象,可以用于优化性能。在执行PREPARE语句的时候,指定的查询被解析、分析、重写。当随后发出EXECUTE语句的时候,预备语句被规划和执行。这种设计避免了重复解析、分析工作。PREPARE语句创建后在整个数据库会话期间一直存在,一旦创建成功,即便是在事务块中创建,事务回滚,PREPARE也不会删除。只能通过显式调用DEALLOCATE进行删除,会话结束时,PREPARE也会自动删除。
  • 连接查询 连接查询也可称为跨表查询,需要关联多个表进行查询。 -- 建表并插入数据。 gaussdb=# CREATE TABLE emp( id int, --员工编号 name varchar, --员工姓名 deptno int --所属部门编号 ); gaussdb=# CREATE TABLE dept( deptno int, --部门编号 depname varchar --部门名 ); gaussdb=# INSERT INTO emp VALUES (1, 'Joe', 10), (2, 'Scott', 20), (3, 'Ben', 999); --Ben还没有确认是哪一个部门所以部门编号是999 gaussdb=# INSERT INTO dept VALUES (10, 'hr'), (20, 'it'), (30, 'sal'); --sal部门没有员工 内连接(INNER JOIN) gaussdb=# SELECT t1.id,t1.name,t2.depname FROM emp t1 JOIN dept t2 ON t1.deptno = t2.deptno; id | name | depname ----+-------+--------- 1 | Joe | hr 2 | Scott | it (2 rows) 左连接(LEFT JOIN) gaussdb=# SELECT t1.id,t1.name,t2.depname FROM emp t1 LEFT JOIN dept t2 ON t1.deptno = t2.deptno; id | name | depname ----+-------+--------- 1 | Joe | hr 2 | Scott | it 3 | Ben | (3 rows) 右连接(RIGHT JOIN) gaussdb=# SELECT t1.id,t1.name,t2.depname FROM emp t1 RIGHT JOIN dept t2 ON t1.deptno = t2.deptno; id | name | depname ----+-------+--------- 1 | Joe | hr 2 | Scott | it | | sal (3 rows) 全连接(FULL JOIN) gaussdb=# SELECT t1.id,t1.name,t2.depname FROM emp t1 FULL JOIN dept t2 ON t1.deptno = t2.deptno; id | name | depname ----+-------+--------- 1 | Joe | hr 2 | Scott | it | | sal 3 | Ben | (4 rows) --删除。 gaussdb=# DROP TABLE emp,dept; 父主题: SELECT
  • 参数说明 config_parameter 可设置的运行时参数的名称。可用的运行时参数可以使用SHOW ALL命令查看。 value config_parameter的新值。可以声明为字符串常量、标识符、数字,或者逗号分隔的列表。DEFAULT用于把这些参数设置为它们的缺省值。 DEFAULT OFF RESET 用户指定的值:需要满足修改参数的取值限制 FROM CURRENT 取当前会话中的值设置为configuration_parameter的值。 TIME ZONE timezone 用于指定当前会话的本地时区。 取值范围:有效的本地时区。该选项对应的运行时参数名称为TimeZone,DEFAULT缺省值为PRC。 CURRENT_SCHEMA schema CURRENT_SCHEMA用于指定当前的模式。 取值范围:已存在模式名称。如果模式名不存在,会导致CURRENT_SCHEMA值为空。 SCHEMA schema 同CURRENT_SCHEMA。此处的schema是个字符串。 NAMES encoding_name 用于设置客户端的字符编码。等价于set client_encoding to encoding_name。 取值范围:有效的字符编码。该选项对应的运行时参数名称为client_encoding,默认编码为UTF8。 role_name 取值范围:字符串。要符合标识符命名规范。 password 角色的密码。要求符合密码的命名规则。 SESSION AUTHORIZATION 当前会话的用户表示符。 XML OPTION { DOCUMENT | CONTENT } 用于设置XML的解析方式。 取值范围:CONTENT(缺省)、DOCUMENT
  • 语法格式 设置会话的事务参数。 ALTER SESSION SET [ SESSION CHARACTERISTICS AS ] TRANSACTION { ISOLATION LEVEL { READ COMMITTED } | { READ ONLY | READ WRITE } } [, ...] ; 设置会话的其他运行时参数。 ALTER SESSION SET {{config_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT }} | CURRENT_SCHEMA schema | TIME ZONE time_zone | SCHEMA 'schema' | NAMES encoding_name | ROLE role_name PASSWORD 'password' | SESSION AUTHORIZATION { role_name PASSWORD 'password' | DEFAULT } | XML OPTION { DOCUMENT | CONTENT } } ;
  • PG_PROC PG_PROC系统表存储函数或过程的信息。 表1 PG_PROC字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 proname name 函数名称。 pronamespace oid 包含该函数名称空间的OID。 proowner oid 函数的所有者。 prolang oid 这个函数的实现语言或调用接口。 procost real 估算的执行成本。 prorows real 估算的影响行的数目。 provariadic oid 参数元素的数据类型。 protransform regproc 此函数的简化调用方式。 proisagg boolean 函数是否是聚集函数。 t(true):表示是。 f(false):表示不是。 proiswindow boolean 函数是否是窗口函数。 t(true):表示是。 f(false):表示不是。 prosecdef boolean 函数是否是一个安全定义器(也就是一个“setuid”函数)。 t(true):表示是。 f(false):表示不是。 proleakproof boolean 函数是否没有副作用。如果函数没有对参数进行防泄露处理,则会抛出错误。 t(true):表示没副作用。 f(false):表示有副作用。 proisstrict boolean t(true):使用该函数时,如果入参有空值,则函数实际上不调用直接返回空。 f(false):使用该函数时,即使入参有空值,也要调用。所以该函数必须处理空输入。 proretset boolean 函数返回值是否为一个集合(也就是说,指定数据类型的多个数值)。 true:函数返回值是一个集合。 false:函数返回值不是一个集合。 provolatile "char" 该函数的结果是否只依赖于它的输入参数,或者还会被外界因素影响。 i:“不可变的”(immutable)函数,对于相同的输入总是产生相同的结果。 s:稳定的”(stable)函数,(对于固定输入)其结果在一次扫描里不变。 v:“易变”(volatile)函数,其结果可能在任何时候变化v也用于那些有副作用的函数,因此调用它们无法得到优化。 pronargs smallint 参数数目。 pronargdefaults smallint 有默认值的参数数目。 prorettype oid 返回值的数据类型。 proargtypes oidvector 一个存放函数参数的数据类型的数组。数组里只包括输入参数(包括INOUT参数),代表该函数的调用签名(接口)。 proallargtypes oid[] 一个包含函数参数的数据类型的数组。数组里包括所有参数的类型(包括OUT和INOUT参数),如果所有参数都是IN参数,则这个字段就会是空。请注意数组下标是以1为起点的,而因为历史原因,proargtypes的下标起点为0。 proargmodes "char"[] 一个保存函数参数模式的数组,编码如下: i:表示IN参数。 o:表示OUT参数。 b:表示INOUT参数。 v:表示VARIADIC参数。 如果所有参数都是IN参数,则这个字段为空。请注意,下标对应的是proallargtypes的位置,而不是proargtypes。 proargnames text[] 一个保存函数参数的名称的数组。没有名称的参数在数组里设置为空字符串。如果没有一个参数有名称,这个字段将是空。请注意,此数组的下标对应proallargtypes而不是proargtypes。 proargdefaults pg_node_tree 默认值的表达式树。是PRONARGDEFAULTS元素的列表。 prosrc text 描述函数或存储过程的定义。例如,对于解释型语言来说就是函数的源程序,或者一个连接符号,一个文件名,或者函数和存储过程创建时指定的其他任何函数体内容,具体取决于语言/调用习惯的实现。 probin text 关于如何调用该函数的附加信息。同样,其含义也是和语言相关的。 proconfig text[] 函数针对运行时配置变量的本地设置。 proacl aclitem[] 访问权限。具体请参见GRANT和REVOKE。 prodefaultargpos int2vector 函数具有默认值的入参的位置。 fencedmode boolean 函数的执行模式,表示函数是在fence还是not fence模式下执行。 true:fence模式,函数的执行会在重新fork的进程中执行。 false:not fence模式。 系统内建函数,fencedmode字段均为false,即not fence模式。 proshippable boolean 表示该函数是否可以下推到数据库节点上执行,默认值是false。 对于IMMUTABLE类型的函数,函数始终可以下推到数据库节点上执行。 对于STABLE/VOLATILE类型的函数,仅当函数的属性是SHIPPABLE的时候,函数可以下推到数据库节点执行。 propackage boolean 表示该函数是否支持重载,默认值是false。 t(true):表示支持。 f(false):表示不支持。 prokind "char" 表示该对象为函数还是存储过程。 'f':表示该对象为函数。 'p':表示该对象为存储过程。 proargsrc text 描述兼容A语法定义的函数或存储过程的参数输入字符串,包括参数注释。默认值为NULL。 proisprivate boolean 描述函数是否是PACKAGE内的私有函数,默认为false。 propackageid oid 函数所属的package oid,如果不在package内,则为0。 proargtypesext oidvector_extend 当函数参数较多时,用来存放函数参数的数据类型的数组。数组里只包括输入参数(包括INOUT参数),代表该函数的调用签名(接口)。 prodefaultargposext int2vector_extend 当函数参数较多时,函数具有默认值的入参的位置。 allargtypes oidvector 用来存放存储过程参数的数据类型的数组,包含存储过程所有参数(入参、出参、INOUT参数)。 allargtypesext oidvector_extend 当函数参数较多(大于666个)时,用来存放存储过程参数的数据类型的数组,包含所有参数(入参、出参、INOUT参数)。 新建函数时,会向pg_proc表中插入数据,更新索引。当出入参个数很多时,索引的长度可能会超过页面的三分之一,进而可能会产生“Index row size xxx exceeds maximum xxx for index "pg_proc_proname_all_args_nsp_index"”的报错,此为预期情况。您可以通过减少参数个数,避免该报错的产生。 父主题: 其他系统表
  • enable_ledger 参数说明:控制是否启用账本数据库功能。若此参数设置为打开(on)状态,则启用账本数据库功能,允许创建新的防篡改模式和修改普通模式为防篡改模式。 参数类型:布尔型 参数单位:无 取值范围: on表示启用账本数据库功能。 off表示不启用账本数据库功能。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:该参数默认关闭,需要开启账本数据库功能时,将enable_ledger设置为on。
  • 查询结果集 返回单行结果的SELECT语句可以直接使用EXEC SQL执行,请参见执行SQL语句章节。 示例: /* 首先建立一个表并插入数据 */ EXEC SQL CREATE TABLE test_table (number1 integer, number2 integer); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (2, 1); /* 查询结果为单行,:num 为宿主变量 */ EXEC SQL SELECT number1 INTO :num FROM test_table WHERE number2 = 1; 若要处理多行结果集,则必须使用游标,请参见使用游标章节(特殊情况下,应用程序可以一次取出多行结果写入到数组类型的宿主变量中,请参见使用非初级类型的宿主变量章节)。 示例: /* 首先建立一个表并插入数据 */ EXEC SQL CREATE TABLE test_table (number1 integer, number2 integer); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (2, 1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (3, 1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (4,1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (5, 1); /* 定义宿主变量 */ EXEC SQL BEGIN DECLARE SECTION; int v1; int v2; EXEC SQL END DECLARE SECTION; /* 声明游标 */ EXEC SQL DECLARE test_bar CURSOR FOR SELECT number1, number2 FROM test_table ORDER BY number1; /* 打开游标 */ EXEC SQL OPEN test_bar; /* 当游标到达结果集末尾时跳出循环 */ EXEC SQL WHENEVER NOT FOUND DO BREAK; /* 获取查询结果集 */ while(1) { EXEC SQL FETCH NEXT FROM test_bar INTO :v1, :v2; printf("number1 = %d, number2 = %d\n",v1,v2); } /* 关闭游标 */ EXEC SQL CLOSE test_bar; 父主题: 基于ecpg开发
  • 匿名块支持自治事务 自治事务可以在匿名块中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与创建匿名块语法相同,请参见匿名块,示例如下。 gaussdb=# CREATE TABLE t1(a INT ,B TEXT); CREATE TABLE gaussdb=# START TRANSACTION; START TRANSACTION gaussdb=# DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN DBE_OUTPUT.PRINT_LINE('JUST USE CALL.'); INSERT INTO t1 VALUES(1,'YOU ARE SO CUTE,WILL COMMIT!'); END; / JUST USE CALL. ANONYMOUS BLOCK EXECUTE gaussdb=# INSERT INTO t1 VALUES(1,'YOU WILL ROLLBACK!'); INSERT 0 1 gaussdb=# ROLLBACK; ROLLBACK gaussdb=# SELECT * FROM t1; a | b ---+------------------------------ 1 | YOU ARE SO CUTE,WILL COMMIT! (1 row) gaussdb=# DROP TABLE t1; DROP TABLE 上述例子,最后在回滚的事务块前执行包含自治事务的匿名块,直接说明了自治事务的特性,即主事务的回滚不会影响自治事务已经提交的内容。 父主题: 自治事务
  • MY_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS视图记录自上次在表上收集统计信息以来当前用户拥有的表的修改信息的统计数据。该视图目前只显示执行了INSERT、DELETE和UPDATE操作的表。所有用户都可以访问该视图。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_TAB_MODIFICATIONS字段 名称 类型 描述 table_name character varying(128) 表的名称。 partition_name character varying(128) 分区的名称。 subpartition_name character varying(128) 子分区的名称。 inserts numeric 自上次收集统计信息以来的大致插入次数。 updates numeric 自上次收集统计信息以来的大致更新次数。 deletes numeric 自上次收集统计信息以来的大致删除次数。 timestamp timestamp(0) without time zone 上次修改表的时间。 暂不支持分区表的修改时间,值为NULL。 truncated character varying(3) 暂不支持,值为NULL。 drop_segments numeric 暂不支持,值为NULL。 schema_name character varying(128) 表所属模式名。 父主题: 其他系统视图
  • DB_ERRORS DB_ERRORS视图显示用户可访问存储对象的最新编译错误信息。默认所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_ERRORS字段 名称 类型 描述 owner character varying(128) 对象的所有者。 name character varying(128) 对象的名称。 type character varying(12) 对象类型: PROCEDURE FUNCTION PACKAGE PACKAGE BODY sequence numeric 序列号。 line numeric 发生错误的行号。 position numeric 暂不支持,值为NULL。 text character varying(4000) 错误文本。 attribute character varying(9) 属性标记,错误(ERROR)。 message_number numeric 暂不支持,值为NULL。 父主题: 其他系统视图
  • 废弃函数 GaussDB中下列函数在最新版本中已废弃: gs_wlm_get_session_info gs_wlm_get_user_session_info pgxc_get_csn pgxc_get_stat_dirty_tables pgxc_get_thread_wait_status pgxc_gtm_snapshot_status pgxc_is_committed pgxc_lock_for_backup pgxc_lock_for_sp_database pgxc_lock_for_transfer pgxc_log_comm_status pgxc_max_datanode_size pgxc_node_str pgxc_pool_check pgxc_pool_connection_status pgxc_pool_reload pgxc_prepared_xact pgxc_snapshot_status pgxc_stat_dirty_tables pgxc_unlock_for_sp_database pgxc_unlock_for_transfer pgxc_version array_extend prepare_statement_status remote_rto_stat dbe_perf.global_slow_query_info dbe_perf.global_slow_query_info_bytime dbe_perf.global_slow_query_history pg_stat_get_pooler_status pg_stat_get_wlm_node_resource_info pg_stat_get_wlm_session_info_internal DBE_PERF.get_wlm_controlgroup_ng_config() DBE_PERF.get_wlm_user_resource_runtime() global_space_shrink pg_pool_validate gs_stat_ustore table_skewness(text) table_skewness(text, text, text) local_segment_space_info pg_stat_segment_extent_usage GS_ALL_NODEGROUP_CONTROL_GROUP_INFO(text) create_wlm_operator_info(int flag) create_wlm_session_info(int flag) pg_stat_get_wlm_session_info(int flag) gs_wlm_get_resource_pool_info(int) gs_wlm_get_all_user_resource_info() gs_wlm_get_workload_records() gs_wlm_persistent_user_resource_info() gs_wlm_session_respool(bigint) gs_total_nodegroup_memory_detail gs_wlm_user_resource_info(name text) create_wlm_instance_statistics_info pg_stat_get_session_wlmstat pg_stat_get_wlm_ec_operator_info pg_stat_get_wlm_instance_info pg_stat_get_wlm_instance_info_with_cleanup pg_stat_get_wlm_statistics pg_stat_get_wlm_operator_info pg_stat_get_wlm_realtime_ec_operator_info pg_stat_get_wlm_realtime_operator_info pg_stat_get_wlm_realtime_session_info get_node_modulo check_murmurhash_route_node gs_redis_set_bucketxid(bigint) 父主题: 函数和操作符
  • shared_preload_libraries 参数说明:此参数用于声明一个或者多个在服务器启动的时候预先装载的共享库,多个库名称之间用逗号分隔,仅sysadmin用户可以访问。比如'$libdir/mylib'会在加载标准库目录中的库文件之前预先加载mylib.so(某些平台上可能是mylib.sl)库文件。 可以用这个方法预先装载GaussDB的存储过程库,通常是使用'$libdir/plXXX'语法。XXX只能是pgsql、perl、tcl、python之一。 通过预先装载一个共享库并在需要的时候初始化他,可以避免第一次使用这个库的加载时间。但是启动每个服务器进程的时间可能会增加,即使进程从来没有使用过这些库。因此建议对那些将被大多数会话使用的库才使用这个选项。 该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 如果被声明的库不存在,GaussDB服务将会启动失败。 每一个支持GaussDB的库都有一个特殊的标记用于保证兼容性。因此,不支持GaussDB的库不能用这种方法加载。 取值范围:字符串 默认值:security_plugin
  • GS_FILE_STAT GS_FILE_STAT视图通过对数据文件I/O的统计,反映数据的I/O性能,用以发现I/O操作异常等性能问题。 表1 GS_FILE_STAT字段 名称 类型 描述 filenum oid 文件标识。 dbid oid 数据库标识。 spcid oid 表空间标识。 phyrds bigint 读物理文件的数目。 phywrts bigint 写物理文件的数目。 phyblkrd bigint 读物理文件块的数目。 phyblkwrt bigint 写物理文件块的数目。 readtim bigint 读文件的总时长,单位微秒。 writetim bigint 写文件的总时长,单位微秒。 avgiotim bigint 读写文件的平均时长,单位微秒。 lstiotim bigint 最后一次读文件时长,单位微秒。 miniotim bigint 读写文件的最小时长,单位微秒。 maxiowtm bigint 读写文件的最大时长,单位微秒。 父主题: 其他系统视图
  • REPLICATION_STAT REPLICATION_STAT用于描述日志同步状态信息,如发起端发送日志位置、接收端接收日志位置等,如表1所示。 表1 REPLICATION_STAT字段 名称 类型 描述 pid bigint 线程的PID。 usesysid oid 用户系统ID。 usename name 用户名。 application_name text 程序名称。 client_addr inet 客户端地址。 client_hostname text 客户端名。 client_port integer 客户端端口。 backend_start timestamp with time zone 程序启动时间。 state text 日志复制的状态: 追赶状态 一致的流状态 sender_sent_location text 发送端发送日志位置。 receiver_write_location text 接收端write日志位置。 receiver_flush_location text 接收端flush日志位置。 receiver_replay_location text 接收端replay日志位置。 sync_priority integer 同步复制的优先级(0表示异步)。 sync_state text 同步状态: 异步复制 同步复制 潜在同步者 父主题: Utility
  • V$SYSSTAT V$SYSSTAT视图显示自数据库实例启动那刻起就开始累计的全实例的资源使用情况。默认只有初始用户或监控管理员可以访问,其它用户需授予MONADMIN权限才可访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 V$SYSSTAT字段 名称 类型 描述 statistic# numeric 统计编号。 name character varying(64) 统计名称。 class numeric 暂不支持,值为NULL。 value numeric 统计值。 stat_id numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为0。 父主题: 其他系统视图
  • ADM_TYPES ADM_TYPES视图用于描述数据库中的所有对象类型。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_TYPES字段 名称 类型 描述 owner character varying(128) 类型的所有者。 type_name character varying(128) 类型名称。 type_oid raw 类型的标识符(OID)。 typecode character varying(128) 类型的类型代码。 attributes numeric 类型中的属性数。 methods numeric 暂不支持,值为0。 predefined character varying(3) 表示该类型是否是内置类型。 incomplete character varying(3) 表示该类型是否是不完整类型。 final character varying(3) 暂不支持,值为NULL。 instantiable character varying(3) 暂不支持,值为NULL。 persistable character varying(3) 暂不支持,值为NULL。 supertype_owner character varying(128) 暂不支持,值为NULL。 supertype_name character varying(128) 暂不支持,值为NULL。 local_attributes numeric 暂不支持,值为NULL。 local_methods numeric 暂不支持,值为NULL。 typeid raw 暂不支持,值为NULL。 父主题: 其他系统视图
  • JDBC接口参考 JDBC接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述,若涉及其他接口可参考JDK1.8(软件包)/JDBC4.2中相关内容。 java.sql.Connection java.sql.CallableStatement java.sql.DatabaseMetaData java.sql.Driver java.sql.PreparedStatement java.sql.ResultSet java.sql.ResultSetMetaData java.sql.Statement javax.sql.ConnectionPoolDataSource javax.sql.DataSource javax.sql.PooledConnection javax.naming.Context javax.naming.spi.InitialContextFactory CopyManager PGReplicationConnection PGReplicationStream ChainedStreamBuilder ChainedCommonStreamBuilder PGobject 父主题: 基于JDBC开发
  • ADM_SEQUENCES ADM_SEQUENCES视图显示数据库中所有序列的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SEQUENCES字段 名称 类型 描述 sequence_owner character varying(64) 序列的所有者。 sequence_name character varying(64) 序列名称。 min_value int16 序列的最小值。 max_value int16 序列的最大值。 increment_by int16 序列的递增值。 last_number int16 上一序列的值。 cache_size int16 序列磁盘缓存大小。 cycle_flag character(1) 序列是否是循环序列。取值范围: Y:循环序列。 N:不是循环序列。 父主题: 其他系统视图
  • 数据类型介绍 高级包DBE_DESCRIBE内置了两个数据类型,这两个数据类型使用自定义类型创建,用于DESCRIBE_PROCEDURE接口的返回值。 DBE_DESCRIBE.NUMBER_TABLE 该类型是NUMBER的TABLE类型,通过TABLE OF语法实现。 DBE_DESCRIBE.NUMBER_TABLE类型的原型为: 1 CREATE TYPE DBE_DESCRIBE.NUMBER_TABLE AS TABLE OF NUMBER INDEX BY INTEGER; DBE_DESCRIBE.VARCHAR2_TABLE 该类型是VARCHAR2的TABLE类型,通过TABLE OF语法实现。 DBE_DESCRIBE.VARCHAR2_TABLE类型的原型为: 1 CREATE TYPE DBE_DESCRIBE.VARCHAR2_TABLE AS TABLE OF VARCHAR2(30) INDEX BY INTEGER;
  • MY_TAB_STATISTICS MY_TAB_STATISTICS视图显示数据库中有关当前用户拥有的表的统计信息。所有用户均可访问该视图,该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_TAB_STATISTICS字段 名称 类型 描述 table_name character varying(128) 表名。 partition_name character varying(128) 暂不支持,值为NULL。 partition_position numeric 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 subpartition_position numeric 暂不支持,值为NULL。 object_type character varying(12) 对象类型: TABLE PARTITION SUBPARTITION num_rows numeric 对象中的行数。 blocks numeric 暂不支持,值为NULL。 empty_blocks numeric 暂不支持,值为NULL。 avg_space numeric 暂不支持,值为NULL。 chain_cnt numeric 暂不支持,值为NULL。 avg_row_len integer 平均行长,包括行开销。 avg_space_freelist_blocks numeric 暂不支持,值为NULL。 num_freelist_blocks numeric 暂不支持,值为NULL。 avg_cached_blocks numeric 暂不支持,值为NULL。 avg_cache_hit_ratio numeric 暂不支持,值为NULL。 im_imcu_count numeric 暂不支持,值为NULL。 im_block_count numeric 暂不支持,值为NULL。 im_stat_update_time timestamp(6) without time zone 暂不支持,值为NULL。 scan_rate numeric 暂不支持,值为NULL。 sample_size numeric 分析表格时使用的样本量。 last_analyzed timestamp with time zone 最近分析表的日期。数据库重启后,数据会丢失。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 stattype_locked character varying(5) 暂不支持,值为NULL。 stale_stats character varying(7) 暂不支持,值为NULL。 notes character varying(25) 暂不支持,值为NULL。 scope character varying(7) 暂不支持,默认值SHARED。 父主题: 其他系统视图
  • DB_SOURCE DB_SOURCE视图显示当前用户可访问的存储过程、函数、触发器、包的定义信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_SOURCE字段 名称 类型 描述 owner name 对象的所有者。 name name 对象名字。 type name 对象类型。取值范围:function、package、package body、procedure、trigger。 line numeric 此行在定义信息中的行号。 text text 存储对象的文本来源。 origin_con_id character varying(256) 暂不支持,值为0。 父主题: 其他系统视图
  • macaddr函数 函数trunc(macaddr)返回一个MAC地址,该地址的最后三个字节设置为零。 trunc(macaddr) 描述:把后三个字节置为零。 返回类型:macaddr 示例: 1 2 3 4 5 gaussdb=# SELECT trunc(macaddr '12:34:56:78:90:ab') AS RESULT; result ------------------- 12:34:56:00:00:00 (1 row)
  • cidr和inet函数 函数abbrev,host,text主要是为了提供可选的显示格式。 abbrev(inet) 描述:缩写显示格式文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT abbrev(inet '10.1.0.0/16') AS RESULT; result ------------- 10.1.0.0/16 (1 row) abbrev(cidr) 描述:缩写显示格式文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT abbrev(cidr '10.1.0.0/16') AS RESULT; result --------- 10.1/16 (1 row) broadcast(inet) 描述:网络广播地址。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT broadcast('192.168.1.5/24') AS RESULT; result ------------------ 192.168.1.255/24 (1 row) family(inet) 描述:抽取地址族,4为IPv4。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT family('127.0.0.1') AS RESULT; result -------- 4 (1 row) host(inet) 描述:将主机地址类型抽出为文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT host('192.168.1.5/24') AS RESULT; result ------------- 192.168.1.5 (1 row) hostmask(inet) 描述:为网络构造主机掩码。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT hostmask('192.168.23.20/30') AS RESULT; result --------- 0.0.0.3 (1 row) masklen(inet) 描述:抽取子网掩码长度。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT masklen('192.168.1.5/24') AS RESULT; result -------- 24 (1 row) netmask(inet) 描述:为网络构造子网掩码。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT netmask('192.168.1.5/24') AS RESULT; result --------------- 255.255.255.0 (1 row) network(inet) 描述:抽取地址的网络部分。 返回类型:cidr 示例: 1 2 3 4 5 gaussdb=# SELECT network('192.168.1.5/24') AS RESULT; result ---------------- 192.168.1.0/24 (1 row) set_masklen(inet, int) 描述:为inet数值设置子网掩码长度。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT set_masklen('192.168.1.5/24', 16) AS RESULT; result ---------------- 192.168.1.5/16 (1 row) set_masklen(cidr, int) 描述:为cidr数值设置子网掩码长度。 返回类型:cidr 示例: 1 2 3 4 5 gaussdb=# SELECT set_masklen('192.168.1.0/24'::cidr, 16) AS RESULT; result ---------------- 192.168.0.0/16 (1 row) text(inet) 描述:把IP地址和掩码长度抽取为文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT text(inet '192.168.1.5') AS RESULT; result ---------------- 192.168.1.5/32 (1 row)
  • 示例 --创建用户jim,登录密码为********。 gaussdb=# CREATE USER jim PASSWORD '********'; --修改用户jim的登录密码。 gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********'; --将enable_seqscan的值设置为on, 设置成功后,在下一会话中生效。 gaussdb=# ALTER USER jim SET enable_seqscan TO on; --重置jim的enable_seqscan参数。 gaussdb=# ALTER USER jim RESET enable_seqscan; --锁定jim账户。 gaussdb=# ALTER USER jim ACCOUNT LOCK; --解锁jim账户。 gaussdb=# ALTER USER jim ACCOUNT UNLOCK; --修改用户名。 gaussdb=# ALTER USER jim RENAME TO lisa; --删除用户。 gaussdb=# DROP USER lisa CASCADE;
  • 语法格式 修改用户的权限等信息。 ALTER USER user_name [ [ WITH ] option [ ... ] ]; ALTER USER user_name RENAME TO new_name; ALTER USER user_name [ IN DATABASE database_name ] SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT}; ALTER USER user_name [ IN DATABASE database_name ] RESET {configuration_parameter|ALL}; 其中option子句为。 { CREATEDB | NOCREATEDB } | { CREATEROLE | NOCREATEROLE } | { INHERIT | NOINHERIT } | { AUDITADMIN | NOAUDITADMIN } | { SYSADMIN | NOSYSADMIN } | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | { USEFT | NOUSEFT } | { LOGIN | NOLOGIN } | { REPLICATION | NOREPLICATION } | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [EXPIRED] | DISABLE | EXPIRED } | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE } | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | ACCOUNT { LOCK | UNLOCK } | PGUSER 修改用户名。 ALTER USER user_name RENAME TO new_name; 修改与用户关联的指定会话参数值。 ALTER USER user_name [ IN DATABASE database_name ] SET configuration_parameter {{ TO | = } { value | DEFAULT }|FROM CURRENT}; 重置与用户关联的指定会话参数值。 ALTER USER user_name [ IN DATABASE database_name ] RESET {configuration_parameter|ALL};
  • PG_OPFAMILY PG_OPFAMILY系统表定义操作符族。 每个操作符族是一个操作符和相关支持例程的集合,其中的例程实现为一个特定的索引访问方式指定的语义。另外,族中的操作符都是“兼容的”,通过由访问方式指定的方法。操作符族的概念允许交叉数据类型操作符和索引一起使用,并且合理的使用访问方式的语义的知识。 表1 PG_OPFAMILY字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 opfmethod oid PG_AM.oid 操作符族使用的索引方法。 opfname name - 这个操作符族的名称。 opfnamespace oid PG_NAMESPACE.oid 这个操作符的名称空间。 opfowner oid PG_AUTHID.oid 操作符族的所有者。 定义一个操作符族的大多数信息不在它的PG_OPFAMILY行里面,而是在相关的行PG_AMOP,PG_AMPROC和PG_OPCLASS里。 父主题: 其他系统表
共100000条