华为云用户手册

  • USER_LOGIN USER_LOGIN用来记录用户登录和退出次数的相关信息,如表1所示。 表1 USER_LOGIN字段 名称 类型 描述 node_name text 节点名称。 user_name text 用户名称。 user_id integer 用户oid(同pg_authid中的oid字段)。 login_counter bigint 登录次数。 logout_counter bigint 退出次数。 父主题: Utility
  • SUMMARY_STAT_SYS_TABLES 显示集群内pg_catalog、information_schema以及pg_toast模式下所有系统表的状态统计信息(在CN节点使用,统计信息包含CN节点与DN节点的数据。对每个节点下系统表的状态信息汇总求和,其中timestamp类型字段不进行求和,仅取所有节点该字段的最新值),如表1所示。 表1 SUMMARY_STAT_SYS_TABLES字段 名称 类型 描述 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan numeric 该表发起的顺序扫描数。 seq_tup_read numeric 顺序扫描抓取的活跃行数。 idx_scan numeric 该表发起的索引扫描数。 idx_tup_fetch numeric 索引扫描抓取的活跃行数。 n_tup_ins numeric 插入行数。 n_tup_upd numeric 更新行数。 n_tup_del numeric 删除行数。 n_tup_hot_upd numeric HOT更新行数(即没有更新索引列的行数)。 n_live_tup numeric 估计活跃行数。 n_dead_tup numeric 估计不活跃行数。 last_vacuum timestamp with time zone 最后一次该表是手动清理的(不计算VACUUM FULL)时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次手动分析该表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护线程分析的时间。 vacuum_count numeric 该表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count numeric 该表被autovacuum清理的次数。 analyze_count numeric 该表被手动分析的次数。 autoanalyze_count numeric 该表被autovacuum守护线程分析的次数。 父主题: Object
  • enable_rls_match_index 参数说明:控制是否支持在行级访问控制特性使用场景中,基于目标谓词条件对基表执行索引扫描。目标场景为:基表设置并开启了RLS(Row Level Security)策略,查询谓词中包含unleakproof类型系统函数或like操作符。 取值范围:布尔型。 on:支持目标场景下的基表索引扫描。 off:不支持目标场景下的基表索引扫描。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:设置为默认值。若业务热点查询语句为目标场景,且基表行级访问策略数量较少,可打开该开关以显著提升查询性能。 该参数的修改,会影响目标场景下执行计划的生成,可通过重连、创建操作符等方式手动使缓存计划失效。 该参数开启后,会影响到位图扫描算子的生成,RLS策略谓词将被插入到Recheck过滤条件中;因此,在该算子切换为lossy模式且RLS策略数目较多时,会对性能产生一定影响。
  • tde_index_default_encrypt 参数说明:创建索引时,如果开启本参数,并且索引的基表是加密表,则数据库自动将索引设置为加密索引,并自动为索引复制基表的加密算法、密钥等加密参数,对索引中的数据先加密再存储。 参数类型:布尔型 参数单位:无 取值范围: on:自动对加密表的索引设置加密参数。 off:不自动对加密表的索引设置加密参数。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • block_encryption_mode 参数说明:aes_encrypt和aes_decrypt函数进行加解密时使用的块加密模式。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型,有效值为aes-128-cbc,aes-192-cbc,aes-256-cbc,aes-128-cfb1,aes-192-cfb1,aes-256-cfb1,aes-128-cfb8,aes-192-cfb8,aes-256-cfb8,aes-128-cfb128,aes-192-cfb128,aes-256-cfb128,aes-128-ofb,aes-192-ofb,aes-256-ofb。其中aes表示加/解密算法,128/192/256表示密钥长度(单位:bit),cbc/cfb1/cfb8/cfb128/ofb表示块加/解密模式。 默认值:aes-128-cbc
  • use_elastic_search 参数说明:使能统一审计发送日志至Elastic Search系统, enable_security_policy打开且本参数打开后,统一审计日志会通过http(https)传递至Elastic Search系统(默认使用https安全协议)。此参数打开后需要保证elastic_search_ip_addr对应的es服务可正常连通,否则进程启动失败。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on:使能统一审计日志发送至Elastic Search。 off:关闭统一审计日志发送至Elastic Search。 默认值:off
  • elastic_search_ip_addr 参数说明:Elastic Search系统IP地址 ,使用https协议格式为:https://ip:port:username;使用http协议格式为:http://ip:port。其中,ip为Elastic Search服务器的IP,port为Elastic Search HTTP通信的侦听端口,范围为9200 - 9299,username为用户在Elastic Search注册账号所使用的用户名,初始用户为elastic。使用https协议需要配置相关证书,详见《安全加固指南》中“统一审计“章节。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串。 默认值:''
  • enable_tde 参数说明:透明数据加密功能开关。创建加密表前需要将此参数置为on,并且通过tde_key_info参数配置密钥信息。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on:开启透明数据加密功能。 off:关闭透明数据加密功能。 默认值:off 设置此参数为on,需要保证tde_key_info参数中密钥信息配置正确,并且密钥服务可以正常访问,否则会导致数据库无法正常启动。 设置此参数为on并且创建了加密表后,如果再将此参数设置为off会导致已有加密表的数据无法进行加解密,从而导致数据库异常。
  • PG_AVAILABLE_EXTENSIONS PG_AVAILABLE_EXTENSIONS视图显示数据库中某些特性的扩展信息。该视图为内部使用,不建议用户使用。具体字段信息如表1所示。 表1 PG_AVAILABLE_EXTENSIONS字段 名称 类型 描述 name name 扩展名。 default_version text 缺省版本的名称,如果没有指定则为NULL。 installed_version text 扩展当前安装版本,如果没有安装任何版本则为NULL。 comment text 扩展的控制文件中的评论。 父主题: 其他系统视图
  • 连接参数 表1 连接参数 参数 描述 host 要连接的主机名。如果主机名以斜杠开头,则它声明使用Unix域套接字通讯而不是TCP/IP通讯,该值就是套接字文件所存储的目录。如果没有声明host,那么默认是与位于/tmp目录(或者安装GaussDB的时候声明的套接字目录)里面的Unix-域套接字连接。在没有Unix域套接字的机器上,默认与localhost连接。 接受以“,”分割的字符串来指定多个主机名,支持指定多个主机名。 hostaddr 与之连接的主机的IP地址,是标准的IPv4地址格式,比如,172.28.40.9。如果声明了一个非空的字符串,那么使用TCP/IP通讯机制。 接受以“,”分割的字符串来指定多个IP地址,支持指定多个IP地址。 使用hostaddr取代host可以让应用避免一次主机名查找,这一点对于那些有时间约束的应用来说可能是非常重要的。不过,GSSAPI或SSPI认证方法要求主机名(host)。因此,应用下面的规则: 如果声明了不带hostaddr的host那么就强制进行主机名查找。 如果声明中没有host,hostaddr的值给出服务器网络地址。如果认证方法要求主机名,那么连接尝试将失败。 如果同时声明了host和hostaddr,那么hostaddr的值作为服务器网络地址。host的值将被忽略,除非认证方法需要它,在这种情况下它将被用作主机名。 须知: 如果host不是网络地址hostaddr处的服务器名,那么认证很有可能失败。 如果主机名(host)和主机地址都没有,那么libpq将使用一个本地的Unix域套接字进行连接,或者是在没有Unix域套接字的机器上,它将尝试与localhost连接。 port 主机服务器的端口号,或者在Unix域套接字连接时的套接字扩展文件名。 接受以“,”分割的字符串来指定多个端口号,支持指定多个端口号。 vimuser 要连接的用户名,缺省是与运行该应用的用户操作系统名同名的用户。 dbname 数据库名,缺省和用户名相同。 password 如果服务器要求口令认证,所用的口令。 connect_timeout 连接的最大等待时间,以秒计(用十进制整数字符串书写),0或者不声明表示无穷。不建议把连接超时的值设置小于2秒。 client_encoding 为这个连接设置client_encoding配置参数。除了对应的服务器选项接受的值,可以使用auto从客户端中的当前环境中确定正确的编码(Unix系统上是LC_CTYPE环境变量)。 tty 忽略(以前,该参数指定了发送服务器调试输出的位置)。 options 添加命令行选项以在运行时发送到服务器。 application_name 为application_name配置参数指定一个值,表明当前用户身份。 fallback_application_name 为application_name配置参数指定一个后补值。如果通过一个连接参数或PGAPPNAME环境变量没有为application_name给定一个值,将使用这个值。在一般工具程序中,若设置一个默认名,但不希望这个默认名被用户覆盖,可以通过指定一个后补值来实现。 keepalives 控制客户端侧的TCP保持激活是否使用。缺省值是1,意思为打开,但是如果不想要保持激活,可以更改为0,意思为关闭。通过Unix域套接字做的连接忽略这个参数。 keepalives_idle 在TCP应该发送一个保持激活的信息给服务器之后,控制不活动的秒数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 keepalives_interval 在TCP保持激活信息没有被应该传播的服务器承认之后,控制秒数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 keepalives_count 控制TCP发送保持激活信息的次数。0值表示使用系统缺省。通过Unix域套接字做的连接或者如果禁用了保持激活则忽略这个参数。 tcp_user_timeout 在支持TCP_USER_TIMEOUT套接字选项的操作系统上,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。0值表示使用系统缺省。通过Unix域套接字做的连接忽略这个参数。 tcp_syn_retries 在支持TCP_SYNCNT套接字选项的操作系统上,指定客户端建立连接三次握手阶段SYN包发送失败而重新传输的次数。0值表示使用系统缺省。通过Unix域套接字的连接忽略此参数。 rw_timeout 设置客户端连接读写超时时间。 当libpq侧触发超时且连接关闭时,其下发给数据库侧正在运行的业务会被强制终止。该能力受GUC参数check_disconnect_query控制,设置为on表示支持该能力,设置为off表示不支持该能力。 sslmode 启用SSL加密的方式: disable:不使用SSL安全连接。 allow:如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer:如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。 require:必须使用SSL安全连接,但是只做了数据加密,而并不验证数据库服务器的真实性。 verify-ca:必须使用SSL安全连接,当前windows ODBC不支持cert方式认证。 verify-full:必须使用SSL安全连接,当前windows ODBC不支持cert方式认证。 sslcompression 如果设置为1(默认),SSL连接之上传送的数据将被压缩(这要求OpenSSL版本为0.9.8或更高)。如果设置为0,压缩将被禁用(这要求OpenSSL版本为1.0.0或更高)。如果建立的是一个没有SSL的连接,这个参数会被忽略。如果使用的OpenSSL版本不支持该参数,它也会被忽略。压缩会占用CPU时间,但是当瓶颈为网络时可以提高吞吐量。如果CPU性能是限制因素,禁用压缩能够改进响应时间和吞吐量。 sslcert 这个参数指定客户端SSL证书的文件名。如果没有建立SSL连接,这个参数会被忽略。 sslkey 这个参数指定用于客户端证书的密钥位置。它能够指定一个从外部“引擎”(引擎是OpenSSL的可载入模块)得到的密钥。一个外部引擎说明应该由一个冒号分隔的引擎名称以及一个引擎相关的关键标识符组成。如果没有建立SSL连接,这个参数会被忽略。 sslrootcert 这个参数指定一个包含SSL证书机构(CA)证书的文件名称。如果该文件存在,服务器的证书将被验证是由这些机构之一签发。 sslcrl 这个参数指定SSL证书撤销列表(CRL)的文件名。列在这个文件中的证书如果存在,在尝试认证该服务器证书时会被拒绝。 requirepeer 这个参数指定服务器的操作系统用户,例如requirepeer=postgres。当建立一个Unix域套接字连接时,如果设置了这个参数,客户端在连接开始时检查服务器进程是否运行在指定的用户名之下。如果发现不是,该连接会被一个错误中断。这个参数能被用来提供与TCP/IP连接上SSL证书相似的服务器认证(注意,如果Unix域套接字在/tmp或另一个公共可写的位置,任何用户能启动一个在那里侦听的服务器。使用这个参数来保证所连接的是一个由可信用户运行的服务器)。这个选项只在实现了peer认证方法的平台上支持。 krbsrvname 当用GSSAPI认证时,要使用的Kerberos服务名。为了让Kerberos认证成功,这必须匹配在服务器配置中指定的服务名。 gsslib 用于GSSAPI认证的GSS库。只用在Windows上。设置为gssapi可强制libpq用GSSAPI库来代替默认的SSPI进行认证。 service 用于附加参数的服务名。它指定保持附加连接参数的pg_service.conf中的一个服务名。这允许应用只指定一个服务名,这样连接参数能被集中维护。 authtype 不再使用“authtype”,因此将其标记为“不显示”。将其保留在数组中,以免拒绝旧应用程序中的conninfo字符串,这些应用程序可能仍在尝试设置它。 remote_nodename 指定连接本地节点的远端节点名称。 localhost 指定在一个连接通道中的本地地址。 localport 指定在一个连接通道中的本地端口。 fencedUdfRPCMode 控制fenced UDF RPC协议是使用unix域套接字或特殊套接字文件名。缺省值是0,意思为关闭。使用unix domain socket模式,文件类型为“.s.PGSQL.%d”;但是要使用fenced udf ,文件类型为.s.fencedMaster_unixdomain,可以更改为1,意思为开启。 replication 这个选项决定是否该连接应该使用复制协议而不是普通协议。这是PostgreSQL的复制连接以及pg_basebackup之类的工具在内部使用的协议,但也可以被第三方应用使用。支持下列值,大小写无关: true、on、yes、1 连接进入到物理复制模式。 database 连接进入到逻辑复制模式,连接到dbname参数中指定的数据库。 false、off、no、0 该连接是一个常规连接,这是默认行为。 在物理或者逻辑复制模式中,仅能使用简单查询协议。 backend_version 传递到远端的后端版本号。 prototype 设置当前协议级别,默认:PROTO_TCP。 enable_ce 控制是否允许客户端连接全密态数据库。默认值为0,不开启密态功能。如果需要开启密态等值查询基本能力,则修改为1。修改为3的时候,仅支持密态等值查询的基本能力。 key_info 与enable_ce一起使用,在密态数据库中,用于设置访问外部密钥管理者的参数。 connection_info Connection_info是一个包含driver_name、driver_version、driver_path和os_user的json字符串。 如果不为NULL,使用connection_info 忽略connectionExtraInf。 如果为NULL,生成与libpq相关的连接信息字符串,当connectionExtraInf为false时connection_info只有driver_name和driver_version。 connectionExtraInf 设置connection_info是否存在扩展信息,默认值为0,如果包含其他信息,则需要设置为1。 target_session_attrs 设定连接的主机的类型。主机的类型和设定的值一致时才能连接成功。指定多IP时才会校验此参数。target_session_attrs的设置规则如下: any:可以对所有类型的主机进行连接。 read-write:当连接的主机允许可读可写时,才进行连接。 read-only:仅对可读的主机进行连接。 primary(默认值):仅对主备系统中的主机能进行连接。 standby:仅对主备系统中的备机进行连接。 prefer-standby:首先尝试找到一个备机进行连接。如果对hosts列表的所有机器都连接失败,那么尝试“any”模式进行连接。 父主题: 基于libpq开发
  • 废弃函数 GaussDB中下列函数在最新版本中已废弃: gs_wlm_get_session_info gs_wlm_get_user_session_info check_engine_status encode_plan_node model_train_opt gs_stat_get_wlm_plan_operator_info track_model_train_opt array_extend dbe_perf.global_slow_query_info dbe_perf.global_slow_query_info_bytime dbe_perf.global_slow_query_history pg_reload_conf pg_rotate_logfile gs_stat_ustore local_segment_space_info global_segment_space_info remote_segment_space_info pg_stat_segment_extent_usage pgxc_get_wlm_current_instance_info(text, int default null) pgxc_get_wlm_history_instance_info(text, TIMESTAMP, TIMESTAMP, int default null) 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() pgxc_get_wlm_ec_operator_history() pgxc_get_wlm_ec_operator_info() pgxc_get_wlm_ec_operator_statistics() pgxc_get_wlm_operator_history() pgxc_get_wlm_operator_info() pgxc_get_wlm_operator_statistics() pgxc_get_wlm_session_history() pgxc_get_wlm_session_info() pgxc_get_wlm_session_info_bytime(tag text, begin timestamp, end timestamp, limit int) pgxc_get_wlm_session_statistics() pgxc_wlm_get_workload_records() DBE_PERF.get_wlm_controlgroup_ng_config() DBE_PERF.get_global_wlm_workload_runtime() 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_node_resource_info() 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() pg_stat_get_wlm_session_info_internal() pg_stat_get_wlm_statistics() gs_redis_set_bucketxid(bigint) gs_check_logic_cluster_consistency() 父主题: 函数和操作符
  • DB_IND_EXPRESSIONS DB_IND_EXPRESSIONS视图显示当前用户可访问的表达式索引的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_IND_EXPRESSIONS字段 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_expression text 定义列的基于函数的索引表达式。 column_position smallint 索引中列的位置。 父主题: 其他系统视图
  • PG_COLLATION PG_COLLATION系统表描述可用的排序规则,本质上从一个SQL名称映射到操作系统本地类别。 表1 PG_COLLATION字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 collname name - 排序规则名(每个名称空间和编码唯一)。 collnamespace oid PG_NAMESPACE.oid 包含这个排序规则的名称空间的OID。 collowner oid PG_AUTHID.oid 排序规则的所有者。 collencoding integer - 排序规则可用的编码,兼容PostgreSQL所有的字符编码类型,如果适用于任意编码为-1。 collcollate name - 这个排序规则对象的LC_COLLATE。 collctype name - 这个排序规则对象的LC_CTYPE。 collpadattr text - 这个排序规则的填充属性。 NULL:不适用。 NO PAD:无填充。 PAD SPACE:末尾空白填充。 collisdef boolean - 这个排序规则是否是所属字符集的默认字符序。 父主题: 其他系统表
  • DBE_PLDEBUGGER.turn_off 仅用于去掉当前session被turn_on添加的调试标记,返回值表示成功或失败,如表1所示。可通过DBE_PLDEBUGGER.local_debug_server_info查找已经turn_on的存储过程oid。 函数原型为: 1 2 DBE_PLDEBUGGER.turn_off(Oid) RETURN boolean; 表1 turn_off 入参和返回值列表 名称 类型 描述 func_oid IN oid 函数oid。 turn_off OUT boolean turn off是否成功。 父主题: DBE_PLDEBUGGER Schema
  • 示例 --创建一个表tb_for_masking。 gaussdb=# CREATE TABLE tb_for_masking(idx int, col1 text, col2 text, col3 text, col4 text, col5 text, col6 text, col7 text,col8 text); --给表tb_for_masking插入数据。 gaussdb=# INSERT INTO tb_for_masking VALUES(1, '9876543210', 'usr321usr', 'abc@huawei.com', 'abc@huawei.com', '1234-4567-7890-0123', 'abcdef 123456 ui 323 jsfd321 j3k2l3', '4880-9898-4545-2525', 'this is a llt case'); --创建资源标签标记敏感列col1。 gaussdb=# CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(tb_for_masking.col1); --创建资源标签标记敏感列col2。 gaussdb=# CREATE RESOURCE LABEL mask_lb2 ADD COLUMN(tb_for_masking.col2); --创建资源标签标记敏感列col3。 gaussdb=# CREATE RESOURCE LABEL mask_lb3 ADD COLUMN(tb_for_masking.col3); --创建一个名为maskpol1的脱敏策略。 gaussdb=# CREATE MASKING POLICY maskpol1 maskall ON LABEL(mask_lb1); --创建一个名为maskpol2的脱敏策略。 gaussdb=# CREATE MASKING POLICY maskpol2 randommasking ON LABEL(mask_lb2); --创建一个名为maskpol3的脱敏策略。 gaussdb=# CREATE MASKING POLICY maskpol3 basicemailmasking ON LABEL(mask_lb3); --删除一个脱敏策略。 gaussdb=# DROP MASKING POLICY IF EXISTS maskpol1; --删除一组脱敏策略。 gaussdb=# DROP MASKING POLICY IF EXISTS maskpol2, maskpol3; --删除资源标签 gaussdb=# DROP RESOURCE LABEL mask_lb1; gaussdb=# DROP RESOURCE LABEL mask_lb2; gaussdb=# DROP RESOURCE LABEL mask_lb3; --删除表 gaussdb=# DROP TABLE tb_for_masking;
  • 示例 重命名视图。 --创建test_tbl表。 gaussdb=# CREATE TABLE test_tb1(col1 INT,col2 INT); --创建视图。 gaussdb=# CREATE VIEW abc AS SELECT * FROM test_tb1; --重命名视图。 gaussdb=# ALTER VIEW IF EXISTS abc RENAME TO test_v1; --查看视图。 gaussdb=# \dv List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-------+--------- public | test_v1 | view | omm | (1 row) 修改视图所有者。 --创建用户。 gaussdb=# CREATE ROLE role_test PASSWORD '********'; --修改视图所有者。 gaussdb=# ALTER VIEW IF EXISTS test_v1 OWNER TO role_test; --查看视图信息。 gaussdb=# \dv List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+--------- public | test_v1 | view | role_test | (1 row) 设置视图所属模式。 --创建模式。 gaussdb=# CREATE SCHEMA tcpds; --修改视图所属模式。 gaussdb=# ALTER VIEW test_v1 SET SCHEMA tcpds; --查看视图信息。 gaussdb=# \dv tcpds.test_v1; List of relations Schema | Name | Type | Owner | Storage --------+---------+------+-----------+--------- tcpds | test_v1 | view | role_test | (1 row) 设置与重置视图选项。 --修改视图选项。 gaussdb=# ALTER VIEW tcpds.test_v1 SET (security_barrier = TRUE); ALTER VIEW --查看。 gaussdb=# \dv tcpds.test_v1; List of relations Schema | Name | Type | Owner | Storage --------+---------+------+--------+------------------------- tcpds | test_v1 | view | chenxi | {security_barrier=true} (1 row) --修改check_option选项。 gaussdb=# ALTER VIEW tcpds.test_v1 SET (check_option = 'LOCAL'); ALTER VIEW --查看。 gaussdb=# \dv tcpds.test_v1; List of relations Schema | Name | Type | Owner | Storage --------+---------+------+--------+-------------------------------------------- tcpds | test_v1 | view | chenxi | {security_barrier=true,check_option=LOCAL} (1 row) --重置视图选项。 gaussdb=# ALTER VIEW tcpds.test_v1 RESET (security_barrier); ALTER VIEW gaussdb=# ALTER VIEW tcpds.test_v1 RESET (check_option); ALTER VIEW --查看。 gaussdb=# \dv tcpds.test_v1; List of relations Schema | Name | Type | Owner | Storage --------+---------+------+--------+--------- tcpds | test_v1 | view | chenxi | (1 row) --删除视图test_v1。 gaussdb=# DROP VIEW tcpds.test_v1; DROP VIEW --删除表test_tb1。 gaussdb=# DROP TABLE test_tb1; DROP TABLE --删除用户。 gaussdb=# DROP ROLE role_test; DROP ROLE --删除schema。 gaussdb=# DROP SCHEMA tcpds; DROP SCHEMA
  • 语法格式 设置视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name SET DEFAULT expression; 取消列视图列的默认值。 1 2 ALTER VIEW [ IF EXISTS ] view_name ALTER [ COLUMN ] column_name DROP DEFAULT; 修改视图的所有者。 1 2 ALTER VIEW [ IF EXISTS ] view_name OWNER TO new_owner; 重命名视图。 1 2 ALTER VIEW [ IF EXISTS ] view_name RENAME TO new_name; 设置视图的所属模式。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET SCHEMA new_schema; 设置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name SET ( { view_option_name [ = view_option_value ] } [, ... ] ); 重置视图的选项。 1 2 ALTER VIEW [ IF EXISTS ] view_name RESET ( view_option_name [, ... ] );
  • 注意事项 只有视图的所有者或者被授予了视图ALTER权限的用户才可以执行ALTER VIEW命令,三权分立开关关闭时,系统管理员默认拥有该权限。针对所要修改属性的不同,对其还有以下权限约束: 修改视图的模式,当前用户必须是视图的所有者或者系统管理员,且要有新模式的CREATE权限。三权分立开关打开时,系统管理员不能修改视图模式。 修改视图的所有者,当前用户必须是视图的所有者或者系统管理员,且该用户必须是新所有者角色的成员,并且此角色必须有视图所在模式的CREATE权限。三权分立开关打开时,系统管理员不能修改视图的所有者。 禁止修改视图中列的类型。
  • 参数说明 IF EXISTS 使用这个选项,如果视图不存在时不会产生错误,仅会有一个提示信息。 view_name 视图名称,可以用模式修饰。 取值范围:字符串,已经存在的视图名。 column_name 字段名称。 取值范围:字符串,已经存在的视图的字段名。 SET/DROP DEFAULT 设置或删除一个列的缺省值,该参数暂无实际意义。 new_owner 视图新所有者的用户名称。 new_name 视图的新名称。 new_schema 视图的新模式。 view_option_name [ = view_option_value ] 该子句为视图指定一个可选的参数。 security_barrier:设置视图是否提供行级安全。取值范围为Boolean类型。缺省值为true。 check_option:控制更新视图的行为。支持参数值为CASCADED或LOCAL。该参数取值不可缺省。 expression 常量、函数或SQL表达式。
  • STAT_XACT_USER_TABLES 显示当前节点Schema中用户表的事务状态信息,如表1所示。 表1 STAT_XACT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(即没有更新索引列的行数)。 父主题: Object
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 --创建表空间。 gaussdb=# CREATE TABLESPACE tbs_location1 RELATIVE LOCATION 'test_tablespace/test_tablespace_1'; --创建表空间指定最大值。 gaussdb=# CREATE TABLESPACE tbs_location2 RELATIVE LOCATION 'test_tablespace/test_tablespace_2' MAXSIZE '10G'; --查询表空间信息。 gaussdb=# SELECT * FROM pg_tablespace WHERE spcname = 'tbs_location2'; spcname | spcowner | spcacl | spcoptions | spcmaxsize | relative ---------------+----------+--------+------------+------------+---------- tbs_location2 | 10 | | | 10485760 K | t (1 row) --创建用户joe。 gaussdb=# CREATE ROLE joe IDENTIFIED BY '********'; --创建表空间,且所有者指定为用户joe。 gaussdb=# CREATE TABLESPACE tbs_location3 OWNER joe RELATIVE LOCATION 'test_tablespace/test_tablespace_3'; --删除表空间及用户。 gaussdb=# DROP TABLESPACE tbs_location1; gaussdb=# DROP TABLESPACE tbs_location2; gaussdb=# DROP TABLESPACE tbs_location3; gaussdb=# DROP ROLE joe;
  • 语法格式 1 2 3 CREATE TABLESPACE tablespace_name [ OWNER user_name ] [ RELATIVE ] LOCATION 'directory' [ MAXSIZE 'space_size' ] [with_option_clause]; 其中普通表空间的with_option_clause为: 1 WITH ({filesystem= { ' general ' | " general " | general } | address = { ' ip:port [, ... ] ' | " ip:port [, ... ] " } | cfgpath = { ' path ' | " path " } | storepath = { ' rootpath ' | " rootpath " } | random_page_cost = { ' value ' | " value " | value } | seq_page_cost = { ' value ' | " value " | value }}[, ... ])
  • 注意事项 系统管理员或者继承了内置角色gs_role_tablespace权限的用户可以创建表空间。 不允许在一个事务块内部执行CREATE TABLESPACE。 执行CREATE TABLESPACE失败,如果内部创建目录(文件)操作成功了就会产生残留的目录(文件),重新创建时需要用户手动清理表空间指定的目录下残留的内容。如果在创建过程中涉及到数据目录下的表空间软连接残留,需要先将软连接的残留文件删除,再重新执行OM相关操作。 CREATE TABLESPACE不支持两阶段事务,如果部分节点执行失败,不支持回滚。 在公有云场景下一般不建议用户使用自定义的表空间。 原因:用户自定义表空间通常配合主存(即默认表空间所在的存储设备,如磁盘)以外的其它存储介质使用,以隔离不同业务可以使用的I/O资源,而在公有云场景下,存储设备都是采用标准化的配置,无其它可用的存储介质,自定义表空间使用不当不利于系统长稳运行以及影响整体性能,因此建议使用默认表空间即可。
  • 连接参数 第三方工具通过JDBC连接GaussDB时,JDBC向GaussDB发起连接请求,会默认添加以下配置参数,详见JDBC代码ConnectionFactoryImpl类的实现。 params = { { "user", user }, { "database", database }, { "client_encoding", "UTF8" }, { "DateStyle", "ISO" }, { "extra_float_digits", "3" }, { "TimeZone", createPostgresTimeZone() }, }; 这些参数可能会导致JDBC客户端的行为与gsql客户端的行为不一致,例如,Date数据显示方式、浮点数精度表示、timezone显示。 如果实际期望和这些配置不符,建议在java连接设置代码中显式设定这些参数。 通过JDBC连接数据库时,会设置extra_float_digits=3,gsql中设置为extra_float_digits=0,可能会造成同一条数据在JDBC显示和gsql显示的精度不同。 对于精度敏感的场景,建议使用numeric类型。 通过JDBC连接数据库时,应该保证以下三个时区设置一致: JDBC客户端所在主机的时区。 GaussDB集群所在主机的时区。 GaussDB集群配置过程中时区。 时区设置相关的操作,请联系管理员。
  • 释放连接 推荐使用连接池限制应用程序的连接数。不建议每执行一条SQL就连接一次数据库。 在应用程序完成作业任务之后,应当及时断开和GaussDB的连接,释放资源。建议在任务中设置session超时时间参数。 使用JDBC连接池,在将连接释放给连接池前,需要执行以下操作,重置会话环境。否则,可能会因为历史会话信息导致对象冲突。 如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须使用“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”将连接的状态清空。 如果使用了临时表,那么在将连接归还连接池之前,必须将临时表删除。
  • PV_SESSION_TIME PV_SESSION_TIME视图显示会话线程的运行时间信息及各执行阶段所消耗的时间。具体字段信息如表1所示。 表1 PV_SESSION_TIME字段 名称 类型 描述 sessid text 线程标识+线程启动时间。 stat_id integer 统计编号。 stat_name text 会话类型名称。 DB_TIME:作业在多核下的有效时间花费。 CPU_TIME:CPU时间的消耗。 EXECUTION_TIME:执行器内花费的时间。 PARSE_TIME:SQL解析的时间花费。 PLAN_TIME:生成Plan的时间花费。 REWRITE_TIME:SQL重写的时间消耗。 PL_EXECUTION_TIME:plpgsql(存储过程)的执行时间。 PL_COMPILATION_TIME:plpgsql(存储过程)编译时间。 NET_SEND_TIME:网络上的时间花销。 DATA_IO_TIME:I/O时间上的花销。 value bigint 会话值。 父主题: 其他系统视图
  • enable_global_syscache 参数说明:控制是否使用全局系统缓存功能。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启全局系统缓存功能。 off:表示不开启全局系统缓存功能。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:建议打开,可以降低系统缓存内存占用,提高并发扩展能力。推荐结合线程池参数使用,打开该参数后,如果需要访问备机,建议设置备机wal_level级别为hot_standby以上。
  • global_syscache_threshold 参数说明:全局系统缓存内存最大占用大小,使用时需要打开enable_global_syscache参数。 参数类型:整型 参数单位:kB 取值范围:16384~1073741824 默认值:163840 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:热点DB个数和线程个数的最小值乘以每个DB分配的内存大小,即global_syscache_threshold = min(count(hot dbs),count(threads)) * memofdb。 热点DB数即访问较为频繁的数据库,线程数在线程池模式下取线程池线程个数和后台线程个数之和,非线程池模式不需要计算这个值,直接使用热点DB数。 memofdb即平均每个db应该分配的内存,每个DB的底噪内存是2M,平均每增加一个表或者索引,增加11k内存。 如果设置的值过小,会导致内存频繁淘汰,内存存在大量碎片无法回收,导致内存控制失效。
  • ADM_TAB_STATISTICS ADM_TAB_STATISTICS显示数据库中所有表的优化程序统计信息。该视图同时存在于PG_CATALOG和SYS Schema下。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。 表1 ADM_TAB_STATISTICS字段 名称 类型 描述 owner character varying(128) 对象的所有者。 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。 父主题: 其他系统视图
  • ai_watchdog_monitor_status 表1 ai_watchdog_monitor_status参数说明 参数 类型 描述 metric_name text metric指标名称: tps:TPS。 tps_hourly:每小时的TPS均值。 shared_used_mem:共享内存使用量(MB)。 dynamic_used_shrctx:共享内存上下文使用量(MB)。 other_used_mem:其他内存使用量(MB)。 process_used_mem:系统常驻内存使用量(MB)。 dynamic_used_mem:动态内存使用量(MB)。 malloc_failures:每个采集间隔内的内存分配失败次数。 D_state_rate:D状态线程比例。 R_state_rate:R状态线程比例。 S_state_rate:S状态线程比例。 db_state:数据库的状态(68表示D、82表示R、83表示S)。 cpu_usage:CPU使用率,上限100。 disk_io:两个采集间隔内的磁盘I/O延迟。 network_io:两个采集间隔内的网络I/O延迟。 threadpool_usage:线程池使用率。 threadpool_hang_rate:线程池group处于hang状态的比例。 max_length int 采集队列长队。 current_length int 当前采集到的样本数。 collection_interval int 采集间隔,单位秒。 latest_value int 上次采集到的值,没采集到为null。 last_report timestamp 上次采集时刻。 父主题: AI Watchdog
共100000条