华为云用户手册

  • DB_COLL_TYPES DB_COLL_TYPES视图显示当前用户可访问的所有集合类型的信息。默认所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_COLL_TYPES字段 名称 类型 描述 owner character varying(128) 集合的所有者。 type_name character varying(128) 集合的名称。 coll_type character varying(128) 集合的描述。 upper_bound numeric 暂不支持,值为NULL。 elem_type_mod character varying(7) 元素的类型修饰。 elem_type_owner character varying(128) 集合基于的元素类型的所有者。该值主要用于用户定义的类型。 elem_type_name character varying(128) 集合所依据的数据类型或用户定义类型的名称。 length numeric 暂不支持,值为NULL。 precision numeric 暂不支持,值为NULL。 scale numeric 暂不支持,值为NULL。 character_set_name character varying(44) 暂不支持,值为NULL。 elem_storage character varying(7) 暂不支持,值为NULL。 nulls_stored character varying(3) 暂不支持,值为NULL。 char_used character varying(1) 暂不支持,值为NULL。 父主题: 其他系统视图
  • macaddr macaddr类型存储MAC地址,也就是以太网卡硬件地址(尽管MAC地址还用于其它用途)。可以接受下列格式: '08:00:2b:01:02:03' '08-00-2b-01-02-03' '08002b:010203' '08002b-010203' '0800.2b01.0203' '08002b010203' 以上示例表示同一个地址。对于数据位a到f,不区分大小写,输出时都是以第一种形式展示。
  • inet inet类型在一个数据区域内保存主机的IPv4或IPv6地址,以及一个可选子网。主机地址中网络地址的位数表示子网(“子网掩码”)。如果子网掩码是32并且地址是IPv4,则这个值不表示任何子网,只表示一台主机。在IPv6里,地址长度是128位,因此128位表示唯一的主机地址。 该类型的输入格式是address/y,address表示IPv4或者IPv6地址,y是子网掩码的二进制位数。如果省略/y,则子网掩码对IPv4是32,对IPv6是128,所以该值表示只有一台主机。如果该值表示只有一台主机,/y将不会显示。 inet和cidr类型之间的基本区别是inet接受子网掩码,而cidr不接受。
  • cidr cidr(无类别域间路由,Classless Inter-Domain Routing)类型,保存一个IPv4或IPv6网络地址,如表2所示。声明网络格式为address/y,address表示IPv4或者IPv6地址,y表示子网掩码的二进制位数。如果省略y,则掩码部分使用已有类别的网络编号系统进行计算,但要求输入的数据已经包括了确定掩码所需的所有字节。 表2 cidr类型输入举例 cidr输入 cidr输出 abbrev(cidr) 192.168.100.128/25 192.168.100.128/25 192.168.100.128/25 192.168/24 192.168.0.0/24 192.168.0/24 192.168/25 192.168.0.0/25 192.168.0.0/25 192.168.1 192.168.1.0/24 192.168.1/24 192.168 192.168.0.0/24 192.168.0/24 10.1.2 10.1.2.0/24 10.1.2/24 10.1 10.1.0.0/16 10.1/16 10 10.0.0.0/8 10/8 10.1.2.3/32 10.1.2.3/32 10.1.2.3/32 2001:4f8:3:ba::/64 2001:4f8:3:ba::/64 2001:4f8:3:ba::/64 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 2001:4f8:3:ba:2e0:81ff:fe22:d1f1/128 2001:4f8:3:ba:2e0:81ff:fe22:d1f1 ::ffff:127.0.0.0/120 ::ffff:127.0.0.0/120 ::ffff:127.0.0.0/120 ::ffff:127.0.0.0/128 ::ffff:127.0.0.0/128 ::ffff:127.0.0.0/128
  • PG_AUTHID PG_AUTHID系统表存储有关数据库认证标识符(角色)的信息。角色把“用户”的概念包含在内。一个用户实际上就是一个rolcanlogin标志被设置的角色。任何角色(不管rolcanlogin设置与否)都能够把其他角色作为成员。 在一个集群中只有一份pg_authid,不是每个数据库有一份。需要有系统管理员权限才可以访问此系统表。 表1 PG_AUTHID字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 rolname name 角色名称。 rolsuper boolean 角色是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示不是。 rolinherit boolean 角色是否自动继承其所属角色的权限。 t(true):表示自动继承。 f(false):表示不自动继承。 rolcreaterole boolean 角色是否可以创建更多角色。 t(true):表示可以。 f(false):表示不可以。 rolcreatedb boolean 角色是否可以创建数据库。 t(true):表示可以。 f(false):表示不可以。 rolcatupdate boolean 角色是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示可以。 f(false):表示不可以。 rolcanlogin boolean 角色是否可以登录,也就是说,这个角色可以给予会话认证标识符。 t(true):表示可以。 f(false):表示不可以。 rolreplication boolean 角色是否具有复制权限。 t(true):表示有。 f(false):表示没有。 rolauditadmin boolean 角色是否具有审计管理员权限。 t(true):表示有。 f(false):表示没有。 rolsystemadmin boolean 角色是否具有系统管理员权限。 t(true):表示有。 f(false):表示没有。 rolconnlimit integer 对于可以登录的角色,限制其最大并发连接数量。 -1 表示没有限制。 rolpassword text 密码密文,如果没有密码,则为NULL。 rolvalidbegin timestamp with time zone 账户的有效开始时间,如果没有开始时间,则为NULL。 rolvaliduntil timestamp with time zone 账户的有效结束时间,如果没有结束时间,则为NULL。 rolrespool name 用户所能够使用的resource pool。 roluseft boolean 角色是否可以操作外表。 t(true):表示可以。 f(false):表示不可以。 rolparentid oid 用户所在组用户的OID。 roltabspace text 用户数据表的最大空间限额。 rolkind "char" 特殊用户种类。 n:表示普通用户。 p:表示永久用户。 roltempspace text 用户临时表的最大空间限额,单位 KB。 rolspillspace text 用户执行作业时下盘数据的最大空间限额,单位 KB。 rolexcpdata text 用户可以设置的查询规则(当前未使用)。 rolmonitoradmin boolean 角色是否具有监控管理员权限。 t(true):表示有。 f(false):表示没有。 roloperatoradmin boolean 角色是否具有运维管理员权限。 t(true):表示有。 f(false):表示没有。 rolpolicyadmin boolean 角色是否具有安全策略管理员权限。 t(true):表示有。 f(false):表示没有。 父主题: 连接和认证
  • PG_TOTAL_MEMORY_DETAIL PG_TOTAL_MEMORY_DETAIL视图显示某个数据库节点内存使用情况。具体字段信息如表1所示。 表1 PG_TOTAL_MEMORY_DETAIL字段 名称 类型 描述 nodename text 节点名称。 memorytype text 内存的名称。 memorymbytes integer 内存使用的大小,单位为MB。 父主题: 其他系统视图
  • SESSION_MEMORY 统计Session级别的内存使用情况,包含执行作业在当前节点上GaussDB线程和Stream线程分配的所有内存,单位为MB,如表1所示。 表1 SESSION_MEMORY字段 名称 类型 描述 sessid text 线程启动时间+线程标识。 init_mem integer 当前正在执行作业进入执行器前已分配的内存。 used_mem integer 当前正在执行作业已分配的内存。 peak_mem integer 当前正在执行作业已分配的内存峰值。 父主题: Session/Thread
  • 注意事项 在非阻塞连接上发送任何命令或数据之后,调用PQflush。如果返回1,则等待套接字变为读或写就绪。如果为写就绪状态,则再次调用PQflush。如果已经读到,调用PQconsumeInput,然后再次调用PQflush。重复,直到PQflush返回0。(必要检查读就绪并使用PQconsumeInput耗尽输入,因为服务器可能会阻止尝试向客户端发送数据(例如NOTICE消息),并且在客户端读取它的数据之前不会读取客户端的数据。)一旦PQflush返回0,等待套接字准备好,然后按照上面描述读取响应。
  • PG_STAT_DATABASE_CONFLICTS PG_STAT_DATABASE_CONFLICTS视图显示数据库冲突状态的统计信息。具体字段信息如表1所示。 表1 PG_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datid oid 数据库标识。 datname name 数据库名称。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: 其他系统视图
  • 事务管理 在ecpg缺省模式下,语句只有在EXEC SQL COMMIT发出的时候才被提交,嵌入的SQL接口也支持事务的自动提交(通过EXEC SQL SET AUTOCOMMIT TO ON语句设置自动提交)。在自动提交模式下,每条命令都是自动提交的,除非它们包围在一个明确的事务块里。自动提交模式可以用EXEC SQL SET AUTOCOMMIT TO OFF语句关闭。 常见事务管理命令如下: EXEC SQL COMMIT:提交正在进行的事务。 EXEC SQL ROLLBACK:回滚正在进行的事务。 EXEC SQL SET AUTOCOMMIT TO ON:启动自动提交模式。 EXEC SQL SET AUTOCOMMIT TO OFF:关闭自动提交模式,缺省模式。 父主题: 执行SQL命令
  • backend_flush_after 参数说明:设置backend线程刷页个数超过设定的阈值时,告知操作系统开始将操作系统缓存中的页面异步刷盘。GaussDB中,磁盘页大小为8KB。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~256(0表示关闭异步刷盘功能),单位页面(8K)。可以设置页面的数量或字节的大小,例如,取值64或512KB,表示backend线程连续写64个磁盘页,即64*8=512KB磁盘空间后会进行异步刷盘。 默认值:0
  • checkpoint_flush_after 参数说明:设置checkpointer线程刷页个数超过设定的阈值时,告知操作系统开始将操作系统缓存中的页面异步刷盘。GaussDB中,磁盘页大小为8KB。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~256(0表示关闭异步刷盘功能),单位页面(8K)。可以设置页面的数量或字节的大小,例如,取值32或256KB,表示checkpointer线程连续写32个磁盘页,即32*8=256KB磁盘空间后会进行异步刷盘。 默认值:256KB(即32个页面)
  • bgwriter_flush_after 参数说明:设置background writer线程刷页个数超过设定的阈值时,告知操作系统开始将操作系统缓存中的页面异步刷盘。GaussDB中,磁盘页大小为8KB。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~256(0表示关闭异步刷盘功能),单位页面(8K)。可以设置页面的数量或字节的大小,例如,取值64或512KB,表示background writer线程连续写64个磁盘页,即64*8=512KB磁盘空间后会进行异步刷盘。 默认值:512KB(即64个页面)
  • PG_AMPROC PG_AMPROC系统表存储有关与访问方法操作符族相关联的支持过程的信息。每个属于某个操作符族的支持过程都占有一行。 表1 PG_AMPROC字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 amprocfamily oid PG_OPFAMILY.oid 该项的操作符族。 amproclefttype oid PG_TYPE.oid 相关操作符的左输入数据类型。 常见的数据类型请参见数据类型。 amprocrighttype oid PG_TYPE.oid 相关操作符的右输入数据类型。 常见的数据类型请参见数据类型。 amprocnum smallint - 支持过程编号。 amproc regproc PG_PROC.proname 过程的OID。 amproclefttype和amprocrighttype字段的习惯解释,标识一个特定支持过程支持的操作符的左和右输入类型。对于某些访问方式,匹配支持过程本身的输入数据类型,对其他的则不这样。有一个对索引的“缺省”支持过程的概念,amproclefttype和amprocrighttype都等于索引操作符类的opcintype。 父主题: 其他系统表
  • 示例 --向gs_global_config系统表中插入单个弱口令。 gaussdb=# CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('********'); --查看gs_global_config系统表现有的弱口令。 gaussdb=# SELECT * FROM gs_global_config WHERE NAME LIKE 'weak_password'; name | value -----------------+-------------- weak_password | ******** (1 rows) --清空gs_global_config系统表中所有弱口令。 gaussdb=# DROP WEAK PASSWORD DICTIONARY; --查看现有弱口令。 gaussdb=# SELECT * FROM gs_global_config WHERE NAME LIKE 'weak_password'; name | value ------+------- (0 rows)
  • 示例 --创建一个兼容性为ORA的数据库。 gaussdb=# CREATE DATABASE ora_test_db DBCOMPATIBILITY 'ORA'; --切换数据库。 gaussdb=# \c ora_test_db --创建拥有系统管理员权限的用户。 ora_test_db=# CREATE USER user1 WITH SYSADMIN PASSWORD '********'; ora_test_db=# SET ROLE user1 PASSWORD '********'; --创建私有dblink。 ora_test_db=# CREATE DATABASE LINK private_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除私有dblink。 ora_test_db=# DROP DATABASE LINK private_dblink; --创建公共dblink。 ora_test_db=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除公共dblink。 ora_test_db=# DROP PUBLIC DATABASE LINK public_dblink; --删除创建出的用户。 ora_test_db=# RESET ROLE; ora_test_db=# DROP USER user1; --切换回初始数据库,并删除测试数据库。请用真实的数据库名替换postgres。 ora_test_db=# \c postgres gaussdb=# DROP DATABASE ora_test_db;
  • WLM_CLUSTER_RESOURCE_RUNTIME WLM_CLUSTER_RESOURCE_RUNTIME视图显示的是所有DN资源的汇总信息字段,如表1所示。 表1 WLM_CLUSTER_RESOURCE_RUNTIME字段 名称 类型 描述 min_mem_util integer DN最小内存使用率。 max_mem_util integer DN最大内存使用率。 min_cpu_util integer DN最小CPU使用率。 max_cpu_util integer DN最大CPU使用率。 min_io_util integer DN最小I/O使用率。 max_io_util integer DN最大I/O使用率。 used_mem_rate integer 物理节点最大内存使用率。 父主题: Workload Manager
  • MY_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS视图显示了当前用户拥有的分区表或分区索引的分区键列的相关信息。该视图所有用户可访问,仅可查看当前用户所属信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_PART_KEY_COLUMNS字段 名称 类型 描述 name character varying(128) 分区表名或索引名。 object_type character(5) 对象类型。 若分区为分区表,此列为table。 若分区为分区索引,此列为index。 column_name character varying(4000) 分区表或索引的键列名。 column_position numeric 列在分区中的位置。 collated_column_id numeric 暂不支持,值为NULL。 父主题: 分区表
  • PG_SHADOW PG_SHADOW视图显示了所有在PG_AUTHID中标记了rolcanlogin的角色的属性,只有系统管理员权限才可以访问此系统视图。 该视图的信息与PG_USER是基本一致的,区别在于后者对密码做了敏感化处理,统一显示为********。 表1 PG_SHADOW字段 名称 类型 引用 描述 usename name PG_AUTHID.rolname 用户名。 usesysid oid PG_AUTHID.oid 用户的ID。 usecreatedb boolean - 用户是否可以创建数据库。 t(true):表示是。 f(false):表示否。 usesuper boolean - 用户是否是系统管理员。 t(true):表示是。 f(false):表示否。 usecatupd boolean - 用户是否可以更新视图。即使是系统管理员,如果这个字段值不是t,也不能更新视图。 t(true):表示是。 f(false):表示否。 userepl boolean - 用户是否可以复制数据流。 t(true):表示是。 f(false):表示否。 passwd text PG_AUTHID.rolpassword 密码密文,如果没有密码,则为NULL。 valbegin timestamp with time zone - 账户的有效开始时间。如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone - 账户的有效结束时间。如果没有设置有效结束时间,则为NULL。 respool name - 用户所在的资源池。 parent oid - 父用户OID。 spacelimit text - 永久表存储空间的限额,单位KB。 useconfig text[] PG_DB_ROLE_SETTING.setconfig 运行时配置项的默认值。 tempspacelimit text - 临时表存储空间的限额,单位KB。 spillspacelimit text - 算子落盘空间的限额,单位KB。 usemonitoradmin boolean - 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean - 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean - 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 用户和权限管理
  • 注意事项 PQprepare创建一个为PQexecPrepared执行用的预备语句,本特性支持命令的重复执行,不需要每次都进行解析和规划。PQprepare仅在协议3.0及以后的连接中支持,使用协议2.0时,PQprepare将失败。 该函数从查询字符串创建一个名为stmtName的预备语句,该查询字符串必须包含一个SQL命令。stmtName可以是""来创建一个未命名的语句,在这种情况下,任何预先存在的未命名的语句都将被自动替换,否则,如果在当前会话中已经定义了语句名称,那么这就是一个错误。如果使用了任何参数,那么在查询中将它们称为$1,$2等。nParams是在paramTypes[]数组中预先指定类型的参数的数量。(当nParams为0时,数组指针可以为NULL),paramTypes[]通过OID指定要分配给参数符号的数据类型。如果paramTypes为NULL,或者数组中的任何特定元素为零,服务器将按照对非类型化字面字符串的相同方式为参数符号分配数据类型。另外,查询可以使用数字高于nParams的参数符号,还将推断这些符号的数据类型。 通过执行SQLPREPARE语句,还可以创建与PQexecPrepared一起使用的预备语句。此外,虽然没有用于删除预备语句的libpq函数,但是SQL DEALLOCATE语句可用于此目的。
  • 注意事项 TIMECAPSULE TABLE语句的用法主要分为两大类:闪回旧版本数据和从回收站中闪回。 TO TIMECAPSULE和TO CSN能够将表闪回到过去的某个版本,当前仅支持Ustore存储引擎。 回收站记录了DROP和TRUNCATE的对象数据。TO BEFORE DROP和TO BEFORE TRUNCATE就是从回收站中闪回,当前支持Ustore以及Astore存储引擎。 不支持闪回表的对象类型:系统表、DFS表、全局临时表、本地临时表、UNLOGGED表、序列表、hashbucket表、密态表。 闪回点和当前点之间,执行过修改表结构或影响物理存储的语句(DDL、DCL、VACUUM FULL),则闪回失败。 执行闪回删除需要用户具有如下权限:用户必须具有垃圾对象所在SCHEMA的CREATE和USAGE权限,并且用户必须是SCHEMA的所有者或者是垃圾对象的所有者。 执行闪回TRUNCATE需要用户具有如下权限:用户必须具有垃圾对象所在SCHEMA的CREATE和USAGE权限,并且用户必须是SCHEMA的所有者或者是垃圾对象的所有者,另外用户必须具有垃圾对象的TRUNCATE权限。 不适用闪回DROP/TRUNCATE功能的场景或表: 回收站关闭场景:enable_recyclebin = off。 系统处于维护态(xc_maintenance_mode = on)或从不支持的基线版本升级到支持的版本的升级场景。 多对象删除场景:DROP/TRUNCATE TABLE命令同时指定多个对象。 系统表、DFS表、全局临时表、本地临时表、UNLOGGED表、序列表、hashbucket表、密态表。 回收站对象被清理后无法闪回DROP/TRUNCATE,recyclebin_retention_time参数用于设置回收站对象保留时间。 不支持扩缩容场景:扩容重分布时会强制将回收站中的数据清空,扩容期间,DROP的对象不会放入回收站。 回收站对象禁止DML、DCL、DDL等写操作,不支持DQL查询操作。 TRUNCATE表和闪回TRUNCATE操作之间,执行过修改表结构或影响物理文件的语句(DDL、DCL、VACUUM FULL、增加/删除/切割/合成等分区操作),闪回失败。 整表删除或截断时,分区会随着整表放入回收站,单个删除的分区不支持放入回收站,避免破坏数据一致性。 如果有在线索引残留(存在未创建的节点,在该节点上搜索不到该索引),DROP表时会报错,需要清理残留数据才能DROP成功,将对象放入回收站。 如果表依赖的对象为外部对象,则采用物理删除,不将表放入回收站。
  • 参数说明 schema 指定模式包含的表。如果缺省,则为当前模式。 table_name 指定表名。 TO CSN 指定要返回表的时间点对应的事务提交序列号(CSN)。expr必须计算一个数字,代表有效的CSN。 说明:GTM-Free场景各节点使用本地CSN,没有全局统一CSN号,暂不支持使用TO CSN方式进行闪回操作。 TO TIMESTAMP 指定要返回表的时间点对应的时间戳。expr必须计算一个过去有效的时间戳(使用TO_TIMESTAMP函数将字符串转换为时间类型)。表将被闪回到指定时间戳大约3秒内的时间点。 说明:闪回点过旧时,因旧版本被回收导致无法获取旧版本,会导致闪回失败并报错:Restore point too old。 TO BEFORE DROP 使用这个子句检索回收站中已删除的表及其子对象。 你可以指定原始用户指定的表的名称,或对象删除时数据库分配的系统生成名称。 回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,那么数据库检索指定的对象。使用“SELECT * FROM gs_recyclebin;”语句查看回收站中的内容。 如果指定了用户指定的名称,且如果回收站中包含多个该名称的对象,然后数据库检索回收站中最近移动的对象。如果想要检索更早版本的表,你可以这样做: 指定你想要检索的表的系统生成名称。 执行TIMECAPSULE TABLE ... TO BEFORE DROP语句,直到你要检索的表。 恢复DROP表时,只恢复基表名,其他子对象名均保持回收站对象名。用户可根据需要,执行DDL命令手工调整子对象名。 回收站对象不支持DML、DCL、DDL等写操作,不支持DQL查询操作(后续支持)。 recyclebin_retention_time配置参数用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 RENAME TO 为从回收站中检索的表指定一个新名称。 TRUNCATE 闪回到TRUNCATE之前。
  • 示例 闪回到某个时间点 需要设置undo_retention_time参数,用于设置旧版本undo的保留时间。 参数使用请联系管理员处理。 --建表并插入数据。 gaussdb=# CREATE TABLE tbl_test(c1 int, c2 int) with(storage_type = ustore) DISTRIBUTE BY REPLICATION; gaussdb=# INSERT INTO tbl_test VALUES (1,1),(2,2),(3,3); --查询当前时间和全局所有节点上的next_csn。 gaussdb=# SELECT now(); now ------------------------------- 2023-11-27 17:06:34.840698+08 (1 row) gaussdb=# SELECT int8in(xidout(next_csn)) FROM gs_get_next_xid_csn(); int8in -------- 25391 25391 25391 25391 25391 25391 (6 row) --修改数据。 gaussdb=# UPDATE tbl_test SET c1=111, c2=222 WHERE c1=1; --查询数据,并将数据闪回至UPDATE之前。 gaussdb=# SELECT * FROM tbl_test; c1 | c2 -----+----- 111 | 222 2 | 2 3 | 3 (3 rows) gaussdb=# TIMECAPSULE table tbl_test TO TIMESTAMP to_timestamp('2023-11-27 17:06:34.840698','YYYY-MM-DD HH24:MI:SS.FF'); --也可使使用如下SQL。 gaussdb=# TIMECAPSULE table tbl_test TO CSN 25391; gaussdb=# SELECT * FROM tbl_test; c1 | c2 ----+---- 2 | 2 3 | 3 1 | 1 (3 rows) --删除。 gaussdb=# DROP TABLE tbl_test PURGE; 从回收站中闪回数据 前提条件: 开启enable_recyclebin参数,启用回收站,参数使用请联系管理员处理。 recyclebin_retention_time参数用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理,参数使用请联系管理员处理。 --建表并插入数据。 gaussdb=# CREATE TABLE tbl_test1(c1 int, c2 varchar(10))with(storage_type = ustore); gaussdb=# INSERT INTO tbl_test1 VALUES (1,'AAA'),(2,'BBB'); --删除表。 gaussdb=# DROP TABLE tbl_test1; --闪回至表删除之前。 gaussdb=# TIMECAPSULE TABLE tbl_test1 TO BEFORE DROP; --查询数据。 gaussdb=# SELECT * FROM tbl_test1; c1 | c2 ----+----- 1 | AAA 2 | BBB (2 rows) --删除表(添加PURGE参数,级联删除回收站该表数据)。 gaussdb=# DROP TABLE tbl_test1 PURGE;
  • PG_STATIO_SYS_INDEXES PG_STATIO_SYS_INDEXES视图显示命名空间中所有系统表索引的I/O状态信息。具体字段信息如表1所示。 表1 PG_STATIO_SYS_INDEXES字段 名称 类型 描述 relid oid 该索引所在的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 父主题: 其他系统视图
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# CALL DBE_ILM_ADMIN.CUSTOMIZE_ILM(1, 15); customize_ilm --------------- (1 row) gaussdb=# SELECT * FROM gs_adm_ilmparameters; name | value --------------------+------- EXECUTION_INTERVAL | 15 RETENTION_TIME | 30 ENABLED | 1 POLICY_TIME | 0 ABS_JOBLIMIT | 10 JOB_SIZELIMIT | 1024 WIND_DURATION | 240 BLOCK_LIMITS | 40 (8 rows)
  • 接口介绍 服务于ILM策略实施,实现ADO的后台调度以及各个限流参数的控制。 表1 DBE_ILM_ADMIN 接口名称 描述 CUSTOMIZE_ILM 根据输入参数定制ILM策略属性。 DISABLE_ILM 关闭后台调度。 ENABLE_ILM 开启后台调度。 当并发量较大时,执行DBE_ILM_ADMIN.DISABLE_ILM或DBE_ILM_ADMIN.ENABLE_ILM可能会提示资源繁忙,稍后重试即可。提示内容为“Resources are busy, please try again later.”。 DBE_ILM_ADMIN.CUSTOMIZE_ILM 根据输入参数定制ILM策略属性,原型为: 1 2 3 DBE_ILM_ADMIN.CUSTOMIZE_ILM ( parameter IN int8, value IN int8); 表2 DBE_ILM_ADMIN.CUSTOMIZE_ILM接口参数说明 参数 描述 parameter 参数序号。 value 参数取值。 表3 DBE_ILM_ADMIN.CUSTOMIZE_ILM接口参数范围 参数编号 参数值 描述 1 EXECUTION_INTERVAL ADO Task的执行频率,单位分钟,默认值15。取值范围为大于等于1小于等于2147483647的整数或浮点数,作用时向下取整。 2 RETENTION_TIME ADO相关历史的保留时长,单位天,默认值30。取值范围为大于等于1小于等于2147483647的整数或浮点数,作用时向下取整。 7 ENABLE 后台调度的状态,不支持在该接口中修改,提示Invalid argument value, ENABLED should be change by calling DBE_ILM_ADMIN.ENABLE_ILM and DBE_ILM_ADMIN.DISABLE_ILM。应使用disable_ilm()和enable()修改。 11 POLICY_TIME 控制ADO的条件单位是天还是秒,秒仅用来做测试用。取值为: 0: ILM_POLICY_IN_DAYS(默认值) 1:ILM_POLICY_IN_SECONDS 12 ABS_JOBLIMIT 控制一次ADO Task最多生成多少个ADO Job。取值范围为大于等于0小于等于2147483647的整数或浮点数,作用时向下取整。 13 JOB_SIZELIMIT 控制单个ADO Job可以处理的最大字节数,单位兆。取值范围为大于等于1小于等于2147483647的整数或浮点数,作用时向下取整。 14 WIND_DURATION 维护窗口持续时长,单位分钟,默认240分钟(4小时);取值范围为大于等于0小于1440(24小时)的整数。 15 BLOCK_LIMITS 控制实例级的行存压缩速率上限,默认是40;取值范围是0到10000(0表示不限制);单位是block/ms,表示每毫秒最多压缩多少个block。 DBE_ILM_ADMIN.DISABLE_ILM 关闭后台调度,原型为: 1 gaussdb=# DBE_ILM_ADMIN.DISABLE_ILM(); DBE_ILM_ADMIN.ENABLE_ILM 开启后台调度,原型为: 1 gaussdb=# DBE_ILM_ADMIN.ENABLE_ILM(); 注意:后台调度生效需要先在管控面打开guc参数:enable_ilm。
  • 注意事项 只有数据库所有者或者被授予了数据库DROP权限的用户有权限执行DROP DATABASE命令,系统管理员默认拥有此权限。 不能对系统默认安装的三个数据库(POSTGRES、TEMPLATE0和TEMPLATE1)执行删除操作,系统做了保护。如果想查看当前服务中有哪几个数据库,可以用gsql的\l命令查看。 如果有用户正在与要删除的数据库连接,则删除操作失败。可以通过视图DV_SESSIONS查看当前有哪些数据库连接。 不能在事务块中执行DROP DATABASE命令。 确定删除数据库前需要执行“CLEAN CONNECTION TO ALL FORCE FOR DATABASE XXXX;”命令,用于强制停止当前已有的用户连接及后台线程,防止因为有后台线程未完全退出而导致的删库失败问题。此处需要注意,强制停止后台线程可能导致当前数据库数据一致性问题,此命令仅在确定删库阶段执行。 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS。 DROP DATABASE一旦执行将无法撤销,请谨慎使用。
  • MY_PART_INDEXES MY_PART_INDEXES视图显示当前用户下分区表索引的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_PART_INDEXES字段 名称 类型 描述 def_tablespace_name name 分区表索引的表空间名称。 index_owner character varying(64) 分区表索引的所有者名称。 index_name character varying(64) 分区表索引的名称。 partition_count bigint 分区表索引的索引分区的个数。 partitioning_key_count integer 分区表的分区键个数。 partitioning_type text 分区表的分区策略。 说明: 当前分区表策略支持范围请参见CREATE TABLE PARTITION。 schema character varying(64) 分区表索引的模式。 table_name character varying(64) 分区表索引所属的分区表名称。 父主题: 分区表
  • GS_GSC_MEMORY_DETAIL GS_GSC_MEMORY_DETAIL视图显示当前节点当前进程的全局SysCache的内存占用情况。仅在开启GSC的模式下有数据。具体字段如表1所示。 由于这个查询是以数据库内存上下文分隔的,因此会缺少一部分内存的统计,缺失的内存统计对应的内存上下文名称为GlobalSysDBCache。 表1 GS_GSC_MEMORY_DETAIL字段 名称 类型 描述 db_id text 数据库id。 totalsize numeric 共享内存总大小,单位Byte。 freesize numeric 共享内存剩余大小,单位Byte。 usedsize numeric 共享内存使用大小,单位Byte。 父主题: 其他系统视图
  • 参数 表1 SQLSetStmtAttr参数 关键字 参数说明 StatementHandle 语句句柄。 Attribute 需设置的属性。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位无符号整型值,或指向以空结束的字符串,二进制缓冲区,或者驱动定义值。如果ValuePtr参数是驱动程序指定值,ValuePtr可能是有符号的整数。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
共100000条