云服务器内容精选

  • 批量配置消息接收URL 您已进入“消息管理”界面,且界面中存在已新增的消息模板。 单击“配置消息接收URL”,弹出“配置消息接收URL”对话框。 填写“接收URL”,选择“消息类型”。 接收URL:必填参数,配置接收消息的URL地址。 消息类型:在下拉框中选择所有需要配置消息接收URL的消息名称,可多选。 如果一个消息类型下的消息模板都需要配置消息接收URL,可以直接选择消息类型,全选该消息类型的所有消息模板。 单击“确定”,将所选消息模板的消息接收URL配置为所填写的“接收URL”。
  • 基本概念 数字化制造云平台(MBM Space)支持全局属性扩展和按业务数据分类扩展两种属性扩展方式,能满足用户90%以上的业务扩展场景。 全局属性扩展:即用户增加的扩展字段会对实体所有业务数据都会生效,对用户而言看到的是所有的扩展字段。 按业务数据分类扩展:即用户增加的扩展字段只对当前业务数据生效,不同的业务数据展示的扩展字段不同,起到扩展属性隔离的作用。 例如:用户可以针对电子产品(实体Electronics)所属的业务数据如手机(MobilePhone)增加扩展字段如打电话(Calling),拍照(TakePhotos);针对电子产品(实体Electronics )所属的业务数据如电脑(Computer)增加扩展字段如电脑型号(ComputerType),电脑品牌(ComputerBrand);其中Calling、TakePhotos和ComputerType,ComputerBrand等扩展字段互不影响,对于用户而言在增加业务数据MobilePhone时感知不到业务数据Computer的扩展字段,起到字段隔离的作用。 两种扩展方式原理图如图1和图2所示。 图1 全局属性扩展 图2 按业务数据分类扩展
  • 基本概念 数字化制造云平台(MBM Space)提供了自定义角色的功能,支持为不同的角色配置不同的操作权限,让用户权限管理更加灵活、便捷。在进行用户与权限管理前,请先了解一下如下基本概念。 角色 MBM Space基于RBAC(Role-Based Access Control)能力的授权,通过服务的“角色管理”实现不同用户的访问控制。MBM Space为您预置了超级管理员、租户管理员角色。您可以根据实际需求,自定义角色,并给角色授予菜单栏目权限。 权限 在MBM Space中添加的用户默认是没有任何权限的,需要将其加入角色,才能使得角色中的用户获得对应的权限。用户可以基于被授予的角色权限对系统进行操作。 超级管理员 超级管理员拥有“用户管理”和“租户管理”的权限,可以新增用户、新增业务租户以及管理租户的成员。 购买数字化制造云平台的账号即为MBM Space预置的超级管理员,系统支持将其他用户授予超级管理员角色,使其获得对应的权限。 租户管理员 租户管理员拥有“角色管理”的权限,可以新增角色、授予角色菜单栏目功能权限以及管理角色权限对应的用户。 购买数字化制造云平台的账号即为MBM Space预置的租户管理员,系统支持将其他用户授予租户管理员角色,使其获得对应的权限。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 task_id String 任务ID status String 任务状态, SUC CES S表示成功,DOING表示正在执行,FAIL表示失败 dir_usage FsDuInfo object 目录资源使用情况(包含子目录) begin_time String 任务开始时间,UTC时间,例如:2006-01-02 15:04:05' end_time String 任务结束时间,UTC时间,例如:2006-01-02 15:04:06' 表4 FsDuInfo 参数 参数类型 描述 path String 文件系统内合法的目录全路径 used_capacity Long 占用容量,单位:byte file_count FsFileCount object 该目录下所有文件数目 message String 错误信息 表5 FsFileCount 参数 参数类型 描述 dir Long 目录数目 regular Long 普通文件数目 pipe Long 管道文件数目 char Long 字符设备数目 block Long 块设备数目 socket Long 套接字数目 symlink Long 符号链接数目 状态码: 400 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 请求示例 文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900",任务ID为"11abef677ac40f46644d1d5cfc2424a4",获取DU任务详情 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/fs/dir-usage/tasks/11abef677ac40f46644d1d5cfc2424a4
  • 响应示例 状态码: 200 成功 { "task_id" : "2b31ed520xxxxxxebedb6e57xxxxxxxx", "status" : "SUCCESS", "dir_usage" : { "path" : "/path", "used_capacity" : 0, "file_count" : { "dir" : 0, "regular" : 0, "pipe" : 0, "char" : 0, "block" : 0, "socket" : 0, "symlink" : 0 }, "message" : "" }, "begin_time" : "2023-03-01 11:46:01", "end_time" : "2023-03-01 11:46:01" } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0123", "errMsg" : "feature invalid" } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0124", "errMsg" : "task_id not found" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。后端有5min的缓存时间,查询的数据可能有延迟。API请求路径的feature仅支持以下取值: dir-usage 该接口仅适用于以下类型: 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB HPC缓存型文件系统 标准型、标准型-增强版、性能型、性能型-增强版类型的SFS Turbo文件系统,请使用“查询目录资源使用情况”接口。
  • URI GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks/{task_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id feature 是 String 任务类型。例,DU任务取值为dir-usage task_id 是 String 任务ID
  • 响应示例 状态码: 200 成功 { "task_id" : "2b31ed520xxxxxxebedb6e57xxxxxxxx", "status" : "SUCCESS", "dir_usage" : { "path" : "/path", "used_capacity" : 0, "file_count" : { "dir" : 0, "regular" : 0, "pipe" : 0, "char" : 0, "block" : 0, "socket" : 0, "symlink" : 0 }, "message" : "" }, "begin_time" : "2023-03-01 11:46:01", "end_time" : "2023-03-01 11:46:01" } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0123", "errMsg" : "feature invalid" } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0124", "errMsg" : "task_id not found" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 请求示例 文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900",任务ID为"11abef677ac40f46644d1d5cfc2424a4",获取DU任务详情 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/fs/dir-usage/tasks/11abef677ac40f46644d1d5cfc2424a4
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 task_id String 任务ID status String 任务状态, SUCCESS表示成功,DOING表示正在执行,FAIL表示失败 dir_usage FsDuInfo object 目录资源使用情况(包含子目录) begin_time String 任务开始时间,UTC时间,例如:2006-01-02 15:04:05' end_time String 任务结束时间,UTC时间,例如:2006-01-02 15:04:06' 表4 FsDuInfo 参数 参数类型 描述 path String 文件系统内合法的目录全路径 used_capacity Long 占用容量,单位:byte file_count FsFileCount object 该目录下所有文件数目 message String 错误信息 表5 FsFileCount 参数 参数类型 描述 dir Long 目录数目 regular Long 普通文件数目 pipe Long 管道文件数目 char Long 字符设备数目 block Long 块设备数目 socket Long 套接字数目 symlink Long 符号链接数目 状态码: 400 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。后端有5min的缓存时间,查询的数据可能有延迟。API请求路径的feature仅支持以下取值: dir-usage 该接口仅适用于以下类型: 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB HPC缓存型文件系统 标准型、标准型-增强版、性能型、性能型-增强版类型 的SFS Turbo文件系统,请使用“查询目录资源使用情况”接口。
  • URI GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks/{task_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id feature 是 String 任务类型。例,DU任务取值为dir-usage task_id 是 String 任务ID
  • 使用限制 当前仅20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB规格文件系统支持目录级配额。 只能对空目录设置配额,删除配额。 支持设置配额的最大目录深度为16层,不允许对根目录使用此功能。(注:根目录为第一层目录) 修改目录配额时,配额只能高于或等于已使用配额,不允许子目录配额高于父目录配额。 建议设置配额目录深度不超过3层,否则会出现修改类操作性能下降,性能下降幅度与配额目录深度有关。 不允许跨配额目录创建硬链接、rename操作。 图1 跨配额目录 跨配额目录操作为图1 跨配额目录红线所示,会穿过黑色虚线。 配额目录: D1,D2_0。 目录深度:根目录/往下到当前目录的层数,例如,目录/D1/D2_0/D3_1深度为4。 配额目录深度:当前目录不断往上找,穿过黑色矩形虚线的层数。例如,目录/D1/D2_0/D3_1配额目录深度为2。 红线与绿线:mv或者link操作,绿色表示允许操作,红色表示不允许操作。 虚线矩形:配额目录区域。
  • 段页式存储函数 在AStore存储引擎下创建段页式表,需要在创建数据表时指定参数segment=on。例如: CREATE TABLE t1(id int) WITH (segment=on, storage_type=astore); 段页式存储函数相关字段取值说明: forknum:数据文件分支。 取值范围:【0:mainfork;1:fsmfork; 2:vm fork】。 file id:数据文件编号。 取值范围: 【1:元数据文件;2 ~ 5:数据文件】。 blocks:扩展大小。 取值范围:【1:1号文件;8:2号文件;128:3号文件;1024:4号文件;4096:5号文件】。 file_block_id/head_block_id/block_id:物理页面在数据文件中的偏移页面号,以及其他含义为页面号的字段皆为此意。 取值范围:【0 ~ 4,294,967,294 】。 page_ type: 页面类型。 取值范围: 元页面:file head/file_header:文件头;spc head/spc_header:空间头;map head/map_header:映射头;map page/map_pages:映射页面;reverse pointer page/inverse pointer page/ip pages/:反向指针页面;segment head page/segment head:段头页面;level1 page:level1页面;data_pages/data extent:数据页面;fork head:分支头。 数据页面:heap、uheap、btree、ubtree。 未知页面:unknown(data extent):全零段页式页面,无法判断页面类型;unknown(fsm indexurq):fsm或indexurq 页面。 contents:数据文件的存储内容。 取值范围:【permanent:永久;unlogged:不记录日志;temporary:全局临时;temporary2:本地临时】。 local_space_shrink(tablespacename TEXT, databasename TEXT) 描述:当前节点上对指定段页式空间做物理空间收缩。目前只支持对当前连接的database做shrink。 返回值:空 gs_space_shrink(tablespace int4, database int4, extent_type int4, forknum int4) 描述:效果跟local_space_shrink类似,对指定段页式空间做物理空间收缩,但参数不同,传入的是tablespace和database的oid,extent_type为[2,5]的int值。extent_type为 1表示段页式元数据,目前不支持对元数据所在的物理文件做收缩。该函数仅限工具使用,不建议用户直接使用。 返回值:空 global_space_shrink(tablespacename TEXT, databasename TEXT) 描述:在cn上执行,对整个集群上所有dn执行段页式存储空间压缩。 注意:global_space_shrink 锁cluster,在此期间不能执行DDL操作。而local_space_shrink不会锁集群。 gs_stat_remain_segment_info() 描述:在CN上执行,展示在DN节点上,因为故障等原因,残留的extent。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看,其余用户需要赋权后才可以使用。只支持在主机上执行。残留extent主要分为两类:分配而未被利用的segment和分配出去而未被利用的extent。两者主要区别在于segment会包含多个extent,回收时,要将segment上的extent一并全部回收。 返回值类型: 名称 描述 node_name 节点名称。 space_id 表空间ID。 db_id 数据库ID。 block_id Extent的ID。 type Extent的类型,当前有三种:ALLOC_SEGMENT|DROP_SEGMENT|SHRINK_EXTENT。 其中type的三种类型分别表示: ALLOC_SEGMENT:用户创建一张段页式表,当segment刚被分配,但是建表语句所在事务仍未提交时,节点故障,导致该segment被分配后,没有被使用。 DROP_SEGMENT:用户删除段页式表,当该事务成功提交,但是此表的segment页面对应的bit位未被重置,就发生掉电等故障,造成该segment未被使用,也未被释放。 SHRINK_EXTENT:用户对段页式表执行shrink操作,在未对空置出的extent进行释放时,发生掉电等故障,造成该extent残留,无法被重新利用。 例如: gaussdb=# SELECT * FROM gs_stat_remain_segment_info(); node_name | space_id | db_id | block_id | type -------------------+----------+-------+----------+--------------- dn_6001_6002_6003 | 16804 | 16803 | 4157 | ALLOC_SEGMENT (1 row) gs_free_remain_segment() 描述:清理通过函数gs_stat_remain_segment_info查询出的当前库的残留。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行,其余用户需要赋权后才可以使用。只支持在主机上执行。 返回值:Boolean gs_local_stat_remain_segment_info() 描述:在主DN上执行,显示当前节点的段页式残留信息。用户权限、返回值请参考gs_stat_remain_segment_info。 gs_local_free_remain_segment() 描述:在主DN上执行,清理通过函数gs_local_stat_remain_segment_info查询出的当前库的残留。用户权限、返回值请参考gs_free_remain_segment。 gs_seg_dump_page(tablespace_name name, file_id int4, bucketnode int4, file_block_id bigint, forknum int4 default 0) 描述:解析段页式的指定页面并返回解析内容。只有具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行。该函数为物理页面解析方式,每次返回一个页面的解析结果(返回的结果中不会包含实际的用户数据信息)。本函数不要求用户输入页面类型,在实现时,先尝试确定页面类型;如果不能确定,则输出可能的解析结果。 参数说明: 名称 类型 描述 table_space_name NAME 段对象所属的表空间。取值范围:合法存在的表空间name。 file_id INTEGER 数据文件标识。取值范围:[1, 5]的int4值。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 file_block_id BIGINT 物理页面在数据文件中的偏移页面号。取值范围:【0~4294967294】。 forknum INTEGER DEFAULT 0 数据文件fork号,默认为0。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 返回值类型: 名称 类型 描述 page_type TEXT 页面类型。取值范围: 业务页面:heap、uheap、btree、ubtree、gsivfflat_index、gsdiskann_index。 段页式元页面:bucket main head、file head、spc head、map head、map page、reverse pointer page、segment head page、level1 page。 未知页面: unknown(data extent):全零段页式页面, 无法判断页面类型。 unknown(fsm indexurq):fsm或indexurq页面。 result TEXT 解析结果。 例如(下列操作需要在创建过段页式普通表后再执行): gaussdb=# SELECT * FROM gs_seg_dump_page('pg_default', 1, 1024, 4157); page_type | result -------------------+----------------------------------------------------------------------------- segment head page | Page information of block 4157/4157 + | pd_lsn: 0/2C90608 ,len 8 ,offset 0 + | + | pd_checksum: 0x8A7F, verify success,len 2, offset 8 + | pd_flags: + | pd_lower: 24, empty, len 2, offset 12 + | pd_upper: 8192, old, len 2, offset 14 + | pd_special: 8192, size 0, len 2, offset 16 + | Page size & version: 8192, 8, len 2, offset 18 + | pd_xid_base: 0, len 8, offset 24 pd_multi_base: 0, len 8, offset 32+ | pd_prune_xid: 0, len 4 ,offset 20 + | + | Segment head information on this page + | magic: 44414548544E454D + | lsn is: 0/2C90540 + | nblocks: 0 + | total_blocks: 8 + | reserved: 0 + | Level 0 slots information on this page + | The BlockNumber of level0 slots 0 is: 4157 + | fork head information on this page + | 4157(valid) + | 4294967295(invalid) + | 4294967295(invalid) (1 row) gs_seg_dump_page(relid oid, bucketnode int, block_id bigint, partition bool default false, forknum int4 default 0) 描述:在DN上执行,解析段页式的指定页面并返回解析内容。只有具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行。该函数为逻辑页面解析方式,每次返回一个页面的解析结果(返回的结果中不会包含实际的用户数据信息)。本函数不要求用户输入页面类型,在实现时,先尝试确定页面类型;如果不能确定,则输出可能的解析结果。 参数说明: 名称 类型 描述 relid OID 段对象标识。取值范围:合法存在的段页式对象oid,否则报错。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 block_id BIGINT 逻辑页面号。取值范围:【0~4294967294】。 partition BOOLEAN DEFAULT FALSE 段对象是否为分区,默认为false。取值范围:bool,代表所传入的oid对应的对象是否为分区。 forknum INTEGER DEFAULT 0 数据文件fork号,默认为0。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 返回值说明: 名称 类型 描述 page_type TEXT 页面类型。取值范围: 业务页面:heap、uheap、btree、ubtree、gsivfflat_index、gsdiskann_index。 段页式元页面:bucket_main_head、file head、spc head、map head、map page、reverse pointer page、segment head page、level1 page。 未知页面: unknown(data extent):全零段页式页面,无法判断页面类型。 unknown(fsm indexurq):fsm或indexurq页面。 result TEXT 解析结果。 例如(下列操作需要在DN上执行,relid必须为合法的段页式对象在该DN上的oid,且该对象需要存在数据,才能查到页面信息): gaussdb=# SELECT * FROM gs_seg_dump_page(16788, 1024, 0); page_type | result -----------+------------------------------------------------------------------------------------------------------------------------- heap | Page information of block 6021/6021 + | pd_lsn: 0/4463418 ,len 8 ,offset 0 + | + | pd_checksum: 0xD4CD, verify success,len 2, offset 8 + | pd_flags: + | pd_lower: 44, non-empty, len 2, offset 12 + | pd_upper: 8160, old, len 2, offset 14 + | pd_special: 8192, size 0, len 2, offset 16 + | Page size & version: 8192, 6, len 2, offset 18 + | pd_xid_base: 17049, len 8, offset 24 pd_multi_base: 0, len 8, offset 32 + | pd_prune_xid: 17049, len 4 ,offset 20 + | + | Heap tuple information on this page + | + | Tuple #1 is normal: length 28, offset 8160 + | (uint64)xmin/xmax/t_cid: 17052/0/0 + | (uint32)t_xmin/t_xmax: 3/3(check ilm flag to indicate whether t_xmin/t_xmax is xid or ilm time)+ | ctid:(block 0/0, offset 1) + | t_infomask: HEAP_XMAX_INVALID HEAP_HAS_NO_UID + | t_infomask2: Attrs Num: 1 + | t_hoff: 24 + | t_bits: NNNNNNNN + | Summary (1 total): 1 normal, 0 unused, 0 dead + | + | Normal Heap Page, special space is 0 + | + | (1 row) gs_seg_get_spc_location(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT, block_id BIGINT) 描述:给定段和逻辑页面号,计算物理位置。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 tablespace_name NAME 段对象所属的表空间。 bucketnode INTEGER 0~1023表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 head_block_id BIGINT 指定的段头页面号。 block_id BIGINT 指定的逻辑页面号。 返回值说明: 名称 类型 描述 extent_id INTEGER 逻辑页面所在的逻辑扩展号。 extent_size INTEGER 逻辑页面所在的逻辑扩展的大小。 file_id INTEGER 物理页面所在的数据文件标识。取值范围:[1, 5]的int4值。 file_block_id BIGINT 物理页面在数据文件中的偏移页面号。 例如(下列操作需要在DN上执行,需要提前在表空间下创建过段页式普通表并插入过数据): gaussdb=# SELECT * FROM gs_seg_get_spc_location('pg_default', 1024, 4157, 0); extent_id | extent_size | file_id | file_block_id -----------+-------------+---------+--------------- 0 | 8 | 2 | 4157 (1 row) gs_seg_get_spc_location(relid OID, bucketnode INTEGER,block_id BIGINT, partition BOOLEAD DEFAULT FALSE,forknum INTEGER DEFAULT 0) 描述:给定段和逻辑页面号,计算物理位置。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 relid OID 段对象标识。 bucketnode INTEGER 0~1023表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 block_id BIGINT 指定逻辑页面号。 partition BOOLEAD DEFAULT FALSE 段对象是否为分区,默认为FALSE。 forknum INTEGER DEFAULT 0 段对象的分支,默认为0。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 返回值说明: 名称 类型 描述 extent_id INTEGER 逻辑页面所在的逻辑扩展号。 extent_size INTEGER 逻辑页面所在的逻辑扩展的大小。 file_id INTEGER 物理页面所在的数据文件标识。取值范围:[1, 5]的int4值。 file_block_id BIGINT 物理页面在数据文件中的偏移页面号。 例如(下列操作需要在DN上执行,relid必须为合法的的段页式对象在该DN上的oid,且该对象需要存在数据): gaussdb=# SELECT * FROM gs_seg_get_spc_location(24578,1024, 0); extent_id | extent_size | file_id | file_block_id -----------+-------------+---------+--------------- 0 | 8 | 2 | 4157 (1 row) gs_seg_get_location(block_id BIGINT, as_extent BOOLEAN DEFAULT FALSE) 描述:给定段和逻辑页面号,计算物理位置。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 block_id BIGINT 指定逻辑页面号。 as_extent BOOLEAN DEFAULT FALSE 参数block_id是否为扩展号,默认FALSE。 返回值说明: 名称 类型 描述 extent_id BIGINT 扩展号。 extent_size INTEGER 扩展的大小。 extent_offset INTEGER 扩展的偏移块号。 level0_slots_idx INTEGER 扩展在段头level0槽位数组下标。 level1_slots_idx INTEGER 扩展在段头level1槽位数组下标。 level1_page_offset INTEGER 扩展在段头level1槽位页面的偏移。 segment_blocks BIGINT 包含此页面或扩展的段的页面数。 relative_fno INTEGER 包含此页面或扩展的相对文件编号。 例如: gaussdb=# SELECT * FROM gs_seg_get_location(4157); extent_id | extent_size | extent_offset | level0_slots_idx | level1_slots_idx | level1_page_offset | segment_blocks | relative_fno -----------+-------------+---------------+------------------+------------------+--------------------+----------------+-------------- 47 | 128 | 61 | 47 | | | 4158 | 3 (1 row) gs_seg_get_segment_layout() 描述:输出段的静态布局。只支持管理员权限用户查询。 返回值说明: 名称 类型 描述 version TEXT 段页式版本。默认:1.0。 section_id INTEGER 段划分的数据区号。 section_type TEXT 段数据区扩展类型。 取值范围: meta:段头。 data:数据。 extent_size INTEGER 扩展大小。单位为字节。 extent_page_count INTEGER 扩展页面数。 extent_count_start BIGINT 起始扩展号。 extent_count_end BIGINT 终止扩展号。 total_size BIGINT 段数据区的大小。单位为字节。 例如: gaussdb=# SELECT * FROM gs_seg_get_segment_layout(); version | section_id | section_type | extent_size | extent_page_count | extent_count_start | extent_count_end | total_size ---------+------------+--------------+-------------+-------------------+--------------------+------------------+---------------- 1.0 | 1 | meta | 8192 | 1 | 0 | 0 | 8192 1.0 | 2 | data | 65536 | 8 | 1 | 16 | 1048576 1.0 | 3 | data | 1048576 | 128 | 17 | 143 | 134217728 1.0 | 4 | data | 8388608 | 1024 | 144 | 255 | 1073741824 1.0 | 5 | data | 33554432 | 4096 | 256 | 1025255 | 34394366541824 (5 rows) gs_seg_get_datafile_layout() 描述:查看1~5号数据文件的静态布局。只支持管理员权限用户查询。 返回值说明: 名称 类型 描述 version TEXT 段页式版本。默认:1.0。 seg_storage_type TEXT segment表示普通段页式数据。 hashbucket表示hashbucket数据。 file_id INTEGER 数据文件标识。取值范围:[1, 5]的int4值。 section_id INTEGER 数据文件划分的数据区号。 section_type TEXT 数据文件区类型。 取值范围: file_header表示文件头。 spc_header表示空间头。 map_header表示映射头。 map_pages表示映射页面。 ip_pages(inverse pointer pages)表示反向指针页面。 data_pages表示数据页面。 page_start BIGINT 数据区域起始页面号。 page_end BIGINT 数据区域结束页面号。 page_count BIGINT 数据区域页面数。 total_size BIGINT 数据区的大小。单位为字节。 例如: gaussdb=# SELECT * FROM gs_seg_get_datafile_layout(); version | seg_storage_type | file_id | section_id | section_type | page_start | page_end | page_count | total_size ---------+------------------+---------+------------+--------------+--------------+--------------+-------------+----------------- 1.0 | segment | 1 | 0 | file_header | 0 | 0 | 1 | 8192 1.0 | segment | 1 | 1 | spc_header | 1 | 1 | 1 | 8192 1.0 | segment | 1 | 2 | map_header | 2 | 2 | 1 | 8192 1.0 | segment | 1 | 3 | map_pages | 3 | 66 | 64 | 524288 1.0 | segment | 1 | 4 | ip_pages | 67 | 4156 | 4090 | 33505280 1.0 | segment | 1 | 5 | data_pages | 4157 | 4147260 | 4143104 | 33940307968 ...(数据较多,仅展示部分) gs_seg_get_slice_layout(file_id INTEGER, bucketnode INTEGER,slice_id INTEGER) 描述:输出给定数据文件分片的静态布局。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 file_id INTEGER 数据文件标识。取值范围:[1, 5]的int4值。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 slice_id INTEGER Slice文件标识。 返回值说明: 名称 类型 描述 version TEXT 段页式版本。默认:1.0。 section_id INTEGER 数据文件划分的数据区号。 section_type INTEGER 数据文件区类型。 取值范围: file_header表示文件头。 spc_header表示空间头。 map_header表示映射头。 map_pages表示映射页面。 ip_pages(inverse pointer pages)表示反向指针页面。 data_pages表示数据页面。 page_start BIGINT 数据区域起始页面号。 page_end BIGINT 数据区域结束页面号。 page_count BIGINT 数据区域页面数。 total_size BIGINT 数据区的大小。单位为字节。 例如: gaussdb=# SELECT * FROM gs_seg_get_slice_layout(1,1024,0); version | section_id | section_type | page_start | page_end | page_count | total_size ---------+------------+--------------+------------+----------+------------+------------ 1.0 | 0 | file_header | 0 | 0 | 1 | 8192 1.0 | 1 | spc_header | 1 | 1 | 1 | 8192 1.0 | 2 | map_header | 2 | 2 | 1 | 8192 1.0 | 3 | map_pages | 3 | 66 | 64 | 524288 1.0 | 4 | ip_pages | 67 | 4156 | 4090 | 33505280 1.0 | 5 | data_pages | 4157 | 131071 | 126915 | 1039687680 (6 rows) gs_seg_get_segment(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT) 描述:输出该表空间下段头文件里段头页面的段头信息。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 tablespace_name NAME 段对象所属的表空间。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 head_block_id BIGINT 段头页面号。 返回值说明: 名称 类型 描述 blocks BIGINT 段对象的逻辑页面数。 total_blocks BIGINT 段对象的物理页面数。 extents INTEGER 段对象的逻辑扩展数。 total_extents INTEGER 段对象的物理扩展数。 head_lsn TEXT 段头lsn标识。 level0_slots BIGINT[] 段扩展映射level0槽位数组。 level1_slots BIGINT[] 段扩展映射level1槽位数组。 fork_head BIGINT[] 段对象的分支段头数组。 例如(下列操作需要在创建过段页式普通表后再执行): gaussdb=# SELECT * FROM gs_seg_get_segment('pg_default', 1024, 4157); blocks | total_blocks | extents | total_extents | head_lsn | level0_slots | level1_slots | fork_head --------+--------------+---------+---------------+----------+--------------+--------------+---------------- 9 | 16 | 2 | 2 | 62211744 | {4157,4165} | {} | {4157,4158,-1} (1 row) gs_seg_get_segment(relid OID, bucketnode INTEGER, partition BOOLEAD DEFAULT FALSE,forknum INTEGER DEFAULT 0) 描述:给定relid,bucketnode等信息输出对应的段头信息。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 relid OID 表对应的OID。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 partition BOOLEAN DEFAULT FALSE 段对象是否为分区,默认为false。 取值范围:bool,代表所传入的oid对应的对象是否为分区。 forknum INTEGER DEFAULT 0 数据文件fork号,默认为0。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 返回值说明: 名称 类型 描述 blocks BIGINT 段对象的逻辑页面数。 total_blocks BIGINT 段对象的物理页面数。 extents INTEGER 段对象的逻辑扩展数。 total_extents INTEGER 段对象的物理扩展数。 head_lsn TEXT 段头lsn标识。 level0_slots BIGINT[] 段扩展映射level0槽位数组。 level1_slots BIGINT[] 段扩展映射level1槽位数组。 fork_head BIGINT[] 段对象的分支段头数组。 例如(下列操作需要在DN上执行,relid必须为查询的段页式对象在该DN上的oid): gaussdb=# SELECT * FROM gs_seg_get_segment(16768, 1024); blocks | total_blocks | extents | total_extents | head_lsn | level0_slots | level1_slots | fork_head --------+--------------+---------+---------------+----------+--------------+--------------+---------------- 9 | 16 | 2 | 2 | 62211744 | {4157,4165} | {} | {4157,4158,4294967295} (1 row) gs_seg_get_extents(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT) 描述:输出该表空间下段头文件里段头页面的段对象的所有扩展,包含1号文件中的segment head、fork head、level1 page,2~5号文件中的data extent。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 tablespace_name NAME 段对象所属的表空间。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 head_block_id BIGINT 段头页面号。 返回值说明: 名称 类型 描述 extent_id INTEGER 逻辑扩展号。 file_id INTEGER 扩展所在的数据文件标识。取值范围:[1, 5]的int4值。 forknum INTEGER 段对象的分支。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 block_id BIGINT 扩展所在的数据文件中的起始页面号。 blocks INTEGER 扩展大小。 取值范围: 1表示1号文件。 8表示2号文件。 128表示3号文件。 1024表示4号文件。 4096表示5号文件。 usage_type TEXT Extent的使用类型。 取值范围: segment head表示段头。 fork head表示分支头。 level1 page表示level页面。 data extent表示数据扩展。 例如(下列操作需要在创建过段页式普通表后再执行): gaussdb=# SELECT * FROM gs_seg_get_extents('pg_default', 1024, 4157); extent_id | file_id | forknum | block_id | blocks | usage_type -----------+---------+---------+----------+--------+-------------- | 1 | 0 | 4157 | 1 | segment head 0 | 2 | 0 | 4157 | 8 | data extent 1 | 2 | 0 | 4165 | 8 | data extent (3 rows) gs_seg_get_extents(relid OID, bucketnode INTEGER, partition BOOLEAD DEFAULT FALSE,forknum INTEGER DEFAULT 0) 描述:输出对应段头文件里段头页面的段对象的所有扩展,包含1号文件中的segment head、fork head、level1 page,2~5号文件中的data extent。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 relid OID 表对应的OID。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 partition BOOLEAN DEFAULT FALSE 段对象是否为分区,默认为false。 取值范围:boolean,代表所传入的oid对应的对象是否为分区。 forknum INTEGER DEFAULT 0 数据文件fork号,默认为0。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 返回值说明: 名称 类型 描述 extent_id INTEGER 逻辑扩展号。 file_id INTEGER 扩展所在的数据文件标识。取值范围:[1, 5]的int4值。 forknum INTEGER 段对象的分支。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 block_id BIGINT 扩展所在的数据文件中的起始页面号。 blocks INTEGER 扩展大小。 取值范围: 1表示1号文件。 8表示2号文件。 128表示3号文件。 1024表示4号文件。 4096表示5号文件。 usage_type TEXT Extent的使用类型。 取值范围: segment head表示段头。 fork head表示分支头。 level1 page表示level页面。 data extent表示数据扩展。 例如(下列操作中relid必须是合法的段页式对象的oid): gaussdb=# SELECT * FROM gs_seg_get_extents(16768, 1024); extent_id | file_id | forknum | block_id | blocks | usage_type -----------+---------+---------+----------+--------+-------------- | 1 | 0 | 4157 | 1 | segment head 0 | 2 | 0 | 4157 | 8 | data extent 1 | 2 | 0 | 4165 | 8 | data extent (3 rows) gs_seg_free_spc_remain_segment(tablespace_name NAME, head_file_id INTEGER, bucketnode INTEGER, head_block_id BIGINT) 描述:释放指定表空间上的段页式残留段在1号文件上占用的页面。残留段可以在GS_SEG_SPC_REMAIN_SEGMENTS视图中查询。只支持管理员权限用户查询。且仅允许在主机执行。 当前该函数存在缺陷,计划在后续版本重构,以彻底解决段页式残留问题,该函数为离线兜底的段页式清理手段。 为保证查询到的残留段和残留扩展的一致性,以及残留清理的一致性,该函数及GS_SEG_SPC_REMAIN_SEGMENTS视图应在DDL\DML受限状态下执行。鉴于当前版本并未提供DML\DDL受限能力,用户在是使用该特性时,应保证其执行环境DML\DDL受限状态。 该函数需要在参数enable_segment_remain_cleanup取值为off时使用。 参数说明: 名称 类型 描述 tablespace_name NAME 表空间名称。 head_file_id INTEGER 段页式残留段的段头所在的数据文件标识。取值范围:【1】。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 head_block_id BIGINT 指定的段头页面号。 返回值说明:void 例如: gaussdb=# SELECT * FROM gs_seg_free_spc_remain_segment('pg_default', 1, 1024, 4159); gs_seg_free_spc_remain_segment -------------------------------- (1 row) gs_seg_free_spc_remain_extent(tablespace_name NAME, file_id INTEGER, bucketnode INTEGER, forknum INTEGER, block_id BIGINT) 描述:释放指定表空间上残留的段页式孤立扩展。残留的孤立扩展可以在GS_SEG_SPC_REMAIN_EXTENTS视图中查询。只支持管理员权限用户查询。且仅允许在主机执行。 该函数需要在参数enable_segment_remain_cleanup取值为off时使用。 参数说明: 名称 类型 描述 tablespace_name NAME 表空间名称。 file_id INTEGER 段页式残留扩展所在数据文件标识。取值范围:【1~5】号文件。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum INTEGER 数据文件分支编号。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 block_id BIGINT 指定的段头页面号。 返回值说明:void 例如: gaussdb=# SELECT * FROM gs_seg_free_spc_remain_extent('pg_default', 1, 1024, 0, 4159); gs_seg_free_spc_remain_extent ------------------------------- (1 row) gs_seg_get_datafiles(database_name NAME) 描述:输出查看实例所有数据文件信息。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 database_name NAME 数据库名称。默认为current_database(),代表当前数据库名称。 返回值说明: 名称 类型 描述 file_name TEXT 数据文件名。例如:base/17467/2_fsm。 file_id INTEGER 数据文件标识。取值范围:【1~5】号文件。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum INTEGER 数据文件分支类型。 tablespace_name NAME 数据文件所属的表空间名称。 contents TEXT 数据文件的存储内容。 取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 extent_size INTEGER 数据文件的扩展大小。 meta_blocks BIGINT 数据文件的已分配的元页面数。 data_blocks BIGINT 数据文件的已分配的数据页面数。 total_blocks BIGINT 数据文件的总物理页面数。 high_water_mark BIGINT 数据文件使用页数的高水位线。 utilization REAL 使用的block数占总block数的百分比。即(data_blocks+meta_blocks)/total_blocks。 例如(下列操作需要在创建过段页式表后再执行): gaussdb=# SELECT * FROM gs_seg_get_datafiles(); file_name | file_id | bucketnode | forknum | tablespace_name | contents | extent_size | meta_blocks | data_blocks | total_blocks | high_water_mark | utilization --------------+---------+------------+---------+-----------------+-----------+-------------+-------------+-------------+--------------+-----------------+------------- base/15949/1 | 1 | 1024 | 0 | pg_default | permanent | 1 | 4157 | 1 | 16384 | 1048702976 | 2.24208e-44 base/15949/2 | 2 | 1024 | 0 | pg_default | permanent | 8 | 4157 | 8 | 16384 | 1048717312 | 2.24208e-44 (2 rows) gs_seg_get_spc_extents(tablespace_name NAME, file_id INTEGER, bucketnode INTEGER, forknum INTEGER, skip_unused BOOLEAN DEFAULT TRUE) 描述:获取指定表空间所有扩展信息。只支持管理员权限用户查询。 参数说明: 名称 类型 描述 tablespace_name NAME 表空间名称。 file_id INTEGER 数据文件标识。取值范围:[1, 5]的int4值。 bucketnode INTEGER 0~1023表示hash bucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum INTEGER 数据文件分支。 取值范围: 0:main fork。 1:fsm fork。 2:vm fork。 skip_unused BOOLEAN DEFAULT TRUE 是否只输出已分配的extent,默认为TRUE,代表只输出已分配的extent。 返回值说明: 名称 类型 描述 block_id BIGINT 数据扩展的起始页面号。 blocks INTEGER 数据扩展大小。 取值范围: 1表示1号文件。 8表示2号文件。 128表示3号文件。 1024表示4号文件。 4096表示5号文件。 contents TEXT 存储内容。 取值范围: permanent表示永久。 unlogged表示不记录日志。 temporary表示全局临时。 temporary2表示本地临时。 in_used TEXT 是否已分配。 取值范围: Y表示已分配。 N表示未分配。 mapblock_location TEXT 扩展在map block中的位置。格式:(page_id, offset)。 head_file_id INTEGER 段头所在数据文件标识。 head_block_id BIGINT 段头页面号。 usage_type TEXT Extent的使用类型。 取值范围: segment head表示段头。 fork head表示分支头。 level1 page表示level页面。 data extent表示数据扩展。 remain_flag TEXT 是否为shrink残留扩展。 取值范围: Y表示是shrink残留扩展。 N表示不是shrink残留扩展。 special_data INTEGER 扩展对应反向指针的特殊数据区。 ipblock_location TEXT 扩展反向指针位置。格式:(block_id, offset)。 例如: gaussdb=# SELECT * FROM gs_seg_get_spc_extents('pg_default', 1,1024, 0); block_id | blocks | contents | in_used | mapblock_location | head_file_id | head_block_id | usage_type | remain_flag | special_data | ipblock_location ----------+--------+-----------+---------+-------------------+--------------+---------------+--------------+-------------+--------------+------------------ 4157 | 1 | permanent | Y | (4157,0) | 1 | 4157 | segment head | N | 0 | (67,0) 4158 | 1 | permanent | Y | (4157,1) | 1 | 4158 | fork head | N | 1 | (67,1) (2 rows) 父主题: 系统管理函数