华为云用户手册

  • 获取驱动包 下载表1中的驱动包和驱动包校验包。 表1 驱动包下载列表 版本 下载地址 V2.0-8.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: Linux操作系统软件包完整性校验: 上传软件包和软件包校验包到虚拟机的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB _driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK Windows操作系统软件包完整性校验: 使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。 执行以下命令,获取驱动包的Hash值。 certutil -hashfile {驱动包本地目录}\{驱动包名} sha256 {驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users {驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip 示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256 将2获取到的Hash值和表1中获取到的驱动包校验包的Hash值进行比较。 若一致则通过校验。 若不一致,请重新下载驱动包,重复1~3进行校验。
  • 示例 --建表并插入数据。 gaussdb=# CREATE TABLE test1(c11 INT, c12 VARCHAR); gaussdb=# INSERT INTO test1 VALUES (1,'a'),(2,'b'),(4,'d'); gaussdb=# CREATE TABLE test2(c21 INT, c22 VARCHAR); gaussdb=# INSERT INTO test2 VALUES (1,'a'),(3,'c'); UNION gaussdb=# SELECT * FROM test1 UNION SELECT * FROM test2; c11 | c12 -----+----- 1 | a 4 | d 2 | b 3 | c (4 rows) UNION ALL gaussdb=# SELECT * FROM test1 UNION ALL SELECT * FROM test2; c11 | c12 -----+----- 1 | a 2 | b 4 | d 1 | a 3 | c (5 rows) INTERSECT gaussdb=# SELECT * FROM test1 INTERSECT SELECT * FROM test2; c11 | c12 -----+----- 1 | a (1 row) MINUS gaussdb=# SELECT * FROM test1 MINUS SELECT * FROM test2; c11 | c12 -----+----- 4 | d 2 | b (2 rows) -- 删除。 gaussdb=# DROP TABLE test1,test2;
  • 示例 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --创建表。 gaussdb=# CREATE TABLE tpcds.customer_demographics_t2 ( 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=# START TRANSACTION; --插入数据。 gaussdb=# INSERT INTO tpcds.customer_demographics_t2 VALUES(1,'M', 'U', 'DOCTOR DEGREE', 1200, 'GOOD', 1, 0, 0); gaussdb=# INSERT INTO tpcds.customer_demographics_t2 VALUES(2,'F', 'U', 'MASTER DEGREE', 300, 'BAD', 1, 0, 0); --提交事务,让所有更改永久化。 gaussdb=# COMMIT; --查询数据。 gaussdb=# SELECT * FROM tpcds.customer_demographics_t2; --删除表tpcds.customer_demographics_t2。 gaussdb=# DROP TABLE tpcds.customer_demographics_t2; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds;
  • comm_proxy_attr 参数说明:通信代理库相关参数配置。 该参数仅支持欧拉2.9系统下的集中式ARM单机。 本功能在线程池开启(GUC参数enable_thread_pool取值为on)状态下生效。 配置该参数时需同步配置GUC参数local_bind_address为libos_kni的网卡IP。 参数模板:comm_proxy_attr = '{enable_libnet:true, enable_dfx:false, numa_num:4, numa_bind:[[30,31],[62,63],[94,95],[126,127]]}' 可配置参数说明。 enable_libnet:是否开启用户态协议,取值范围:true、false。 enable_dfx:是否开启通信代理库视图,取值范围:true、false。 numa_num:机器环境中numa的数量,支持2P、4P服务器,取值范围:4、8。 numa_bind:代理线程绑核参数,每个numa两个CPU绑核,共numa_num组,取值范围:[0,cpu数-1]。 参数类型:字符串 参数单位:无 取值范围:长度大于0的字符串。 默认值:"none" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:comm_proxy配置为非“none”值时,需要根据参数说明合理配置,否则无法正常使用该功能。
  • umdk_port 参数说明:当DN主备间通信使用UMDK协议时,主备DN网络通信链路的侦听端口。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值:dataPortBase+15,dataPortBase的值为数据库初次安装时GUC参数port的取值。 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值,不建议用户配置。 设置不当的风险与影响:配置不当可能会导致端口冲突,影响数据库正常启动。 GaussDB数据库 适配UMDK通信协议栈,UMDK能力由操作系统提供和维护。 GaussDB数据库侧默认不会侦听umdk_port,需要在打开GUC参数umdk_enabled,且当前环境硬件和软件支持UMDK协议时,数据库UMDK协议的功能才会开启,相关端口才会被侦听,DN主备开始执行UMS网络协议(UMS为UMDK的网络协议族)。
  • umdk_enabled 参数说明:控制当前数据库主备DN是否开启UMDK功能。若DN主备间通信使用UMDK通信协议,则DN上相关日志关键字为“umdk”,若DN主备间通信使用TCP协议,则记录log日志。目前仅部分场景支持该功能。 参数类型:布尔型 参数单位:无 取值范围: on:开启UMDK功能,若当前数据库实例不支持UMDK网络通信协议,则DN主备间通信走TCP协议;若当前数据库实例支持UMDK网络通信协议,DN主备间通信走UMDK协议。 off:不开启UMDK功能,DN主备间通信走TCP协议。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。可以根据参数使用说明的具体使用场景进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • tcp_keepalives_interval 参数说明:在支持TCP_KEEPINTVL套接字选项的操作系统上,设置重新传输之间等待响应的时间。该参数可在PDB级别设置。 如果操作系统不支持TCP_KEEPINTVL选项,这个参数的值必须为0。 在通过UNIX域套接字进行的连接的操作系统上,这个参数将被忽略。 将该值设置为0时,将使用系统的值。 该参数在不同的会话之间不共享,也就是说不同的会话连接可能有不同的值。 查看该参数时查出来的是当前会话连接内的参数值,而不是GUC副本的值。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 180 默认值:30。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值60,表示tcp_keepalives_interval为60s;带单位取值1min,表示tcp_keepalives_interval为1min。取值如果要带单位,必须为s、min、h、d。 设置建议:设置时请确认操作系统是否支持TCP_KEEPINTVL套接字选项。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • tcp_keepalives_count 参数说明:在支持TCP_KEEPCNT套接字选项的操作系统上,设置GaussDB服务端在断开与客户端连接之前可以等待的保持活跃信号个数。该参数可在PDB级别设置。 如果操作系统不支持TCP_KEEPCNT选项,这个参数的值必须为0。 在通过UNIX域套接字进行连接的操作系统上,这个参数将被忽略。 将该值设置为0时,将使用系统的值。 该参数在不同的会话之间不共享,也就是说不同的会话连接可能有不同的值。 查看该参数时查出来的是当前会话连接内的参数值,而不是GUC副本的值。 参数类型:整型 参数单位:无 取值范围:0 ~ 100,其中0表示GaussDB未收到客户端反馈的保持活跃信号则立即断开连接。 默认值:20。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置时请确认操作系统是否支持TCP_KEEPCNT套接字选项。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • tcp_user_timeout 参数说明:在支持TCP_USER_TIMEOUT套接字选项的操作系统上,设置GaussDB在发送数据时,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。 如果操作系统不支持TCP_USER_TIMEOUT选项,这个参数的值将不生效,默认为0。 在通过UNIX域套接字进行连接的操作系统上,这个参数将被忽略。 参数类型:整型 参数单位:ms(毫秒) 取值范围:0 ~ 3600000 默认值:0,表示跟随操作系统设置。 注意,不同操作系统内核下,这个参数生效结果将不同: aarch64 EulerOS(Linux内核版本:4.19),超时时间即为该参数设置值。 x86 Euler2.5(Linux内核版本:3.10),超时时间不是该参数设置值,而是不同区间的最大值,即超时时间取值为:tcp_user_timeout设置值所处“Linux TCP重传总耗时”区间的上限最大值。例如:tcp_user_timeout=40000时,重传总耗时为51秒。 表1 x86 Euler2.5(Linux内核版本:3.10)tcp_user_timeout参数取值示意 Linux TCP重传次数 Linux TCP重传总耗时区间(秒) tcp_user_timeout设置举例(毫秒) 实际Linux TCP重传总耗时(秒) 1 (0.2,0.6] 400 0.6 2 (0.6,1.4] 1000 1.4 3 (1.4,3] 2000 3 4 (3,6.2] 4000 6.2 5 (6.2,12.6] 10000 12.6 6 (12.6,25.4] 20000 25.4 7 (25.4,51] 40000 51 8 (51,102.2] 80000 102.2 9 (102.2,204.6] 150000 204.6 10 (204.6,324.6] 260000 324.6 11 (324.6,444.6] 400000 444.6 注:TCP每次重传耗时随重传次数指数增加,当TCP一次重传到达120秒后,后续每次重传都将耗时120秒不再变化。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置时请确认操作系统是否支持TCP_USER_TIMEOUT套接字选项。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • tcp_keepalives_idle 参数说明:在支持TCP_KEEPIDLE套接字选项的系统上,设置发送保持活跃信号的间隔秒数。不设置发送保持活跃信号,连接就会处于闲置状态。该参数可在PDB级别设置。 如果操作系统不支持TCP_KEEPIDLE选项 ,这个参数的值必须为0。 在通过Unix域套接字进行的连接的操作系统上,这个参数将被忽略。 将该值设置为0时,将使用系统的值。 该参数在不同的会话之间不共享,也就是说不同的会话连接可能有不同的值。 查看该参数时查出来的是当前会话连接内的参数值,而不是GUC副本的值。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 3600 默认值:60。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值60,表示tcp_keepalives_idle为60s;带单位取值1min,表示tcp_keepalives_idle为1min。取值如果要带单位,必须为s、min、h、d。 设置建议:设置时请确认操作系统是否支持TCP_KEEPIDLE套接字选项。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • ADM_TAB_STATS_HISTORY ADM_TAB_STATS_HISTORY系统视图提供数据库所有表的表统计信息历史。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_TAB_STATS_HISTORY字段 名称 类型 描述 owner character varying(128) 对象的拥有者。 table_name character varying(128) 表名。 partition_name character varying(128) 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 stats_update_time timestamp(6) with time zone 统计信息更新的时间,数据库重启后,数据会丢失。 父主题: 其他系统视图
  • 语法格式 CREATE PLUGGABLE DATABASE pdb_name [ [ WITH ] { [ ENCODING [=] 'encoding' ] | [ LC_COLLATE [=] 'lc_collate' ] | [ LC_CTYPE [=] 'lc_ctype' ] | [ DBCOMPATIBILITY [=] 'compatibility_type' ] | [ DBTIMEZONE [=] 'time_zone' ] }];
  • 注意事项 不能在事务块中执行创建PDB的DDL语句,包括CREATE、ALTER、DROP。 只能在GUC参数enable_mtd为on的状态下使用。 只能在非PDB中进行该操作。不支持在M兼容数据库中执行该命令。 操作用户需要为gs_role_create_pdb的角色,或拥有sysadmin权限。 最多可以创建128个用户PDB。 在创建数据库过程中,出现类似“Permission denied”的错误提示,可能是由于文件系统上数据目录的权限不足。出现类似“No space left on device”的错误提示,可能是由于磁盘满引起的。 在兼容性选项缺省的情况下,将创建A兼容模式PDB。 若安装数据库实例时没有指定初始化账户密码,且初始化账户名字区分大小写,且新创建的PDB为M-Compatibility模式数据库的情况下,需要在开启并使用该PDB前,先在命令行执行以下语句,使数据库将双引号中的内容作为对象引用进行处理。语句执行后再开启并使用该PDB,按照提示重置始账户密码。 gs_guc set --pdbname my_pdb -Z datanode -N all -I all -c "sql_mode = 'ansi_quotes'" # my_pdb为新建的PDB名 (该举是为保证能正常为新PDB设置账户密码,后续操作可以按需重置sql_mode参数)
  • 参数说明 pdb_name PDB名称。 取值范围:字符串,要符合标识符命名规范。此外PDB名不能带“$”符号。 ENCODING [ = ] 'encoding' 可选。指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。 不指定时,对于M-Compatibility数据库,默认使用utf8编码;其他默认使用模板数据库的编码。模板数据库template0、template1和templatea的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,A兼容模式数据库请使用templatea创建数据库, 非A兼容模式数据库请使用template0创建数据库。 常用取值:GBK、UTF8、Latin1、GB18030等。 LC_COLLATE [ = ] 'lc_collate' 可选。指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。 该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的字符集。该参数对M-Compatibility数据库不生效。 取值范围:操作系统支持的字符集。 LC_CTYPE [ = ] 'lc_ctype' 可选。指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。该参数对M-Compatibility数据库不生效。 取值范围:操作系统支持的字符分类。 DBCOMPATIBILITY [ = ] compatibility_type 可选。指定兼容的数据库的类型,默认兼容O。 取值范围:A、C、PG、M。分别表示兼容O、TD、POSTGRES和M-Compatibility。 DBTIMEZONE [ = ] time_zone 指定新数据库的时区。例如,通过DBTIMEZONE = '+00:00'设定该参数。该参数会影响新数据库的时区。默认设置为PRC时区。 前提条件:当前连接数据库是A兼容、a_format_version='10c'、a_format_dev_version='s2'。 取值范围:操作系统支持的时区名称和缩写或者-15:59到+15:00时间戳范围。
  • 语法格式 为当前会话设置会话用户标识符和当前用户标识符。 SET [ SESSION | LOCAL ] SESSION AUTHORIZATION role_name PASSWORD 'password'; 重置会话和当前用户标识符为初始认证的用户名。 {SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT | RESET SESSION AUTHORIZATION};
  • 参数说明 SESSION 声明这个命令只对当前会话起作用。 LOCAL 声明该命令只在当前事务中有效。 role_name 用户名。 取值范围:字符串,数据库中已经存在的用户名。 password 角色的密码。要求符合密码的命名规则。 使用密文密码限制如下: 管理员用户不能使用密文密码切换到其他管理员用户,只能向权限更低用户切换; 使用密文密码通常用于gs_dump、gs_dumpall导出场景,其他场景不建议直接使用密文密码。 DEFAULT 重置会话和当前用户标识符为初始认证的用户名。
  • PG_STAT_REPLICATION PG_STAT_REPLICATION视图显示日志同步线程的信息,如发起端发送日志位置,接收端接收日志位置等。 表1 PG_STAT_REPLICATION字段 名称 类型 描述 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 日志同步线程的状态: startup:线程正在启动。 catchup:线程正在建立备用服务器和主服务器的连接。 streaming:线程已建立备用服务器和主服务器的连接,正在进行数据的流复制。 backup:线程正在发送备份。 stopping:线程正在停止。 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 同步状态: async:异步复制。 sync:同步复制。 potential:该备用服务器现在是异步的,但假如一个当前的同步服务器发生故障,该服务器会变成同步的。 quorum:在同步与异步之间切换,保证备机中有大于一定数量的同步备机,同步备机数量一般为(n+1)/2-1,n为总副本个数。是否为同步备机取决于是否先接到了日志。详情可参考synchronous_standby_names参数描述。 父主题: 其他系统视图
  • _PG_FOREIGN_DATA_WRAPPERS 显示外部数据封装器的信息,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_DATA_WRAPPERS字段 名称 类型 描述 oid oid 外部数据封装器的oid。 fdwowner oid 外部数据封装器的所有者的oid。 fdwoptions text[] 外部数据封装器指定选项,使用“keyword=value”格式的字符串。 foreign_data_wrapper_catalog information_schema.sql_identifier 外部封装器所在的数据库名称(永远为当前数据库)。 foreign_data_wrapper_name information_schema.sql_identifier 外部数据封装器名称。 authorization_identifier information_schema.sql_identifier 外部数据封装器所有者的角色名称。 foreign_data_wrapper_language information_schema.character_data 外部数据封装器的实现语言。 父主题: Information Schema
  • 示例 修改模式的防篡改属性。 修改普通模式为防篡改模式,需设置GUC参数enable_ledger,用于控制是否启用账本数据库功能。参数使用请联系管理员处理。 --创建模式test_schema1。 gaussdb=# CREATE SCHEMA test_schema1; --修改模式test_schema1为防篡改模式。 gaussdb=# ALTER SCHEMA test_schema1 WITH BLOCKCHAIN; --查询模式信息,防篡改属性为true。 gaussdb=# \dn+ test_schema1 List of schemas Name | Owner | Access privileges | Description | WithBlockChain --------------+-------+-------------------+-------------+---------------- test_schema1 | omm | | | t (1 row) 修改模式名称。 --将模式test_schema1重命名为test_sch1。 gaussdb=# ALTER SCHEMA test_schema1 RENAME TO test_sch1; --查询模式信息。 gaussdb=# \dn+ test* List of schemas Name | Owner | Access privileges | Description | WithBlockChain -----------+-------+-------------------+-------------+---------------- test_sch1 | omm | | | t (1 row) 修改模式所有者。 --创建用户test_user。 gaussdb=# CREATE ROLE test_user PASSWORD '********'; --将模式test_sch1的所有者修改为test_user。 gaussdb=# ALTER SCHEMA test_sch1 OWNER TO test_user; --查询模式信息。 gaussdb=# \dn+ test_sch1; List of schemas Name | Owner | Access privileges | Description | WithBlockChain -----------+-----------+-------------------+-------------+---------------- test_sch1 | test_user | | | t (1 row) --删除。 gaussdb=# DROP SCHEMA test_sch1; gaussdb=# DROP ROLE test_user; 修改默认字符集和字符序。 仅在B模式数据库下(即sql_compatibility = 'B')支持该语法。 除binary字符集和字符序外,当前仅支持指定与数据库编码相同的字符集。 --创建并切换至测试数据库。 gaussdb=# CREATE DATABASE test1 WITH DBCOMPATIBILITY = 'B' ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.utf8' LC_CTYPE = 'zh_CN.utf8'; gaussdb=# \c test1 --创建模式test_sch2。 test1=# CREATE SCHEMA test_sch2; --修改其默认字符为utf8mb4,默认字符序修改为utf8mb4_bin。 test1=# ALTER SCHEMA test_sch2 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; --删除。 test1=# DROP SCHEMA test_sch2; --切换至默认数据库。(根据实际情况修改数据库名) test1=# \c postgres gaussdb=# DROP DATABASE test1;
  • 参数说明 schema_name 现有模式的名称。 取值范围:已存在的模式名。 RENAME TO new_name 修改模式的名称。非系统管理员要改变模式的名称,则该用户必须在此数据库上有CREATE权限。 new_name:模式的新名称。 模式名不能和当前数据库里其他的模式重名。 模式名不能和当前数据库的初始用户重名。 模式的名称不可以“pg_”开头。 模式的名称不可以“gs_role_”开头。 取值范围:字符串,要符合标识符命名规范。 OWNER TO new_owner 修改模式的所有者。非系统管理员要改变模式的所有者,该用户还必须是新的所有角色的直接或间接成员, 并且该成员必须在此数据库上有CREATE权限。 new_owner:模式的新所有者。 取值范围:已存在的用户名/角色名。 { WITH | WITHOUT } BLOCKCHAIN 修改模式的防篡改属性,使用WITH选项为防篡改模式。具有防篡改属性模式下的普通行存表均为防篡改历史表,不包括外表,临时表,系统表。当该模式下不包含任何表时才可修改防篡改属性。另外,不支持临时表模式、toast表模式、dbe_perf模式、blockchain模式修改防篡改属性。只有模式中不包含任何表的情况下,才能使用该语法在普通模式和防篡改模式中互转。 修改普通模式为防篡改模式,需设置GUC参数enable_ledger为on,该参数默认值为off,级别为SIGHUP。
  • 注意事项 只有模式的所有者或者被授予了模式ALTER权限的用户有权限执行ALTER SCHEMA命令,三权分立开关关闭时,系统管理员默认拥有此权限。但要修改模式的所有者,当前用户必须是该模式的所有者或者系统管理员,且该用户是新所有者角色的成员。 对于除public以外的系统模式,如pg_catalog、sys等,只允许初始用户修改模式的所有者。修改系统自带模式的名称可能会导致部分功能不可用甚至影响数据库正常运行,默认情况下不允许修改系统自带模式的名称,考虑到前向兼容性,仅允许当系统在启动或升级过程中或参数allow_system_table_mods为on时修改。 除初始用户外,其他用户无法将schema的所有者修改为运维管理员。
  • GS_COMM_LISTEN_ADDRESS_EXT_INFO GS_COMM_LISTEN_ADDRESS_EXT_INFO描述了查询连接扩展IP的相关线程、会话、socket等DFX信息。当前不支持查询该视图。 表1 GS_COMM_LISTEN_ADDRESS_EXT_INFO字段 名称 类型 描述 node_name text 当前实例名。 app text 当前连接DN的客户端。 tid bigint 当前线程的线程号。 lwtid integer 当前线程的轻量级线程号。 query_id bigint 当前线程的查询ID。 socket integer 当前物理连接的socket fd。 remote_ip text 当前连接对端IP。 remote_port text 当前连接对端port。 local_ip text 当前连接本端IP。 local_port text 当前连接本端port。 父主题: 通信
  • GS_WORKLOAD_RULE_STAT GS_WORKLOAD_RULE_STAT系统视图记录SQL限流规则相关的信息。只有具有sysadmin权限的用户才可以访问此系统视图。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时返回空列表。 表1 GS_WORKLOAD_RULE_STAT字段 名称 类型 描述 rule_id bigint 限流规则ID。 rule_name name 限流规则的名称,用于检索限流规则。 databases name[] 限流规则作用的数据库列表,为NULL表示对所有库生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他取值为非法值。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 max_workload bigint 限制规则设置的最大并发数。 option_val text[] 限流规则的参数值,包括:sqlid,关键字列表,资源限制情况。 详细请参见gs_add_workload_rule(rule_type, rule_name, databases, start_time, end_time, max_workload, option_val)接口说明。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 validate_count bigint 限流规则拦截SQL的次数。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 其他系统视图
  • 扩展函数 下表列举了GaussDB中支持的扩展函数,不作为商用特性交付,仅供参考。 分类 函数名称 描述 访问权限查询函数 has_sequence_privilege(user, sequence, privilege) 指定用户是否有访问序列的权限 has_sequence_privilege(sequence, privilege) 当前用户是否有访问序列的权限 触发器函数 pg_get_triggerdef(oid) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 pg_get_triggerdef(oid, boolean) 为触发器获取CREATE [ CONSTRAINT ] TRIGGER命令 父主题: 附录
  • ADM_CONS_COLUMNS ADM_CONS_COLUMNS视图显示数据库表中约束的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_CONS_COLUMNS字段 名称 类型 描述 owner character varying(64) 约束创建者。 constraint_name character varying(64) 约束名。 table_name character varying(64) 约束相关的表名。 column_name character varying(64) 约束相关的列名。 position smallint 表中列的位置。 父主题: 其他系统视图
  • 示例 --创建拥有系统管理员权限的用户。 gaussdb=# CREATE USER user1 WITH SYSADMIN PASSWORD '********'; gaussdb=# SET ROLE user1 PASSWORD '********'; --创建公共dblink。 gaussdb=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --创建普通用户。 gaussdb=# CREATE USER user2 PASSWORD '********'; --修改dblink对象信息。 gaussdb=# ALTER PUBLIC DATABASE LINK public_dblink CONNECT TO 'user2' IDENTIFIED BY '********'; --删除公共dblink。 gaussdb=# DROP PUBLIC DATABASE LINK public_dblink; --删除创建出的用户。 gaussdb=# RESET ROLE; gaussdb=# DROP USER user1; gaussdb=# DROP USER user2;
  • GS_MASKING_POLICY_FILTERS GS_MASKING_POLICY_FILTERS系统表记录动态数据脱敏策略对应的用户过滤条件,当用户条件满足FILTER条件时,对应的脱敏策略才会生效。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY_FILTERS表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 filtertype name 过滤类型。目前值仅为logical_expr。 filterlabelname name 过滤范围。目前值仅为logical_expr。 policyoid oid 该条用户过滤条件所属的脱敏策略oid,对应GS_MASKING_POLICY中的oid。 modifydate timestamp without time zone 该条用户过滤条件创建或修改的最新时间戳。 logicaloperator text 过滤条件的波兰表达式。 父主题: 动态脱敏
  • 自动寻主场景 某客户存在一套集中式数据库实例,包含1主2备三个节点{node1,node2,node3},其中node1为主节点,node2、node3为备节点。 客户希望应用连接能建立在主DN上,并在发生主备切换时,自动选择新的主节点建连,则url可参考如下命令进行配置: jdbc:gaussdb://node1,node2,node3/database?targetServerType=master
  • 应用无损透明场景 计划内ALT 在数据库实例进行计划内维护(重启数据库实例、主备切换、节点重启、DN重启等操作)时,JDBC和DN的连接会断开。可以开启计划内ALT特性,实现连接保持功能,url中可参考如下命令进行配置。gns不支持浮动IP方式配置,不支持配置为127.0.0.1,不支持大小网映射场景(IP一致,端口不一致)。 只开启状态通知功能。 jdbc:gaussdb://node1/database?enableALT=true&gns=ip1:port1,ip2:port2,ip3:port3 开启加速连接以及快速断连功能。 jdbc:gaussdb://node1/database?enableALT=true&altLevel=C&gns=ip1:port1,ip2:port2,ip3:port3 开启加速连接、快速断连以及计划内维护功能。 jdbc:gaussdb://node1/database?enableALT=true&altLevel=P&gns=ip1:port1,ip2:port2,ip3:port3 计划外ALT 开启计划外ALT时,应该指定连接主DN。gns服务可选。 开启计划外ALT,不启用gns服务。 jdbc:gaussdb://node1/database?targetServerType=master&enableALT=true&altLevel=U 开启计划外ALT,启用gns服务,同时支持计划内ALT功能。 jdbc:gaussdb://node1/database?targetServerType=master&enableALT=true&altLevel=U&gns=ip1:port1,ip2:port2,ip3:port3
  • 高性能场景 某客户对于相同sql可能多次执行,仅是传参不同的情况,为了提升执行效率,可开启prepareThreshold参数,避免重复生成执行计划,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?prepareThreshold=5 某客户一次查询1000万数据,为避免同时返回造成内存溢出,可使用defaultRowFetchSize,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?defaultRowFetchSize=50000 某客户需要批量插入1000万数据,为提升效率,可使用batchMode,url可参考如下命令进行配置: jdbc:gaussdb://node1/database?batchMode=on
共100000条
提示

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