华为云用户手册

  • GS_LIBCOMM_MEMORY_INFO 记录当前libcomm通信库内部内存使用的基础配置信息。查询该视图需要PUBLIC权限。 表1 GS_LIBCOMM_MEMORY_INFO字段 名称 类型 描述 node_name text DN实例名。 current_used_memory bigint libcomm通信库使用内存,单位为字节(byte)。 current_data_item_num bigint libcomm无锁队列数据块个数。 init_mailbox_memory bigint libcomm初始化mailbox使用的内存,单位为字节(byte)。 max_datanode bigint libcomm通信库支持的最大DN个数。 max_stream bigint libcomm单个TCP连接支持的最大数据流个数。 max_quota_size bigint libcomm逻辑连接的buffer总大小,单位为字节(byte)。 max_usable_memory bigint libcomm通信库缓存最大可使用内存,单位为字节(byte)。 max_memory_pool bigint libcomm通信库在每个DN上可以使用的内存资源池总大小,单位为字节(byte)。 父主题: 通信
  • \COPY命令示例 \COPY的导出命令与COPY命令的区别为把命令中的COPY换成\COPY即可,此处提供一个简单的 CS V格式COPY导出命令转换为\COPY导出命令的示例: 1 2 3 4 5 6 7 --COPY命令。 COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv; --对应的\COPY命令。 \COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; \COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv;
  • 并行导入命令示例 1 2 3 4 5 6 7 8 9 10 11 12 --data_destination只能是一个表名称 --file_encoding表示该二进制文件导出时指定的编码格式。 --parallel_num表示数据导入时的客户端数量,在集群资源较为充足时建议此值为8 --CSV格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num} CSV; --FIXED格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num} FIXED; --TEXT格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num};
  • ADM_IND_SUBPARTITIONS ADM_IND_SUBPARTITIONS视图显示数据库中所有二级分区表Local索引的索引分区信息(不包含分区表全局索引)。数据库中每个二级分区表的Local索引的索引分区(如果存在的话)都会在ADM_IND_SUBPARTITIONS里有一行记录。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。分布式暂不支持二级分区,该表字段目前全置NULL。 表1 ADM_IND_SUBPARTITIONS字段 名称 类型 描述 index_owner character varying(128) 暂不支持,值为NULL。 index_name character varying(128) 暂不支持,值为NULL。 partition_name character varying(128) 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 high_value text 暂不支持,值为NULL。 high_value_length numeric 暂不支持,值为NULL。 partition_position numeric 暂不支持,值为NULL。 subpartition_position numeric 暂不支持,值为NULL。 status character varying(8) 暂不支持,值为NULL。 tablespace_name character varying(30) 暂不支持,值为NULL。 pct_free numeric 暂不支持,值为NULL。 ini_trans numeric 暂不支持,值为NULL。 max_trans numeric 暂不支持,值为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 暂不支持,值为NULL。 compression character varying(13) 暂不支持,值为NULL。 blevel numeric 暂不支持,值为NULL。 leaf_blocks numeric 暂不支持,值为NULL。 distinct_keys numeric 暂不支持,值为NULL。 avg_leaf_blocks_per_key numeric 暂不支持,值为NULL。 avg_data_blocks_per_key numeric 暂不支持,值为NULL。 clustering_factor numeric 暂不支持,值为NULL。 num_rows numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed date 暂不支持,值为NULL。 buffer_pool character varying(7) 暂不支持,值为NULL。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 interval character varying(3) 暂不支持,值为NULL。 segment_created character varying(3) 暂不支持,值为NULL。 domidx_opstatus character varying(6) 暂不支持,值为NULL。 parameters character varying(1000) 暂不支持,值为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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 --在存储过程中操作RAW数据 CREATE OR REPLACE PROCEDURE proc_raw AS str varchar2(100) := 'abcdef'; source raw(100); amount integer; BEGIN source := dbe_raw.cast_from_varchar2_to_raw(str);--类型转换 amount := dbe_raw.get_length(source);--获取长度 dbe_output.print_line(amount); END; / CREATE PROCEDURE --调用存储过程 CALL proc_raw(); 6 proc_raw ---------- (1 row) --删除存储过程 DROP PROCEDURE proc_raw; DROP PROCEDURE DECLARE v_raw RAW; v_double BINARY_DOUBLE; v_float FLOAT4; v_numeric NUMERIC; v_nvarchar2 NVARCHAR2; BEGIN -- RAW类型按位与 SELECT DBE_RAW.BIT_AND('AFF', 'FF0B') INTO v_raw; -- 0A0B -- RAW类型按位取反 SELECT DBE_RAW.BIT_COMPLEMENT('0AFF') INTO v_raw; -- F500 -- RAW类型按位异或 SELECT DBE_RAW.BIT_XOR('AFF', 'FF0B') INTO v_raw; -- F5F4 -- BINARY_DOUBLE类型值转RAW类型 SELECT DBE_RAW.CAST_FROM_BINARY_DOUBLE_TO_RAW(1.0001,1) INTO v_raw; -- 3FF00068DB8BAC71 -- RAW类型值转BINARY_DOUBLE类型 SELECT DBE_RAW.CAST_FROM_RAW_TO_BINARY_DOUBLE('3FF00068DB8BAC7',1) INTO v_double; -- 1.0001 -- RAW类型转FLOAT4类型 SELECT DBE_RAW.CAST_FROM_RAW_TO_BINARY_FLOAT('40200000',1) INTO v_float; -- 2.5 -- FLOAT4类型转RAW类型 SELECT DBE_RAW.CAST_FROM_BINARY_FLOAT_TO_RAW('2.5',1) INTO v_raw; -- 40200000 -- RAW类型转NUMERIC类型 SELECT DBE_RAW.CAST_FROM_RAW_TO_NUMBER('808002008813') INTO v_numeric; -- 2.5 -- NUMERIC类型转RAW类型 SELECT DBE_RAW.CAST_FROM_NUMBER_TO_RAW('2.5') INTO v_raw; -- 808002008813 -- RAW类型转NVARCHAR2类型 SELECT DBE_RAW.CAST_FROM_RAW_TO_NVARCHAR2('12345678') INTO v_nvarchar2; -- \x124Vx -- RAW类型COMPARE SELECT DBE_RAW.COMPARE('ABCD','AB') INTO v_numeric; -- 2 -- RAW类型CONCAT SELECT DBE_RAW.CONCAT('ABCD','AB') INTO v_raw; -- ABCDAB -- RAW类型CONVERT SELECT DBE_RAW.CONVERT('E695B0', 'GBK','UTF8') INTO v_raw; -- CAFD -- RAW类型COPIES SELECT DBE_RAW.COPIES('ABCD',2) INTO v_raw; -- ABCDABCD -- RAW类型指定位置和长度进行覆盖 SELECT DBE_RAW.OVERLAY('abcef', '12345678123456', 2, 5, '9966') INTO v_raw; -- 120ABCEF999956 -- RAW类型按字节翻转 SELECT DBE_RAW.REVERSE('12345678') INTO v_raw; -- 78563412 -- RAW类型字节转换(无填充码) SELECT DBE_RAW.TRANSLATE('1122112233', '1133','55') INTO v_raw; -- 55225522 -- RAW类型字节转换(有填充码) SELECT DBE_RAW.TRANSLITERATE('1122112233', '55','1133','FFEE') INTO v_raw; -- 55225522FF -- RAW类型两个字节间的所有字节 SELECT DBE_RAW.XRANGE('00','03') INTO v_raw; -- 00010203 END; / ANONYMOUS BLOCK EXECUTE
  • PG_STATIO_ALL_TABLES PG_STATIO_ALL_TABLES视图可用来查询当前数据库中每个表(包括TOAST表)的I/O统计信息。具体字段信息如表1所示。 表1 PG_STATIO_ALL_TABLES字段 名称 类型 描述 relid oid 表OID。 schemaname name 该表的模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 该表命中缓存数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 从该表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 该表的TOAST表命中缓存数(如果存在)。 tidx_blks_read bigint 从该表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 该表的TOAST表索引命中缓存数(如果存在)。 父主题: 其他系统视图
  • 查询结果集 返回单行结果的SELECT语句可以直接使用EXEC SQL执行,请参见执行SQL命令章节。 示例: /* 首先建立一个表并插入数据 */ EXEC SQL CREATE TABLE test_table (number1 integer, number2 integer); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (2, 1); /* 查询结果为单行,:num 为宿主变量 */ EXEC SQL SELECT number1 INTO :num FROM test_table WHERE number2 = 1; 若要处理多行结果集,则必须使用游标,请参见使用游标章节(特殊情况下,应用程序可以一次取出多行结果写入到数组类型的宿主变量中,请参见使用非初级类型的宿主变量章节)。 示例: /* 首先建立一个表并插入数据 */ EXEC SQL CREATE TABLE test_table (number1 integer, number2 integer); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (2, 1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (3, 1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (4, 1); EXEC SQL INSERT INTO test_table (number1, number2) VALUES (5, 1); /* 定义宿主变量 */ EXEC SQL BEGIN DECLARE SECTION; int v1; int v2; EXEC SQL END DECLARE SECTION; /* 声明游标 */ EXEC SQL DECLARE test_bar CURSOR FOR SELECT number1, number2 FROM test_table ORDER BY number1; /* 打开游标 */ EXEC SQL OPEN test_bar; /* 当游标到达结果集末尾时跳出循环 */ EXEC SQL WHENEVER NOT FOUND DO BREAK; /* 获取查询结果集 */ while(1) { EXEC SQL FETCH NEXT FROM test_bar INTO :v1, :v2; printf("number1 = %d, number2 = %d\n",v1,v2); } /* 关闭游标 */ EXEC SQL CLOSE test_bar; 父主题: 基于ecpg开发
  • 行转列与列转行 行转列 --建表并插入数据。 gaussdb=# CREATE TABLE test_p2(id INT, class VARCHAR(20), score INT); gaussdb=# INSERT INTO test_p2 VALUES (1,'math',64), (1,'english',78); gaussdb=# INSERT INTO test_p2 VALUES (2,'math',98), (2,'english',82); gaussdb=# INSERT INTO test_p2 VALUES (3,'math',68), (3,'english',59); gaussdb=# SELECT * FROM test_p2; id | class | score ----+---------+------- 3 | math | 68 3 | english | 59 1 | math | 64 1 | english | 78 2 | math | 98 2 | english | 82 (6 rows) --行转列。 gaussdb=# SELECT * FROM test_p2 PIVOT(MAX(score) FOR class IN('math','english')); id | 'math' | 'english' ----+--------+----------- 3 | 68 | 59 1 | 64 | 78 2 | 98 | 82 (3 rows) --删除。 gaussdb=# DROP TABLE test_p2; 列转行 --建表并插入数据。 gaussdb=# CREATE TABLE test_p1(id INT, math INT, english INT); gaussdb=# INSERT INTO test_p1 VALUES (1,84,78), (2,98,82), (3,68,59); gaussdb=# SELECT * FROM test_p1; id | math | english ----+------+--------- 3 | 68 | 59 1 | 84 | 78 2 | 98 | 82 (3 rows) --列转行。 gaussdb=# SELECT * FROM test_p1 UNPIVOT(score FOR class IN(math, english)); id | class | score ----+---------+------- 3 | MATH | 68 3 | ENGLISH | 59 1 | MATH | 84 1 | ENGLISH | 78 2 | MATH | 98 2 | ENGLISH | 82 (6 rows) --删除。 gaussdb=# DROP TABLE test_p1; 父主题: SELECT
  • PGXC_STAT_ACTIVITY PGXC_STAT_ACTIVITY视图显示当前集群下所有CN的当前用户查询相关的信息,该视图只有monitor admin和sysadmin权限可以查看。505.0.0版本新增三列信息,灰度升级观察期中执行会报错,需使用PG_STAT_ACTIVITY直连目标节点进行查询。具体字段信息如表1所示。 表1 PGXC_STAT_ACTIVITY字段 名称 类型 描述 coorname text 当前集群下的CN名称。 datid oid 用户会话在后台连接到的数据库OID。 datname text 用户会话在后台连接到的数据库名称。 pid bigint 后台线程id。 sessionid bigint 会话id。 usesysid oid 登录该后台的用户OID。 usename 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。 backend_start timestamp with time zone 该过程开始的时间,即当客户端连接服务器的时间。 xact_start timestamp with time zone 启动当前事务的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 query_start timestamp with time zone 开始当前活跃查询的时间, 如果state的值不是active,则这个值是上一个查询的开始时间。 state_change timestamp with time zone 上次状态改变的时间。 waiting boolean 如果后台当前正等待锁则为true。否则为false。如果等待的锁发生在DN,则需要根据pg_thread_wait_status视图的wait_status字段确定发生的DN,在对应的DN查询pg_stat_activity的waiting字段确认是否发生了等待锁的行为。 enqueue text 语句当前排队状态。可能值是: waiting in queue:表示语句在排队中。 空:表示语句正在运行。 state text 该后台当前总体状态。可能值是: active:后台正在执行一个查询。 idle:后台正在等待一个新的客户端命令。 idle in transaction:后台在事务中,但事务中没有语句在执行。 idle in transaction (aborted):后台在事务中,但事务中有语句执行失败。 fastpath function call:后台正在执行一个fast-path函数。 disabled:如果后台禁用track_activities,则报告这个状态。 说明: 只有系统管理员能查看到自己账户所对应的会话状态。其他账户的state信息为空。例如以judy用户连接数据库后,在pgxc_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pgxc_stat_activity; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- testdb | omm | 10 | | 139968752121616 testdb | omm | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 testdb | omm | 10 | | 139968643069712 testdb | omm | 10 | | 139968680818448 testdb | joe | 16390 | | 139968563377936 (6 rows) resource_pool name 用户使用的资源池。 query_id bigint 查询语句的id。 query text 该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 connection_info text json格式字符串,记录当前连接数据库的驱动类型、驱动版本号、当前驱动的部署路径、进程属主用户等信息(参见GUC参数connection_info)。 global_sessionid text 全局会话id。 unique_sql_id bigint 语句的unique sql id。 trace_id text 驱动传入的trace id,与应用的一次请求相关联。 top_xid xid 事务的顶层事务ID。 current_xid xid 事务的当前事务ID。 xlog_quantity bigint 事务当前使用的XLOG量,单位为字节。 父主题: 其他系统视图
  • WAL日志是什么,日志文件路径是什么? 答:预写式日志WAL(Write Ahead Log,也称为xLog)是指如果要修改数据,必须是在这些修改操作已经记录到日志文件之后才能进行修改,即在描述这些变化的日志记录刷新到永久存储器之后,又称为REDO日志。 在数据库异常损坏导致系统崩溃时,可以利用WAL日志进行恢复操作。路径为数据目录/pg_xlog。以一个DN为例,在“/gaussdb/data/data_dn/pg_xlog”目录下,其中“/gaussdb/data/data_dn”代表集群节点的数据目录。 父主题: FAQ
  • enable_hotkeys_collection 参数说明:开关打开后,自动对数据库内被访问的键值进行统计。 如果是通过gs_guc set 方式设置参数,需要重启数据库使得GUC参数生效,重启数据库时会清理热点key信息。 当GUC参数关闭时,调用热点key查询结果将会返回空,并且提示GUC参数关闭。但是开关关闭时,热点key清理接口仍可以正常使用。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启计数功能。 off:表示关闭计数功能。 默认值:off 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:需要使用热点检测功能时打开开关。 设置不当的风险与影响:开关打开后,TPCC性能略微下降,控制在5%以内,每个实例会占用500M内存资源。
  • GLOBAL_WLM_RESPOOL_CONNECTION_INFO 该视图用于查看分布式下所有节点实时的资源池连接数使用情况。查询该视图需要sysadmin权限或者monadmin权限。 该视图只能查询主DN节点上的数据,备节点需要登录到备节点上后使用系统函数gs_wlm_respool_connection_info()查询并发数使用情况。 表1 GLOBAL_WLM_RESPOOL_CONNECTION_INFO字段 名称 类型 描述 node_name name 节点名称。 respool_name name 资源池名称。 max_connections name 资源池最大连接数。 curr_connections integer 当前资源池已有连接数。 示例: 1 2 3 4 5 6 7 8 gaussdb=# SELECT * FROM GLOBAL_WLM_RESPOOL_CONCURRENCY_INFO; node_name | respool_name | max_connections | curr_connections --------------+--------------+-----------------+------------------ coordinator1 | default_pool | -1 | 1 datanode2 | default_pool | -1 | 2 datanode3 | default_pool | -1 | 2 datanode1 | default_pool | -1 | 2 (4 rows) 父主题: 负载管理
  • DB_TAB_COL_STATIS TICS DB_TAB_COL_STATISTICS视图显示从DB_TAB_COLUMNS中提取的列统计信息和直方图信息。所有用户都可以访问该视图。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_TAB_COL_STATISTICS字段 名称 类型 描述 owner character varying(128) 表的所有者。 table_name character varying(128) 表名。 column_name character varying(128) 列名。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的低值。 high_value raw 列中的高值。 density numeric 如果COLUMN_NAME上有直方图,则此列将显示直方图中跨越少于2个端点的值的选择性。它不代表跨越2个或更多端点的值的选择性。 如果COLUMN_NAME上没有可用的直方图,则该列的值为1/NUM_DISTINCT。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图中的桶数。 sample_size numeric 用于分析此列的样本量。 last_analyzed timestamp(0) without time zone 最近分析此列的日期。数据库重启后,数据会丢失。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 notes character varying(99) 暂不支持,值为NULL。 avg_col_len numeric 列的平均长度(以字节为单位)。 histogram character varying(15) 直方图是否存在以及其类型: NONE:不存在直方图。 FREQUENCY:频率直方图。 EQUI-W IDT H:等宽直方图。 scope character varying(7) 对于在除全局临时表之外的任何表上收集的统计信息,该值是SHARED(表示统计信息在所有会话之间共享)。 schema character varying(64) 列所属的名称空间的名称。 父主题: 其他系统视图
  • 参数说明 nodename CN节点名,对应在pgxc_node系统表的一行记录,指定后将修改记录中的nodeis_active字段值。 取值范围:字符串,只支持CN节点名,并且要保证该节点名在pgxc_node系统表中有对应的记录。 status CN的状态,pgxc_node系统表中nodeis_active字段的更新值。 取值范围: - FALSE - TRUE nodename1[, nodename2, nodename3 ...] 该SQL执行的节点范围,ALTER COORDINATOR执行时会自动下发到范围内的所有节点,需要包含当前执行节点。 取值范围:字符串,只支持CN节点名,要保证该节点名在pgxc_node系统表中有对应的记录,并且节点状态正常,否则SQL执行失败。
  • 示例 剔除发生故障的CN。 --集群有3个CN,cn_5001、cn_5002、cn_5003,均处于正常工作状态。cn_5001发生故障且满足剔除时间要求后,需要将cn_5001从集群中剔除。 gaussdb=# ALTER COORDINATOR cn_5001 SET False WITH (cn_5002,cn_5003); --刷新pgxc_node系统表。在cn_5002和cn_5003节点上执行SQL刷新pgxc_node系统表中cn_5001对应记录的nodeis_active为false。 gaussdb=# SELECT reload_active_coordinator(); --查看CN的状态。nodeis_active字段的值已变成f(false)。 gaussdb=# SELECT nodeis_active,node_name FROM pgxc_node where node_name='cn_5001'; nodeis_active | node_name ---------------+----------- f | cn_5001 (1 row) 恢复已解除故障的CN。 --cn_5001故障解除后,在集群中加回cn_5001。 gaussdb=# ALTER COORDINATOR cn_5001 SET True WITH (cn_5002,cn_5003); --刷新pgxc_node系统表。在cn_5002和cn_5003节点上执行SQL刷新pgxc_node系统表中cn_5001对应记录的nodeis_active为true。 gaussdb=# SELECT reload_active_coordinator(); --查看CN的状态。nodeis_active字段的值已变成t(true)。 gaussdb=# SELECT nodeis_active,node_name FROM pgxc_node where node_name='cn_5001'; nodeis_active | node_name ---------------+----------- t | cn_5001 (1 row)
  • ADM_HIST_SNAPSHOT ADM_HIST_SNAPSHOT视图记录当前系统中存储的WDR快照数据信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图位于PG_CATALOG和SYS Schema下。该视图只有在GUC参数enable_wdr_snapshot为on时才可以访问。访问PG_CATALOG.ADM_HIST_SNAPSHOT和SYS.ADM_HIST_SNAPSHOT视图除需要本视图访问权限外,还需要snapshot schema、snapshot表和tables_snap_timestamp表的访问权限。 表1 ADM_HIST_SNAPSHOT字段 名称 类型 描述 snap_id bigint 唯一快照ID。 dbid oid 快照的数据库ID。 instance_number oid 暂不支持,取值同DBID。 startup_time timestamp(3) without time zone 实例启动时间。 begin_interval_time timestamp without time zone 快照间隔开始的时间(即上次快照的结束时间)。 end_interval_time timestamp without time zone 快照间隔结束的时间。拍摄快照的实际时间(即本次快照的结束时间)。 flush_elapsed interval 执行快照所花费的时间。 snap_level numeric 暂不支持,值为NULL。 error_count numeric 暂不支持,值为NULL。 snap_flag numeric 暂不支持,值为NULL。 snap_timezone interval day to second(0) 快照时区表示为与UTC(协调世界时)时区的偏移量。 begin_interval_time_tz timestamp with time zone 快照间隔开始的时间(即上次快照的结束时间),带时区。 end_interval_time_tz timestamp with time zone 快照间隔结束的时间。拍摄快照的实际时间(即本次快照的结束时间),带时区。 con_id numeric 暂不支持,值为0。 父主题: 其他系统视图
  • GLOBAL_SESSION_SQL_MEMORY GLOBAL_SESSION_SQL_MEMORY视图显示当前用户在各个节点上正在执行的语句的内存使用量,如表1所示。 表1 GLOBAL_SESSION_SQL_MEMORY字段 名称 类型 描述 node_name text 当前集群下的节点名称。 pid bigint 线程ID。 sessionid bigint 会话ID。 unique_sql_id bigint 语句的unique sql id。 query_id bigint 语句的debug query id。 query text 该会话当前运行语句。 peak_used_memory integer 该语句内存使用峰值(单位:MB)。 current_used_memory integer 该语句当前内存使用值(单位:MB)。 父主题: Query
  • GS_LOGICAL_DATABASE GS_LOGICAL_DATABASE系统表存储关于可用数据库的信息。 表1 GS_LOGICAL_DATABASE字段 字段名称 字段类型 说明 datname name 数据库名称。 datid oid 数据库OID。 csnmin bigint 插入元组时的 CSN(提交序列号)。 csnmax bigint 更新或删除元组时的 CSN。 createtime timestamp with time zone 插入元组的时间戳。 originid integer 元组的来源标识符。 datdba oid 数据库所有人,通常为其创建者。 encoding integer 数据库的字符编码方式。 datcollate name 数据库使用的字符分类。 datctype name 数据库使用的排序顺序。 dattablespace oid 数据库的缺省表空间。 datcompatibility name 数据库兼容模式,当前支持五种兼容模式:ORA、MYSQL、C、M、PG,分别表示兼容O、MY、TD、M-Compatibility和POSTGRES。 dattimezone name 数据库时区信息,默认为PRC时区。 父主题: 逻辑解码
  • 参数说明 schema_name 现有模式的名称。 取值范围:已存在的模式名。 RENAME TO new_name 修改模式的名称。 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。 default_charset 修改模式的默认字符集。单独指定时会将模式的默认字符序设置为指定的字符集的默认字符序。 仅在MYSQL模式数据库下(即sql_compatibility = 'MYSQL')支持该语法。支持字符集参见表1。 default_collate 修改模式的默认字符序。单独指定时会将模式的默认字符集设置为指定的字符序对应的字符集。 仅在MYSQL模式数据库下(即sql_compatibility = 'MYSQL')支持该语法。支持字符序参见表1。
  • 示例 修改模式的防篡改属性。 修改普通模式为防篡改模式,需设置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; 修改默认字符集和字符序。 仅在MYSQL模式数据库下(即sql_compatibility = 'MYSQL')支持该语法。 除binary字符集和字符序外,当前仅支持指定与数据库编码相同的字符集。 --创建并切换至测试数据库。 gaussdb=# CREATE DATABASE test1 WITH DBCOMPATIBILITY = 'MYSQL' 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;
  • 注意事项 只有模式的所有者或者被授予了模式ALTER权限的用户有权限执行ALTER SCHEMA命令,三权分立开关关闭时,系统管理员默认拥有此权限。但要修改模式的所有者,当前用户必须是该模式的所有者或者系统管理员,且该用户是新所有者角色的成员。 对于除public以外的系统模式,如pg_catalog、sys等,只允许初始用户修改模式的所有者。修改系统自带模式的名称可能会导致部分功能不可用甚至影响数据库正常运行,默认情况下不允许修改系统自带模式的名称,考虑到前向兼容性,仅允许当系统在启动或升级过程中或参数allow_system_table_mods为on时修改。 除初始用户外,其他用户无法将schema的所有者修改为运维管理员。
  • 语法格式 修改模式的防篡改属性。 1 ALTER SCHEMA schema_name { WITH | WITHOUT } BLOCKCHAIN; 修改模式的名称。 1 2 ALTER SCHEMA schema_name RENAME TO new_name; 修改模式的所有者。 1 2 ALTER SCHEMA schema_name OWNER TO new_owner;
  • 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
  • GLOBAL_INSTANCE_TIME 提供整个集群中所有正常节点下的各种时间消耗信息,如表1所示。 表1 GLOBAL_INSTANCE_TIME字段 名称 类型 描述 node_name name 节点的名称。 stat_id integer 统计编号。 stat_name text 类型名称。见INSTANCE_TIME视图。 value bigint 时间值(单位:微秒)。 父主题: Instance
  • DB_IND_SUBPARTITIONS DB_IND_SUBPARTITIONS视图显示当前用户所能访问的二级分区表Local索引的索引分区信息(不包含分区表全局索引)。所有用户都可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。分布式暂不支持二级分区,该表字段目前全置NULL。 表1 DB_IND_SUBPARTITIONS字段 名称 类型 描述 index_owner character varying(128) 暂不支持,值为NULL。 index_name character varying(128) 暂不支持,值为NULL。 partition_name character varying(128) 暂不支持,值为NULL。 subpartition_name character varying(128) 暂不支持,值为NULL。 high_value text 暂不支持,值为NULL。 high_value_length numeric 暂不支持,值为NULL。 partition_position numeric 暂不支持,值为NULL。 subpartition_position numeric 暂不支持,值为NULL。 status character varying(8) 暂不支持,值为NULL。 tablespace_name character varying(30) 暂不支持,值为NULL。 pct_free numeric 暂不支持,值为NULL。 ini_trans numeric 暂不支持,值为NULL。 max_trans numeric 暂不支持,值为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 暂不支持,值为NULL。 compression character varying(13) 暂不支持,值为NULL。 blevel numeric 暂不支持,值为NULL。 leaf_blocks numeric 暂不支持,值为NULL。 distinct_keys numeric 暂不支持,值为NULL。 avg_leaf_blocks_per_key numeric 暂不支持,值为NULL。 avg_data_blocks_per_key numeric 暂不支持,值为NULL。 clustering_factor numeric 暂不支持,值为NULL。 num_rows numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed date 暂不支持,值为NULL。 buffer_pool character varying(7) 暂不支持,值为NULL。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 interval character varying(3) 暂不支持,值为NULL。 segment_created character varying(3) 暂不支持,值为NULL。 domidx_opstatus character varying(6) 暂不支持,值为NULL。 parameters character varying(1000) 暂不支持,值为NULL。 父主题: 分区表
  • GLOBAL_OPERATOR_RUNTIME GLOBAL_OPERATOR_RUNTIME视图显示当前用户在所有CN节点上正在执行的作业的算子相关信息,如表1所示。 表1 GLOBAL_OPERATOR_RUNTIME的字段 名称 类型 描述 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)。 status text 当前算子的执行状态,包括finished和running。 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 父主题: Operator
  • GS_LOGICAL_SET GS_LOGICAL_SET系统表存储SET数据类型定义的元数据。 表1 GS_LOGICAL_SET字段 字段名称 字段类型 说明 setid oid 行标识符。 settypid oid SET数据类型的OID。 setnum tinyint SET数据类型的成员数量,最大64个成员。 setsortorder tinyint SET数据类型定义时成员的排序位置,从0开始编号。 setlabel text SET数据类型的成员名称。 dbnode oid 数据库OID。 originid integer 元组的来源标识符。 createtime timestamp with time zone 插入元组的时间戳。 csnmin bigint 插入元组时的CSN(提交序列号)。 csnmax bigint 更新或删除元组时的CSN。 numbers integer 用于M兼容SET和ENUM数据类型的成员数量,仅M兼容模式用到该字段。 sortorder integer 用于M兼容SET和ENUM数据类型定义时成员的排序位置,仅M兼容模式用到该字段。 父主题: 逻辑解码
  • gs_plsql_memory_object_detail(db_oid, obj_oid, obj_type) 描述:获取存储过程创建的package、function的主要有效内存占用情况。enable_global_plsqlcache = off时该函数显示当前session中的存储过程内存情况,跨session查询暂不支持。当前版本分布式不支持该函数使用。调用该函数的用户需要有SYSADMIN权限。 参数:该函数需传入db_oid、obj_oid、obj_type三个参数,如传入参数不匹配,返回空行。具体参数说明见表1 gs_plsql_memory_object_detail参数说明。其中db_oid、obj_oid传入0为默认查找cache中所有package、function的有效内存使用情况。 返回值类型:Tuple 表1 gs_plsql_memory_object_detail参数说明 参数列表 类型 描述 取值范围 db_oid uint32 查询数据库oid为db_oid内存储的存储过程的主要有效内存占用情况。0默认为当前缓存中全部数据库实例。 0 - 2^32-1。 obj_oid uint32 查询object的oid。0默认为当前缓存中全部pkg与function。 0 - 2 ^32-1。 obj_type text 查询object的类型,标识查询目标object为package或function。 all:默认全部查询。 pkg:查询满足条件的package有效内存占用。 func:查询满足条件的function有效内存占用。 func_in_pkg:查询满足条件的package中的function的有效内存占用。 gs_plsql_memory_object_detail函数显示数据库内满足查询条件的有效内存占用情况说明如表2 gs_plsql_memory_object_detail返回值所示。 表2 gs_plsql_memory_object_detail返回值 名称 类型 描述 object_oid uint32 查询内存对象的oid。 context_name text 内存对象名。 item text 查询内存对象项目名。 searchpath text 内存对象访问编译产物的Schema及其他环境变量。 guc uint64 创建对象时的环境参数,即behavior_compat_flags的值。 file text 内存对象创建所在文件。 line uint32 内存对象创建所在文件行数。 size uint32 内存对象大小。 db_oid uint32 查询内存对象所在数据库oid。
  • invalidate_plsql_object(),invalidate_plsql_object(schema, objname, objtype) 描述:失效Global Plsql Cache全局缓存中的对象,仅在enable_global_plsqlcache = on时可用。当前版本分布式不支持该函数使用。调用该函数的用户需要具有SYSADMIN权限。 参数:该函数为重载函数。当无入参时,将所有DATABASE内的所有全局缓存对象失效。 当指定schema、objname、objtype三个参数时可将当前DATABASE内的指定全局缓存对象失效。其中:schema为对象所属的schema名称;objname为对象名称;objtype为对象类型,对象为package类型时值为“package”,对象为函数或存储过程时值为“function”。
  • DBE_PLDEBUGGER.finish 执行存储过程中当前的SQL直到下一个断点触发或执行到上层栈的下一行,如表1所示。 表1 finish入参和返回值列表 名称 类型 描述 funcoid OUT oid 函数id。 funcname OUT text 函数名。 lineno OUT integer 当前调试运行的下一行行号。 query OUT text 当前调试的下一行函数源码。 父主题: DBE_PLDEBUGGER Schema
共100000条
提示

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