华为云用户手册

  • PG_COMM_DELAY PG_COMM_DELAY视图展示单个DN的通信库时延状态。 表1 PG_COMM_DELAY字段 名称 类型 描述 node_name text 节点名称。 remote_name text 连接对端时延最大的节点名称。 remote_host text 连接对端IP地址。 stream_num integer 当前物理连接使用的stream逻辑连接数量。 min_delay integer 当前物理连接探测到的最小时延,单位微秒。 average integer 当前物理连接探测时延的平均值,单位微秒。 max_delay integer 当前物理连接探测到的最大时延,单位微秒。 说明: 取值为-1,表示时延探测超时失败,请重新建立节点间连接后再执行查询。 父主题: 系统视图
  • syscache_clean_policy 参数说明:设置DN空闲连接内存及数量清理策略。该参数仅9.1.0.100及以上集群版本支持。 参数类型:SIGHUP 取值范围:字符串 该参数策略由以下三个值组成: 第一个值的取值为0~1,表示DN已使用内存占总可用内存比例。如果已使用内存占用达到该值时,清理1/4的stream线程,继续执行第二个取值的判断。 第二个值的取值为0~1,表示DN上syscache内存占总可用内存比例。如果syscache内存占用达到该值时,继续执行第三个取值的判断。 第三个值的取值为0~INT_MAX,单位为MB。表示空闲线程的syscache内存占用大小。如果空闲线程syscache内存占用达到该值时,则清理该线程占用的syscache。 默认值:0.8,0.3,64 设置该参数前,需使用pv_session_memory_detail视图及pv_total_memory_detail视图查看内存占用情况,进行评估。 设置该参数值时,需遵循设置格式,确保三个值之间以英文逗号分隔,且中间没有空格。 如果没有遵循规定的参数值设置格式导致设置失败,会在日志中产生WARNING类型日志,且使用SHOW命令查询该参数时,显示的为上一次设置成功的参数值;如果设置失败重启,该参数会按照默认值进行设置。 CN上处于Readcommand阶段的线程,超时30s之后,判断syscache大于256MB清理DN。有以下两个操作: 由辅助线程监控内存占用,如果整体内存占用到80%时,清理1/4的stream线程,并判断syscache占用是否超过总占用内存的30%,如果大于30%,则清理大于64MB的Readcommand阶段pg线程的syscache。 stream线程在空闲大于30s,且syscache占用大于64MB,则清理syscache。
  • 使用函数加解密 GaussDB (DWS)支持使用以下函数对字符串进行加解密。 gs_encrypt(encryptstr, keystr, cryptotype, cryptomode, hashmethod) 描述:采用cryptotype和cryptomode组成的加密算法以及hashmethod指定的HMAC算法,以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。支持的cryptotype:aes128, aes192, aes256, sm4。支持的cryptomode:cbc。支持的hashmethod:sha256, sha384, sha512, sm3。支持的加密数据类型:目前数据库支持的数值类型,字符类型,二进制类型中的RAW,日期/时间类型中的DATE、TIMESTAMP、SMALLDATETIME。keystr的长度范围与加密算法相关,为1~KeyLen字节。当cryptotype为aes128和sm4时,KeyLen为16,aes192时KeyLen为24,aes256时KeyLen为32。 返回值类型:text 返回值长度:至少为 4*[(maclen + 56)/3] 字节,不超过 4*[(Len + maclen + 56)/3] 字节,其中Len为加密前数据长度(单位为字节),maclen为HMAC值的长度,当hashmethod为sha256和sm3时maclen为32,sha384时maclen为48,sha512时maclen为64。即当hashmethod为sha256和sm3时,返回值长度至少为120字节,不超过4*[(Len + 88)/3] 字节;当hashmethod为sha384时,返回值长度至少为140字节,不超过4*[(Len + 104)/3] 字节;当hashmethod为sha512时,返回值长度至少为160字节,不超过4*[(Len + 120)/3] 字节; 示例: 1 2 3 4 5 SELECT gs_encrypt('GaussDB(DWS)', '1234', 'aes128', 'cbc', 'sha256'); gs_encrypt -------------------------------------------------------------------------------------------------------------------------- AAAAAAAAAACcFjDc CS bop7D87sOa2nxTFrkE9RJQGK34ypgrOPsFJIqggI8tl+eMDcQYT3po98wPCC7VBfhv7mdBy7IVnzdrp0rdMrD6/zTl8w0v9/s2OA== (1 row) 由于该函数的执行过程需要传入解密口令,为了安全起见,gsql工具不会将该函数记录入执行历史。即无法在gsql里通过上下翻页功能找到该函数的执行历史。 在同一张数据表中,加密函数ge_encrypt与gs_encrypt_aes128不要混合使用。 gs_decrypt(decryptstr, keystr, cryptotype, cryptomode, hashmethod) 描述:采用cryptotype和cryptomode组成的加密算法以及hashmethod指定的HMAC算法,以keystr为密钥对decryptstr字符串进行解密,返回解密后的字符串。解密使用的keystr必须保证与加密时使用的keystr一致才能正常解密。keystr不得为空。 返回值类型:text 示例: 1 2 3 4 5 SELECT gs_decrypt('AAAAAAAAAACcFjDcCSbop7D87sOa2nxTFrkE9RJQGK34ypgrOPsFJIqggI8tl+eMDcQYT3po98wPCC7VBfhv7mdBy7IVnzdrp0rdMrD6/zTl8w0v9/s2OA==', '1234', 'aes128', 'cbc', 'sha256'); gs_decrypt -------------- GaussDB(DWS) (1 row) 由于该函数的执行过程需要传入解密口令,为了安全起见,gsql工具不会将该函数记录入执行历史。即无法在gsql里通过上下翻页功能找到该函数的执行历史。 此函数需要结合gs_encrypt加密函数共同使用,且加密算法和HMAC算法要保证一致。 gs_encrypt_aes128(encryptstr,keystr) 描述:以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。keystr的长度范围为1~16字节。支持的加密数据类型:目前数据库支持的数值类型,字符类型,二进制类型中的RAW,日期/时间类型中的DATE、TIMESTAMP、SMALLDATETIME。 返回值类型:text 返回值长度:至少为92字节,不超过 4*[(Len+68)/3] 字节,其中Len为加密前数据长度(单位为字节)。 示例: 1 2 3 4 5 SELECT gs_encrypt_aes128('DWS','1234'); gs_encrypt_aes128 ---------------------------------------------------------------------------------------------- ZrCp794vO5I9qJ+jHFf/sQqRyMBy0lKIDGP5S8RJXzgmpXoa/e4EgmK82P5y5xe1bOXbJeoNxyHagK9OhPVVeJDbn/M= (1 row) 由于该函数的执行过程需要传入解密口令,为了安全起见,gsql工具不会将该函数记录入执行历史。即无法在gsql里通过上下翻页功能找到该函数的执行历史。 在同一张数据表中,加密函数gs_encrypt_aes128与ge_encrypt不要混合使用。 gs_decrypt_aes128(decryptstr,keystr) 描述:以keystr为密钥对decryptstr字符串进行解密,返回解密后的字符串。解密使用的keystr必须保证与加密时使用的keystr一致才能正常解密。keystr不得为空。 返回值类型:text 示例: 1 2 3 4 5 SELECT gs_decrypt_aes128('ZrCp794vO5I9qJ+jHFf/sQqRyMBy0lKIDGP5S8RJXzgmpXoa/e4EgmK82P5y5xe1bOXbJeoNxyHagK9OhPVVeJDbn/M=','1234'); gs_decrypt_aes128 ------------------- DWS (1 row) 由于该函数的执行过程需要传入解密口令,为了安全起见,gsql工具不会将该函数记录入执行历史。即无法在gsql里通过上下翻页功能找到该函数的执行历史。 此函数需要结合gs_encrypt_aes128加密函数共同使用。 gs_hash(hashstr, hashmethod) 描述:以hashmethod算法对hashstr字符串进行信息摘要,返回信息摘要字符串。支持的hashmethod:sha256, sha384, sha512, sm3。 返回值类型:text 返回值长度:sha256和sm3返回64字节,sha384返回96字节,sha512返回128字节。 示例: 1 2 3 4 5 SELECT gs_hash('GaussDB(DWS)', 'sha256'); gs_hash -------------------------------------------------------------------------------------------------- e59069daa6541ae20af7c747662702c731b26b8abd7a788f4d15611aa0db608efdbb5587ba90789a983f85dd51766609 (1 row) md5(string) 描述:将string使用MD5加密,并以16进制数作为返回值。 MD5的安全性较低,不建议使用。 返回值类型:text 示例: 1 2 3 4 5 SELECT md5('ABC'); md5 ---------------------------------- 902fbdd2b1df0c4f70b4a5d23525e932 (1 row) 父主题: 敏感数据管理
  • 应用实例 查看当前处于阻塞状态的查询语句。 1 SELECT datname,usename,state,query FROM PGXC_STAT_ACTIVITY WHERE waiting = true; 查看快照线程的工作状态。 1 SELECT application_name,backend_start,state_change,state,query FROM PGXC_STAT_ACTIVITY WHERE application_name='WDRSnapshot'; 查看正在运行的查询语句。 1 2 3 4 5 6 7 8 9 SELECT datname,usename,state,pid FROM PGXC_STAT_ACTIVITY; datname | usename | state | pid ----------+---------+--------+----------------- gaussdb | Ruby | active | 140298793514752 gaussdb | Ruby | active | 140298718004992 gaussdb | Ruby | idle | 140298650908416 gaussdb | Ruby | idle | 140298625742592 gaussdb | dbadmin | active | 140298575406848 (5 rows) 查看指定数据库postgres上已使用的会话连接数。其中1表示数据库postgres上已使用的会话连接数。 1 2 3 4 5 SELECT COUNT(*) FROM PGXC_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row)
  • java.sql.CallableStatement java.sql.CallableStatement是存储过程执行接口。 表1 对java.sql.CallableStatement的支持情况 方法名 返回值类型 支持JDBC 4 registerOutParameter(int parameterIndex, int type) void Yes wasNull() boolean Yes getString(int parameterIndex) String Yes getBoolean(int parameterIndex) boolean Yes getByte(int parameterIndex) byte Yes getShort(int parameterIndex) short Yes getInt(int parameterIndex) int Yes getLong(int parameterIndex) long Yes getFloat(int parameterIndex) float Yes getDouble(int parameterIndex) double Yes getBigDecimal(int parameterIndex) BigDecimal Yes getBytes(int parameterIndex) byte[] Yes getDate(int parameterIndex) Date Yes getTime(int parameterIndex) Time Yes getTimestamp(int parameterIndex) Timestamp Yes getObject(int parameterIndex) Object Yes 不允许含有OUT参数的语句执行批量操作。 以下方法是从java.sql.Statement继承而来:close,execute,executeQuery,executeUpdate,getConnection,getResultSet,getUpdateCount,isClosed,setMaxRows , setFetchSize。 以下方法是从java.sql.PreparedStatement继承而来:addBatch,clearParameters,execute,executeQuery,executeUpdate,getMetaData,setBigDecimal,setBoolean,setByte,setBytes,setDate,setDouble,setFloat,setInt,setLong,setNull,setObject,setString,setTime,setTimestamp 。 父主题: JDBC接口参考
  • GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HISTORY中的记录导入此系统表,开启此功能会占用系统存储空间并对性能有一定影响,不建议用户使用。 此系统表的schema是dbms_om。 pg_catalog下存在GS_WLM_OPERATOR_INFO视图。 表1 GS_WLM_OPERATOR_INFO的字段 名称 类型 描述 nodename text 执行语句的CN实例名称。 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间(ms)。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值(MB)。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值(MB)。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值(MB)。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量(MB),默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量(MB),默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间(ms)。 max_cpu_time bigint 该算子在所有DN上的最大执行时间(ms)。 total_cpu_time bigint 该算子在所有DN上的总执行时间(ms)。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统表
  • GS_QUERY_MONITOR GS_QUERY_MONITOR视图显示正在执行的查询运行/排队信息及资源使用信息,只显示排队和正在运行的作业,仅支持在CN上查询使用,仅显示主语句监控信息。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_QUERY_MONITOR视图字段 名称 类型 描述 usename name 执行该查询的用户名称。 nodename name 执行该查询的CN名称。 nodegroup name 执行该查询的集群名称,默认集群显示“installation”。 rpname name 该查询关联的资源池名称。 priority name 查询当前优先级,包含Rush/High/Medium/Low四个优先级。 xact_start timestamp 查询所属事务的开启时间。 query_start timestamp 查询执行开始时间。 block_time bigint 作业累积已排队时间,存储过程、多语句可能多次排队。单位:秒。 duration bigint 作业已运行时间,不包含排队时间。单位:秒。 query_band text 显示作业标识,可通过GUC参数query_band设置,默认为空。 attribute text 作业属性: Simple:简单作业; Complicated:复杂作业。 作业进入资源池管控前无意义,只有进入或已完成资源池管控该字段才有意义。 lane text 作业排队/执行所处的资源池车道: fast:快车道; slow:慢车道。 作业进入资源池管控前无意义,只有进入或已完成资源池管控该字段才有意义。 status text 作业当前状态,包含pending/running两种可能状态。 queue text 作业排队信息: None:作业正在运行; Global:作业在CN全局并发队列排队; Respool:作业在资源池队列排队; CCN:作业在CCN排队。 used_mem integer 作业在所有DN上内存峰值的最大值,单位:MB。 estimate_mem integer 作业估算内存,单位:MB。 used_cpu double precision 作业开始运行至今,占用CPU核数的平均值。 read_speed integer 作业当前在所有DN上逻辑IO读速率的平均值,单位:KB/s。 write_speed integer 作业当前在所有DN上逻辑IO写速率的平均值,单位:KB/s。 send_speed integer 作业开始运行至今,在所有DN上网络发送速率的平均值,单位:KB/s。 recv_speed integer 作业开始运行至今,在所有DN上网络接收速率的平均值,单位:KB/s。 dn_count bigint 执行该作业的DN数量。 stream_count bigint 作业在所有DN上stream线程的数量之和。 pid bigint 后端线程ID。 lwtid integer 后台线程的轻量级线程号。 query_id bigint 查询ID。 unique_sql_id bigint 归一化的Unique SQL ID。 query text 正在执行的查询。 父主题: 系统视图
  • V$SESSION_LONGOPS V$SESSION_LONGOPS视图存储当前正在执行的操作的进度。 表1 V$SESSION_LONGOPS字段 名称 类型 描述 sid bigint 当前正在执行的后台进程的OID。 serial# integer 当前正在执行的后台进程的序号,在GaussDB(DWS)中为0。 sofar integer 目前完成的工作量,在GaussDB(DWS)中为空。 totalwork integer 工作总量,在GaussDB(DWS)中为空。 父主题: 系统视图
  • PGXC_GROUP PGXC_GROUP系统表存储节点组信息,在存算分离3.0版本中,每个逻辑集群节点组称为一个VW(Virtual Warehouse),而在存储KV层,每一个VW会和一个vgroup相对应。 表1 PGXC_GROUP字段 名称 类型 描述 group_name name 节点组名称。 in_redistribution "char" 是否需要重分布: n表示NodeGroup没有再进行重分布。 y表示NodeGroup是重分布过程中的源节点组。 t表示NodeGroup是重分布过程中的目的节点组。 s表示NodeGroup不需要重分布,重分布过程将跳过此节点组。 group_members oidvector_extend 节点组的节点OID列表。 group_buckets text 分布数据桶的集合。 is_installation boolean 是否安装子集群。 group_acl aclitem[] 访问权限。 group_kind "char" 节点组类型: i表示安装节点组,包含所有DN节点。 n表示普通非逻辑集群节点组。 v表示逻辑集群节点组。 e表示弹性集群节点组 r表示复制表节点组,只能用于创建复制表,可以包含一个或多个逻辑集群节点组。 group_ckpt_csn xid 节点组最近一次执行增量抽取的CSN。 vgroup_id xid 节点组对应vgroup的ID标识。 vgroup_bucket_count oid 节点组对应vgroup的桶数目。 group_ckpt_time timestamp with time zone 节点组最近一次执行增量抽取的物理时间。 apply_kv_duration integer 节点组最近一次执行增量抽取中增量扫描耗时(单位为秒)。 ckpt_duration integer 节点组最近一次执行增量抽取中checkpoint耗时(单位为秒)。 父主题: 系统表
  • GS_VIEW_DEPENDENCY_PATH GS_VIEW_DEPENDENCY_PATH视图提供查询当前用户可见的所有视图的直接依赖关系。如果该视图依赖的基础表存在且各级视图依赖关系正常,通过该视图可以查询自基础表开始的各级视图的依赖关系。 表1 GS_VIEW_DEPENDENCY_PATH字段 名称 类型 描述 objschema name 视图空间名称。 objname name 视图名称。 refobjschema name 依赖对象的空间名称。 refobjname name 依赖对象的名称。 path text 依赖路径。 父主题: 系统视图
  • 结构 PL/SQL块中可以包含子块,子块可以位于PL/SQL中任何部分。PL/SQL块的结构如下: 声明部分:声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数。 DECLARE 不涉及变量声明时声明部分可以没有。 对匿名块来说,没有变量声明部分时,可以省去DECLARE关键字。 对存储过程来说,没有DECLARE, AS相当于DECLARE。即便没有变量声明的部分,关键字AS也必须保留。 执行部分:过程及SQL语句,程序的主要部分。必选。 BEGIN 执行异常部分:错误处理。可选。 EXCEPTION 结束 END; / 禁止在PL/SQL块中使用连续的Tab,连续的Tab可能会造成在使用gsql工具带“-r”参数执行PL/SQL块时出现异常。
  • archive_command 参数说明:由管理员设置的用于归档WAL日志的命令,建议归档路径为绝对路径。 参数类型:SIGHUP 取值范围:字符串 默认值:(disabled) 字符串中任何%p都被要归档的文件的绝对路径代替,而任何%f都只被该文件名代替(相对路径都相对于数据目录的)。如果需要在命令里嵌入%字符就必须双写%。 这个命令当且仅当成功的时候才返回零。示例如下: 1 2 archive_command = 'cp --remove-destination %p /mnt/server/archivedir/%f' archive_command = 'copy %p /mnt/server/archivedir/%f' # Windows --remove-destination选项作用为:复制前如果目标文件已存在,会先删除已存在的目标文件,然后执行复制操作。 当archive_mode为on, archive_mode未设置时,系统会在pg_xlog目录下新建backup目录,并将wal日志复制压缩至pg_xlog/backup目录。
  • archive_timeout 参数说明:表示归档周期。 参数类型:SIGHUP 取值范围:整型,0 ~ INT_MAX,单位为秒。其中0表示禁用该功能。 默认值:0 超过该参数设定的时间时强制切换WAL段。 由于强制切换而提早关闭的归档文件仍然与完整的归档文件长度相同。因此,将archive_timeout设为很小的值将导致占用巨大的归档存储空间,建议将archive_timeout设置为60秒。
  • 操作步骤 获取unixODBC源码包。 获取参考地址:https://sourceforge.net/projects/unixodbc/files/unixODBC/2.3.0/unixODBC-2.3.0.tar.gz/download 目前不支持unixODBC-2.2.1版本。以unixODBC-2.3.0版本为例,在客户端执行如下命令安装unixODBC。默认安装到“/usr/local”目录下,生成数据源文件到 “/usr/local/etc”目录下,库文件生成在“/usr/local/lib”目录。 tar zxvf unixODBC-2.3.0.tar.gz cd unixODBC-2.3.0 #修改configure文件(如果不存在,那么请修改configure.ac),找到LIB_VERSION #将它的值修改为"1:0:0",这样将编译出*.so.1的动态库,与psqlodbcw.so的依赖关系相同。 vim configure ./configure --enable-gui=no #如果要在TaiShan服务器上编译,请追加一个configure参数: --build=aarch64-unknown-linux-gnu make #安装可能需要root权限 make install 安装unixODBC。如果机器上已经安装了其他版本的unixODBC,可以直接覆盖安装。 替换客户端GaussDB(DWS)驱动程序。 将dws_8.x.x_odbc_driver_for_xxx_xxx.zip解压,在“/dws_8.x.x_odbc_driver_for_xxx_xxx/odbc/lib”目录下得到“psqlodbcw.la”和“psqlodbcw.so”两个文件。 配置数据源。 配置ODBC驱动文件。 在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。 [GaussMPP] Driver64=/usr/local/lib/psqlodbcw.so setup=/usr/local/lib/psqlodbcw.so odbcinst.ini文件中的配置参数说明如表1所示。 表1 odbcinst.ini文件配置参数 参数 描述 示例 [DriverName] 驱动器名称,对应数据源DSN中的驱动名。 [DRIVER_N] Driver64 驱动动态库的路径。 Driver64=/xxx/odbc/lib/psqlodbcw.so setup 驱动安装路径,与Driver64中动态库的路径一致。 setup=/xxx/odbc/lib/psqlodbcw.so 配置数据源文件。 在“/usr/local/etc/odbc.ini ”文件中追加以下内容。 [MPPODBC] Driver=GaussMPP Servername=10.10.0.13(数据库Server IP) Database=gaussdb (数据库名) Username=dbadmin (数据库用户名) Password= (数据库用户密码) Port=8000 (数据库监听端口) Sslmode=allow odbc.ini文件配置参数说明如表2所示。 表2 odbc.ini文件配置参数 参数 描述 示例 [DSN] 数据源的名称。 [MPPODBC] Driver 驱动名,对应odbcinst.ini中的DriverName。 Driver=DRIVER_N Servername 服务器的IP地址。 Servername=10.145.130.26 Database 要连接的数据库的名称。 Database=gaussdb Username 数据库用户名称。 Username=dbadmin Password 数据库用户密码。 Password= 说明: ODBC驱动本身已经对内存密码进行过清理,以保证用户密码在连接后不会再在内存中保留。 但是如果配置了此参数,由于UnixODBC对数据源文件等进行缓存,可能导致密码长期保留在内存中。 推荐在应用程序连接时,将密码传递给相应API,而非写在数据源配置文件中。同时连接成功后,应当及时清理保存密码的内存段。 Port 服务器的端口号。 Port=8000 Sslmode 开启SSL模式。 Sslmode=allow UseServerSidePrepare 是否开启数据库端扩展查询协议。 可选值0或1,默认为1,表示打开扩展查询协议。 UseServerSidePrepare=1 UseBatchProtocol 是否开启批量查询协议(打开可提高DML性能);可选值0或者1,默认为1。 当此值为0时,不使用批量查询协议(主要用于与早期数据库版本通信兼容)。 当此值为1,并且数据库support_batch_bind参数存在且为on时,将打开批量查询协议。 UseBatchProtocol=1 ConnectionExtraInfo GUC参数connection_info(参见connection_info)中显示驱动部署路径和进程属主用户的开关。 ConnectionExtraInfo=1 说明: 默认值为1。当设置为0时,ODBC驱动会将当前驱动的名称、驱动版本上报到数据库中;当设置为1时,ODBC驱动会将当前驱动的名称、部署路径、进程属主用户上报到数据库中,记录在connection_info参数(参见connection_info)里;同时可以在PG_STAT_ACTIVITY和PGXC_STAT_ACTIVITY中查询到。 ForExtensionConnector ETL工具性能优化参数,可进行内存优化,降低对端的CN内存占用,避免因CN内存使用过多导致系统不稳定。 可选值0或者1,默认为0,表示不开启优化项。 请勿在数据库系统之外的其他业务中配置此参数,以免影响业务的正确性。 ForExtensionConnector=1 KeepDisallowPremature 当UseDeclareFetch=1时,应用程序调用SQLPrepare后调用SQLNumResultCols、SQLDescribeCol或SQLColAttribute获取结果集列信息时,SQL语句中的游标是否具有with hold属性。 可选值0或者1,0表示具有with hold属性,1表示不具有with hold属性,默认为0。 KeepDisallowPremature=1 说明: UseServerSidePrepare=1时,KeepDisallowPremature参数不生效,使用时需要指定UseServerSidePrepare为0,例如:UseDeclareFetch=1 KeepDisallowPremature=1 UseServerSidePrepare=0 其中关于sslmode的选项的允许值,具体信息见下表: 表3 sslmode的可选项及其描述 sslmode 是否会启用SSL加密 描述 disable 否 不使用SSL安全连接。 allow 可能 如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer 可能 如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。 require 是 必须使用SSL安全连接,但是只做了 数据加密 ,而并不验证数据库服务器的真实性。 verify-ca 是 必须使用SSL安全连接,并且验证数据库是否具有可信证书机器签发的证书。 verify-full 是 必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。GaussDB(DWS)不支持此模式。 SSL模式 如果需要使用SSL证书连接,那么请将GaussDB(DWS)安装包中的SSLCERT的证书包解压,在shell环境下,执行“source sslcert_env.sh”,即在当前会话完成证书的默认位置的部署。 或者手动声明如下环境变量,同时保证client.key*系列文件为600权限: export PGSSLCERT="/YOUR/PATH/OF/client.crt" #请修改该路径到client.crt的绝对路径 export PGSSLKEY="/YOUR/PATH/OF/client.key" #请修改该路径到client.key的绝对路径 同时将数据源中的Sslmode选项调整至“verify-ca”。 将客户端所在主机的IP网段加入GaussDB(DWS)的安全组规则,确保客户端主机与GaussDB(DWS)网络互通。 配置环境变量。 vim ~/.bashrc 在配置文件中追加以下内容。 export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH export OD BCS YSINI=/usr/local/etc export ODBCINI=/usr/local/etc/odbc.ini 执行如下命令使设置生效。 source ~/.bashrc
  • 常见问题处理 [UnixODBC][Driver Manager]Can't open lib 'xxx/xxx/psqlodbcw.so' : file not found. 此问题的可能原因: odbcinst.ini文件中配置的路径不正确 确认的方法:'ls'一下错误信息中的路径,以确保该psqlodbcw.so文件存在,同时具有执行权限。 psqlodbcw.so的依赖库不存在,或者不在系统环境变量中 确认的办法:ldd一下错误信息中的路径,如果是缺少libodbc.so.1等UnixODBC的库,那么按照“操作步骤”中的方法重新配置UnixODBC,并确保它的安装路径下的lib目录添加到了LD_LIBRARY_PATH中;如果是缺少其他库,请将ODBC驱动包中的lib目录添加到LD_LIBRARY_PATH中。 [UnixODBC]connect to server failed: no such file or directory 此问题可能的原因: 配置了错误的/不可达的数据库地址,或者端口 请检查数据源配置中的Servername及Port配置项。 服务器监听不正确 如果确认Servername及Port配置正确,请根据“操作步骤”中数据库服务器的相关配置,确保数据库监听了合适的网卡及端口。 防火墙及网闸设备 请确认防火墙设置,将数据库的通信端口添加到可信端口中。 如果有网闸设备,请确认一下相关的设置。 [unixODBC]The password-stored method is not supported. 此问题可能原因: 数据源中未配置sslmode配置项。 解决办法: 请配置该选项至allow或以上选项。此配置的更多信息,见表3。 Server common name "xxxx" does not match host name "xxxxx" 此问题的原因: 使用了SSL加密的“verify-full”选项,驱动程序会验证证书中的主机名与实际部署数据库的主机名是否一致。 解决办法: 碰到此问题可以使用“verify-ca”选项,不再校验主机名;或者重新生成一套与数据库所在主机名相同的CA证书。 Driver's SQLAllocHandle on SQL_HANDLE_DBC failed 此问题的可能原因: 可执行文件(比如UnixODBC的isql,以下都以isql为例)与数据库驱动(psqlodbcw.so)依赖于不同的odbc的库版本:libodbc.so.1或者libodbc.so.2。此问题可以通过如下方式确认: ldd `which isql` | grep odbc ldd psqlodbcw.so | grep odbc 这时,如果输出的libodbc.so最后的后缀数字不同或者指向不同的磁盘物理文件,那么基本就可以断定是此问题。isql与psqlodbcw.so都会要求加载libodbc.so,这时如果它们加载的是不同的物理文件,便会导致两套完全同名的函数列表,同时出现在同一个可见域里(UnixODBC的libodbc.so.*的函数导出列表完全一致),产生冲突,无法加载数据库驱动。 解决办法: 确定一个要使用的UnixODBC,然后卸载另外一个(比如卸载库版本号为.so.2的UnixODBC),然后将剩下的.so.1的库,新建一个同名但是后缀为.so.2的软链接,便可解决此问题。 FATAL: Forbid remote connection with trust method! 由于安全原因,数据库CN禁止集群内部其他节点无认证接入。 如果要在集群内部访问CN,请将ODBC程序部署在CN所在机器,服务器地址使用"127.0.0.1"。建议业务系统单独部署在集群外部,否则可能会影响数据库运行性能。 [unixODBC][Driver Manager]Invalid attribute value 在使用SQL on other GaussDB功能时碰到此问题,有可能是unixODBC的版本并非推荐版本,建议通过“odbcinst --version”命令排查环境中的unixODBC版本。 authentication method 10 not supported. 使用开源客户端碰到此问题,可能原因: 数据库中存储的口令校验只存储了SHA256格式哈希,而开源客户端只识别MD5校验,双方校验方法不匹配报错。 数据库并不存储用户口令,只存储用户口令的哈希码。 早期版本(V100R002C80SPC300之前的版本)的数据库只存储了SHA256格式的哈希,并未存储MD5的哈希,所以无法使用MD5做用户口令校验。 新版本(V100R002C80SPC300及之后版本)的数据库当用户更新用户口令或者新建用户时,会同时存储两种格式的哈希码,这时将兼容开源的认证协议。 但是当老版本升级到新版本时,由于哈希的不可逆性,所以数据库无法还原用户口令,进而生成新格式的哈希,所以仍然只保留了SHA256格式的哈希,导致仍然无法使用MD5做口令认证。 要解决该问题,可以更新用户口令;或者新建一个用户,赋予同等权限,使用新用户连接数据库。 unsupported frontend protocol 3.51: server supports 1.0 to 3.0 目标数据库版本过低,或者目标数据库为开源数据库。请使用对应版本的数据库驱动连接目标数据库。
  • GS_WAIT_EVENTS GS_WAIT_EVENTS视图显示当前节点上各类等待状态和事件的统计信息。 仅在GUC参数enable_track_wait_event为on的情况下,视图中各统计字段的数值才会被累加。若在运行过程中将enable_track_wait_event设置为off,则不再累加统计数值,但已有数值不受影响。enable_track_wait_event为off,查询该视图返回0行。 表1 GS_WAIT_EVENTS字段 名称 类型 描述 nodename name 节点名称。 type text 事件的类型,包括STATUS,LOCK_EVENT,LWLOCK_EVENT和IO_EVENT四种类型。 event text 事件名称,可参考PG_THREAD_WAIT_STATUS视图。 wait bigint 事件发生次数。该字段及以下字段均为进程运行中的累计值。 failed_wait bigint 等待失败次数。当前版本中只有LOCK和LWLOCK等锁超时或失败才会使用该字段。 total_wait_time bigint 该事件总持续时间。 avg_wait_time bigint 该事件平均持续时间。 max_wait_time bigint 该事件最大等待时间。 min_wait_time bigint 该事件最小等待时间。 当前版本中,对于type='LOCK_EVENT','LWLOCK_EVENT'和'IO_EVENT'的事件,GS_WAIT_EVENTS视图显示范围与PG_THREAD_WAIT_STATUS视图对应事件相同。 对于type='STATUS'的事件GS_WAIT_EVENTS包含的等待状态列如下,其详细含义参见PG_THREAD_WAIT_STATUS视图。 acquire lwlock acquire lock wait io wait pooler get conn wait pooler abort conn wait pooler clean conn wait transaction sync wait wal sync wait data sync wait producer ready create index analyze vacuum vacuum full gtm connect gtm begin trans gtm commit trans gtm rollback trans gtm create sequence gtm alter sequence gtm get sequence val gtm set sequence val gtm drop sequence gtm rename sequence 父主题: 系统视图
  • PG_SETTINGS PG_SETTINGS视图显示数据库运行时参数的相关信息。 表1 PG_SETTINGS字段 名称 类型 描述 name text 参数名称。 setting text 参数当前值。 unit text 参数的隐式结构。 category text 参数的逻辑组。 short_desc text 参数的简单描述。 extra_desc text 参数的详细描述。 context text 设置参数值的上下文,包括internal,postmaster,sighup,backend,superuser和user。 vartype text 参数类型,包括bool,enum,integer,real和string。 source text 参数的赋值方式。 min_val text 参数最小值。如果参数类型不是数值型,那么该字段值为null。 max_val text 参数最大值。如果参数类型不是数值型,那么该字段值为null。 enumvals text[] enum类型参数合法值。如果参数类型不是enum型,那么该字段值为null。 boot_val text 数据库启动时参数默认值。 reset_val text 数据库重置时参数默认值。 sourcefile text 设置参数值的配置文件。如果参数不是通过配置文件赋值,那么该字段值为null。 sourceline integer 设置参数值的配置文件的行号。如果参数不是通过配置文件赋值,那么该字段值为null。 父主题: 系统视图
  • 使用场景 查询全库所有用户表的整体脏页率: 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 28 29 30 31 32 33 34 35 36 37 select t1.schema, t1.tablename, t1.total_ins, t1.total_upd, t1.total_del, t1. total_tup_hot_upd, t1.total_change, t1.total_live, t1.total_dead, t1.total_dirty_rate, t1.max_dirty, t2.max_node, t1.min_dirty, t2.min_node from (select a.schema, a.tablename, sum(a.n_tup_ins) as total_ins, sum(a.n_tup_upd) as total_upd, sum(a.n_tup_del) as total_del, sum(a.n_tup_hot_upd) as total_tup_hot_upd, sum(a.n_tup_change) as total_change, sum(a.n_live_tup) as total_live, sum(a.n_dead_tup) as total_dead, Round((total_dead / (total_dead + total_live + 0.0001) * 100),2) AS total_dirty_rate, max(a.dirty_rate) as max_dirty, min(a.dirty_rate) as min_dirty from pg_catalog.pgxc_stat_table_dirty a where a.partname is null and a.schema not in ('pg_toast','cstore','gs_logical_cluster','sys','dbms_om','information_schema','pg_catalog','dbms_output','dbms_random','utl_raw','utl_raw dbms_sql','dbms_lob') group by a.tablename, a.schema ) t1, (select distinct tablename, schema, first_value(nodename) over(partition by tablename, schema order by dirty_rate) as min_node, first_value(nodename) over(partition by tablename, schema order by dirty_rate desc) as max_node from (select * from pg_catalog.pgxc_stat_table_dirty)) t2 where t1.tablename = t2.tablename and t1.schema = t2.schema; 查询全库所有表(用户表+系统表)的整体脏页率: 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 28 29 30 31 32 33 34 35 36 37 select t1.schema, t1.tablename, t1.total_ins, t1.total_upd, t1.total_del, t1. total_tup_hot_upd, t1.total_change, t1.total_live, t1.total_dead, t1.total_dirty_rate, t1.max_dirty, t2.max_node, t1.min_dirty, t2.min_node from (select a.schema, a.tablename, sum(a.n_tup_ins) as total_ins, sum(a.n_tup_upd) as total_upd, sum(a.n_tup_del) as total_del, sum(a.n_tup_hot_upd) as total_tup_hot_upd, sum(a.n_tup_change) as total_change, sum(a.n_live_tup) as total_live, sum(a.n_dead_tup) as total_dead, Round((total_dead / (total_dead + total_live + 0.0001) * 100),2) AS total_dirty_rate, max(a.dirty_rate) as max_dirty, min(a.dirty_rate) as min_dirty from pg_catalog.pgxc_stat_table_dirty a where a.partname is null group by a.tablename, a.schema ) t1, (select distinct tablename, schema, first_value(nodename) over(partition by tablename, schema order by dirty_rate) as min_node, first_value(nodename) over(partition by tablename, schema order by dirty_rate desc) as max_node from (select * from pg_catalog.pgxc_stat_table_dirty)) t2 where t1.tablename = t2.tablename and t1.schema = t2.schema; 查询全库系统表信息: 1 select * from pgxc_stat_table_dirty where schema in ('pg_toast','cstore','gs_logical_cluster','sys','dbms_om','information_schema','pg_catalog','dbms_output','dbms_random','utl_raw','utl_raw dbms_sql','dbms_lob');
  • 操作步骤 查询当前实例最近的资源使用情况。 1 SELECT * FROM GS_WLM_INSTANCE_HISTORY ORDER BY TIMESTAMP DESC; 查询结果如下: instancename | timestamp | used_cpu | free_mem | used_mem | io_await | io_util | disk_read | disk_write | process_read | process_write | logical_read | logical_write | read_counts | write_counts --------------+-------------------------------+----------+----------+----------+----------+----------+-----------+------------+--------------+---------------+--------------+---------------+-------------+-------------- dn_6015_6016 | 2022-01-10 17:29:17.329495+08 | 0 | 14570 | 8982 | 662.923 | 99.9601 | 697666 | 93655.5 | 183104 | 30082 | 285659 | 30079 | 357717 | 37667 dn_6015_6016 | 2022-01-10 17:29:07.312049+08 | 0 | 14578 | 8974 | 883.102 | 99.9801 | 756228 | 81417.4 | 189722 | 30786 | 285681 | 30780 | 358103 | 38584 dn_6015_6016 | 2022-01-10 17:28:57.284472+08 | 0 | 14583 | 8969 | 727.135 | 99.9801 | 648581 | 88799.6 | 177120 | 31176 | 252161 | 31175 | 316085 | 39079 dn_6015_6016 | 2022-01-10 17:28:47.256613+08 | 0 | 14591 | 8961 | 679.534 | 100.08 | 655360 | 169962 | 179404 | 30424 | 242002 | 30422 | 303351 | 38136
  • PG_DATABASE PG_DATABASE系统表存储关于可用数据库的信息。 表1 PG_DATABASE字段 名称 类型 描述 datname name 数据库名称。 datdba oid 数据库所有者,通常为其创建者。 encoding integer 数据库的字符编码方式。 pg_encoding_to_char()可以将此编号转换为编码名称。 datcollate name 数据库使用的排序顺序。 datctype name 数据库使用的字符分类。 datistemplate boolean 是否允许作为模板数据库。 datallowconn boolean 如果为假,则没有用户可以连接到这个数据库。这个字段用于保护template0数据库不被更改。 datconnlimit integer 该数据库上允许的最大并发连接数,-1表示无限制。 datlastsysoid oid 数据库里最后一个系统OID 。 datfrozenxid xid32 用于跟踪该数据库是否需要为了防止事务ID重叠而进行清理。 为保持前向兼容,保留此字段,新增datfrozenxid64用于记录此信息。 dattablespace oid 数据库的缺省表空间。 datcompatibility name 数据库兼容模式。 ORA,表示兼容Oracle数据库。 TD,表示兼容Teradata数据库。 MySQL,表示兼容MySQL数据库。 datacl aclitem[] 访问权限。 datfrozenxid64 xid 用于跟踪该数据库是否需要为了防止事务ID重叠而进行清理。 父主题: 系统表
  • 示例 下面列举了基本的匿名块程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --空语句块 BEGIN NULL; END; / --将信息打印到控制台: BEGIN dbms_output.put_line('hello world!'); END; / --将变量内容打印到控制台: DECLARE my_var VARCHAR2(30); BEGIN my_var :='world'; dbms_output.put_line('hello'||my_var); END; /
  • PG_AVAILABLE_EXTENSION_VERSIONS PG_AVAILABLE_EXTENSION_VERSIONS视图显示数据库中某些特性的扩展版本信息。 表1 PG_AVAILABLE_EXTENSION_VERSIONS字段 名称 类型 描述 name name 扩展名。 version text 版本名。 installed boolean 如果此扩展的版本当前已经安装,则为真。 superuser boolean 如果只允许系统管理员安装此扩展,则为真。 relocatable boolean 如果扩展可以重新加载到另一个模式,则为真。 schema name 扩展必须安装到的模式名,如果部分或全部可重新定位,则为NULL。 requires name[] 必备扩展的名称,如果没有则为NULL。 comment text 扩展的控制文件的注释字符串。 父主题: 系统视图
  • PG_OPERATOR PG_OPERATOR系统表存储有关操作符的信息。 表1 PG_OPERATOR字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 oprname name - 操作符的名称。 oprnamespace oid PG_NAMESPACE.oid 包含此操作符的命名空间的OID。 oprowner oid PG_AUTHID.oid 操作符所有者。 oprkind "char" - b=infix =中缀(两边) l=前缀(左边) r=后缀(右边) oprcanmerge boolean - 该操作符是否支持合并连接。 oprcanhash boolean - 该操作符是否支持Hash连接。 oprleft oid PG_TYPE.oid 左操作数的类型。 oprright oid PG_TYPE.oid 右操作数的类型。 oprresult oid PG_TYPE.oid 结果类型。 oprcom oid PG_OPERATOR.oid 此操作符的交换符(如果存在)。 oprnegate oid PG_OPERATOR.oid 此操作符的反转器(如果存在)。 oprcode regproc PG_PROC.oid 实现该操作符的函数。 oprrest regproc PG_PROC.oid 此操作符的约束选择性计算函数。 oprjoin regproc PG_PROC.oid 此操作符的连接选择性计算函数。 父主题: 系统表
  • PGXC_WLM_SESSION_INFO PGXC_WLM_SESSION_INFO视图显示在所有CN上执行作业结束后的负载管理记录。此视图的数据直接从系统表GS_WLM_SESSION_INFO获取。 表1 PGXC_WLM_SESSION_INFO的字段 名称 类型 描述 datid oid 连接后端的数据库OID。 dbname text 连接后端的数据库名称。 schemaname text 模式名。 nodename text 语句执行的CN名称。 username text 连接到后端的用户名。 application_name text 连接到后端的应用名。 client_addr inet 连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 client_hostname text 客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。 client_port integer 客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 query_band text 用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。 block_time bigint 语句执行前的阻塞时间,包含语句解析和优化时间,单位ms。 start_time timestamp with time zone 语句执行的开始时间。 finish_time timestamp with time zone 语句执行的结束时间。 duration bigint 语句实际执行的时间,单位ms。 estimate_total_time bigint 语句预估执行时间,单位ms。 status text 语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。 abort_info text 语句执行结束状态为aborted时显示异常信息。 resource_pool text 用户使用的资源池。 control_group text 语句所使用的Cgroup。 estimate_memory integer 语句在单个实例上预估使用的内存,单位MB。该字段只有当GUC参数enable_dynamic_workload为on时才有效。 min_peak_memory integer 语句在所有DN上的最小内存峰值,单位MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值,单位MB。 average_peak_memory integer 语句执行过程中的内存使用平均值,单位MB。 memory_skew_percent integer 语句各DN间的内存使用倾斜率。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量(MB),默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量(MB),默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量(MB),默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_dn_time bigint 语句在所有DN上的最小执行时间,单位ms。 max_dn_time bigint 语句在所有DN上的最大执行时间,单位ms。 average_dn_time bigint 语句在所有DN上的平均执行时间,单位ms。 dntime_skew_percent integer 语句在各DN间的执行时间倾斜率。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位ms。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位ms。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位ms。 cpu_skew_percent integer 语句在DN间的CPU时间倾斜率。 min_peak_iops integer 语句在所有DN上的每秒最小IO峰值(列存单位是次/s,行存单位是万次/s)。 max_peak_iops integer 语句在所有DN上的每秒最大IO峰值(列存单位是次/s,行存单位是万次/s)。 average_peak_iops integer 语句在所有DN上的每秒平均IO峰值(列存单位是次/s,行存单位是万次/s)。 iops_skew_percent integer 语句在DN间的IO倾斜率。 warning text 主要显示如下几类告警信息以及SQL自诊断调优相关告警: Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict queryid bigint 语句执行使用的内部query id。 query text 执行的语句,最多可保留64KB长度的字符串。 query_plan text 语句的执行计划。 规格限制: DML语句都会显示执行计划,DDL语句不显示执行计划。 当用户下发PBE(Parse Bind Execute)批处理语句时,为了便于分析语句情况,自8.2.1.100集群版本开始,为批处理的PBE语句的执行计划添加数据绑定次数,显示为“PBE bind times:次数”格式。 node_group text 语句所属用户对应的逻辑集群。 pid bigint 语句的后端线程的PID。 lane text 语句执行时所在的快慢车道。 unique_sql_id bigint 归一化的Unique SQL ID。 session_id text 在数据库系统中唯一标记一个session,格式:session_start_time.tid.node_name。 min_read_bytes bigint 语句在所有DN上的最小IO读字节数,单位Bytes。 max_read_bytes bigint 语句在所有DN上的最大IO读字节数,单位Bytes。 average_read_bytes bigint 语句在所有DN上的平均IO读字节数,单位Bytes。 min_write_bytes bigint 语句在所有DN上的最小IO写字节数,单位Bytes。 max_write_bytes bigint 语句在所有DN上的最大IO写字节数,单位Bytes。 average_write_bytes bigint 语句在所有DN上的平均IO写字节数,单位Bytes。 recv_pkg bigint 语句在所有DN上的通信包接收总量,单位packages。 send_pkg bigint 语句在所有DN上的通信包发送总量,单位packages。 recv_bytes bigint 语句在所有DN上的通信流接收数据总量,单位Byte。 send_bytes bigint 语句在所有DN上的通信流发送数据总量,单位Byte。 stmt_type text 语句对应的查询类型。 except_info text 语句触发的异常规则信息。 parse_time bigint 语句排队前的解析总时间(包含词法语法解析,优化重写和计划生成时间),单位ms。该字段仅8.3.0.100及以上版本支持。 disk_cache_hit_ratio numeric(5,2) 磁盘缓存命中率 。该字段仅对3.0表及外表生效。 disk_cache_disk_read_size bigint 读取磁盘缓存数据的总大小,单位MB。该字段仅对3.0表及外表生效。 disk_cache_disk_write_size bigint 写入磁盘缓存的数据总大小,单位MB。该字段仅对3.0表及外表生效。 disk_cache_remote_read_size bigint 读取磁盘缓存失败,远程直读OBS的总大小,单位MB。该字段仅对3.0表及外表生效。 disk_cache_remote_read_time bigint 读取磁盘缓存失败,远程直读OBS的次数。该字段仅对3.0表及外表生效。 vfs_scan_bytes bigint OBS虚拟文件系统接收到上层请求的扫描的字节数,单位Bytes。该字段仅对3.0表及外表生效。 vfs_remote_read_bytes bigint OBS虚拟文件系统实际从OBS读取的字节数,单位Bytes。该字段仅对3.0表及外表生效。 preload_submit_time bigint 预读流程提交IO请求的总时间,单位μs。该字段仅对3.0表生效。 preload_wait_time bigint 预读流程等待IO请求的总时间,单位μs。该字段仅对3.0表生效。 preload_wait_count bigint 预读流程等待IO请求的总次数。该字段仅对3.0表生效。 disk_cache_load_time bigint 读取磁盘缓存的总时间,单位μs。该字段仅对3.0表及外表生效。 disk_cache_conflict_count bigint 读取磁盘缓存中block产生哈希冲突的次数。该字段仅对3.0表及外表生效。 disk_cache_error_count bigint 读取磁盘缓存失败的次数。该字段仅对3.0表及外表生效。 disk_cache_error_code bigint 读取磁盘缓存失败的错误码。该字段仅对3.0表及外表生效。 obs_io_req_avg_rtt bigint OBS IO请求的平均RTT(Round Trip Time,IO请求往返时间),单位为μs。该字段仅对3.0表及外表生效。 obs_io_req_avg_latency bigint OBS IO请求的平均延迟,单位为μs。该字段仅对3.0表及外表生效。 obs_io_req_latency_gt_1s bigint OBS IO请求延迟超过1s的数量。该字段仅对3.0表及外表生效。 obs_io_req_latency_gt_10s bigint OBS IO请求延迟超过10s的数量。该字段仅对3.0表及外表生效。 obs_io_req_count bigint OBS IO请求的总数量。该字段仅对3.0表及外表生效。 obs_io_req_retry_count bigint OBS IO请求重试的总次数。该字段仅对3.0表及外表生效。 obs_io_req_rate_limit_count bigint OBS IO请求被流控的总次数。该字段仅对3.0表及外表生效。 父主题: 系统视图
  • DBA_IND_COLUMNS DBA_IND_COLUMNS视图存储关于数据库中所有索引的字段信息。需要有系统管理员权限才可以访问。 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_name name 列名。 column_position smallint 索引中列的位置。 父主题: 系统视图
  • JDBC包 从管理控制台下载包名为dws_8.x.x_jdbc_driver.zip,具体下载方法请参见驱动下载。 解压后有两个JDBC的驱动jar包: gsjdbc4.jar:与PostgreSQL保持兼容的驱动包,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统使用。 gsjdbc200.jar:如果同一JVM进程内需要同时访问PostgreSQL及GaussDB(DWS)请使用此驱动包,它的主类名为“com.huawei.gauss200.jdbc.Driver”(即将“org.postgresql”替换为“com.huawei.gauss200.jdbc”),数据库连接的URL前缀为“jdbc:gaussdb”,其余与gsjdbc4.jar相同。
  • DBA_INDEXES DBA_INDEXES视图存储关于数据库下的所有索引信息。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_name character varying(64) 索引对应的表名。 uniqueness text 表示索引是否为唯一索引。 generated character varying(1) 表示索引名称是否为系统生成。 partitioned character(3) 表示索引是否具有分区表的性质。 父主题: 系统视图
  • 应用示例 查询当前节点上所有MemoryContext的使用情况。 根据sessid定位到该MemoryContext是在哪个线程中创建和使用的,依据totalsize,freesize及usedsize来确认内存的使用情况是否符合预期,预先判断是否可能存在内存泄露的风险。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 SELECT * FROM PV_SESSION_MEMORY_DETAIL order by totalsize desc; sessid | sesstype | contextname | level | parent | totalsize | freesize | usedsize ----------------------------+-------------------------+---------------------------------------------+-------+------------------------------+-----------+----------+---------- 0.139975915622720 | postmaster | gs_signal | 1 | TopMemoryContext | 17209904 | 8081136 | 9128768 1667462258.139973631031040 | postgres | SRF multi-call context | 5 | FunctionScan_139973631031040 | 1725504 | 3168 | 1722336 1667461280.139973666686720 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 284456 | 1188088 1667450443.139973877479168 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 356088 | 1116456 1667462258.139973631031040 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 128216 | 1344328 1667461250.139973915236096 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 226352 | 1246192 1667450439.139974010144512 | WLMarbiter | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 386736 | 1085808 1667450439.139974151726848 | WDRSnapshot | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 159720 | 1312824 1667450439.139974026925824 | WLMmonitor | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 297976 | 1174568 1667451036.139973746386688 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 208064 | 1264480 1667461250.139973950891776 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 270016 | 1202528 1667450439.139974076212992 | WLMCalSpaceInfo | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 393952 | 1078592 1667450439.139974092994304 | WLMCollectWorker | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 94848 | 1377696 1667461254.139973971343104 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 338544 | 1134000 1667461280.139973822945024 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 284456 | 1188088 1667450439.139974202070784 | JobScheduler | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 216728 | 1255816 1667450454.139973860697856 | postgres | CacheMemoryContext | 1 | TopMemoryContext | 1472544 | 388384 | 1084160 0.139975915622720 | postmaster | Postmaster | 1 | TopMemoryContext | 1004288 | 88792 | 915496 1667450439.139974218852096 | AutoVacLauncher | CacheMemoryContext | 1 | TopMemoryContext | 948256 | 183488 | 764768 1667461250.139973915236096 | postgres | TempSmallContextGroup | 0 | | 584448 | 148032 | 119 1667462258.139973631031040 | postgres | TempSmallContextGroup | 0 | | 579712 | 162128 | 123
  • 查看视图 查看MyView视图,查询结果为当前实时数据。 1 SELECT * FROM myview; 查看当前用户下的视图。 1 SELECT * FROM user_views; 查看所有视图。 1 SELECT * FROM dba_views; 查看某视图的具体信息。 执行如下命令查询dba_users视图的详细信息。 1 2 3 4 5 6 7 8 \d+ dba_users View "PG_CATA LOG .DBA_USERS" Column | Type | Modifiers | Storage | Description ----------+-----------------------+-----------+----------+------------- USERNAME | CHARACTER VARYING(64) | | extended | View definition: SELECT PG_AUTHID.ROLNAME::CHARACTER VARYING(64) AS USERNAME FROM PG_AUTHID;
  • GS_WORKLOAD_SQL_ELAPSE_TIME GS_WORKLOAD_SQL_ELAPSE_TIME视图显示当前节点上Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。 表1 GS_WORKLOAD_SQL_ELAPSE_TIME字段 名称 类型 描述 workload name Workload控制组名称。 total_select_elapse bigint SELECT总响应时间。 max_select_elapse bigint SELECT最大响应时间。 min_select_elapse bigint SELECT最小响应时间。 avg_select_elapse bigint SELECT平均响应时间。 total_update_elapse bigint UPDATE总响应时间。 max_update_elapse bigint UPDATE最大响应时间。 min_update_elapse bigint UPDATE最小响应时间。 avg_update_elapse bigint UPDATE平均响应时间。 total_insert_elapse bigint INSERT总响应时间。 max_insert_elapse bigint INSERT最大响应时间。 min_insert_elapse bigint INSERT最小响应时间。 avg_insert_elapse bigint INSERT平均响应时间。 total_delete_elapse bigint DELETE总响应时间。 max_delete_elapse bigint DELETE最大响应时间。 min_delete_elapse bigint DELETE最小响应时间。 avg_delete_elapse bigint DELETE平均响应时间。 父主题: 系统视图
共100000条