华为云用户手册

  • 响应参数 参数 类型 描述 positionId Long 岗位id positionCode String 岗位编码 positionName String 岗位名称 orgId Long 组织单元id orgName String 组织单元名称 orgNo String 组织单元编号 positionFactor String 岗位系数 pos Integer 起始条目位置 total_count Integer 返回条目总数 entityName String 实体名称 totalCount Integer 返回条目总数 rolesList array 角色列表 rolesList说明: 参数 类型 描述 roleId Long 角色id roleNo String 角色编码 roleName String 角色名称
  • 响应示例 { "stateCode": "0", "errorMessage": null, "result": [ { "checkOrderName": null, "subTaskOrNot": 1, "submitBy": 391001, "adminOrganizationName": "杨凌作业系统测试№", "beginTimestamp": null, "reportName": "我是接口创建_9740.xlsx", "licenseSwitch": null, "regionName": null, "sceneVersion": "1.0", "templateCode": "DOCT-202307302191", "templateId": 117045418684, "schedulerBy": 391001, "type": 4, "checkOrderId": null, "signSiteCode": "我是接口创建", "lastUpdateTimestamp": 1690700742191, "projectNo": "", "checkOrderType": null, "sceneCode": "TS20230730145425952", "creationTimestamp": 1690700484764, "sceneId": 153883, "subTaskIds": "2171644,2171645", "sceneMode": 4, "regionPath": null, "supplierName": null, "issueId": null, "sceneName": "yytest-子任务参考值", "signSiteName": "我是接口创建", "signSiteId": 15497284, "creationDate": "2023-07-30T07:01:24.000+00:00", "sceneTaskId": 3303688, "actualBeginTime": null, "createdBy": 391001, "templateName": "父子任务参考值", "regionId": null, "schedulerTimestamp": 1690700484764, "isGenerateDoc": "1", "actualEndTime": null, "adminOrganization": "830", "taskName": "yytest-子任务参考值_20230730_150123_我是接口创建_杨凌作业系统测试№_TS2", "projectName": "", "endTimestamp": null, "ticketId": 0, "createName": "杨xx改名2", "remarks": null, "schedulerDate": "2023-07-30T07:01:25.000+00:00", "status": 1, "processFeedback": null } ] }
  • 响应示例 [ { "result": "Y", "object_list": [ { "object_id": "Tesla_03020101", "result": "Y", "num": null, "remark_no": "", "remark_en": "[reason0]检测到所有走线是规范的。", "remark_cn": "", "detect_list": [ { "similarity": "0.9417528510093689", "category_name": "electricity_meter", "category_type": "", "lt_x": "850.0", "lt_y": "735.0", "rb_x": "1265.0", "rb_y": "1364.0" } ] } ] } ]
  • 请求示例 { "distributionMap": { "serviceId": "ai-model-server", "uri": "/model/detect" }, "paramMap": { "image_base64": str(b64), "object_list": [ {"object_id": "Tesla_03020101"} ] } }
  • 请求参数 参数 类型 是否必填 描述 distributionMap object 是 路由参数 paramMap object 是 业务参数 distributionMap说明: 参数 类型 是否必填 描述 serviceId String 是 服务名称 uri String 是 服务uri paramMap说明: 参数 类型 是否必填 描述 image_base64 String 是 待识别的图片转成的base64串。 object_list List 是 智能对象列表,以及智能对象的入参。 object_list说明: 参数 类型 是否必填 描述 object_id String 是 智能对象ID。详情请参见智能对象标识。
  • 响应参数 参数 类型 描述 result String 响应结果。图片是否通过。 Y:通过 N:不通过 object_list Object 响应数据。 object_list说明: 参数 类型 描述 object_id String 条目ID。 result String 条目是否通过。 Y:通过 N:不通过 num String 检测到的目标数量。 remark_no String 备注编号。 remark_en String 评审通过/不通过时对应说明。 remark_cn String 备注信息。 detect_list List 条目检测结果信息。 detect_list 属性列表: 参数 类型 描述 similarity String 置信度。 lt_x String 左上角点横坐标。 lt_y String 左上角点纵坐标。 rb_x String 右下角点横坐标。 rb_y String 右下角点纵坐标。 category_name String 条目名称。
  • 请求参数 参数 类型 是否必填 描述 deviceId String 是 设备编码,请输入数字、英文、_、#等字符 deviceName String 是 设备名称,请输入数字、中文、英文、_、-等字符 deviceAddress String 否 设备位置信息 projectName String 否 项目名称 projectNumber String 否 项目编码 model String 否 model deviceType Long 是 设备类型 可选值WEBCAM/MONITOR_BALL/BODY_WORN_CAMERA/INTELLIGENT_SAFETY_HELMET/INTELLIGENT_MINER_L IGHT/MOBILE/IVS1800/IVS3800 多个以英文逗号分隔,不传默认查询所有 deviceManageState String 否 设备管理状态 可选值NoActivation/ ACTIVATION,不传默认空 deviceSubType String 否 设备子类型 manufacture String 否 制造商 description String 否 描述 deviceAddressNumber String 否 设备位置编码 autoJoin String 是 是否主动接入视频 可选值Y或者N,Y标识开启,N标识不开启 enableEndSide String 是 是否开启边缘AI 可选值Y或者N,Y标识开启,N标识不开启 enableVideoRecording String 是 是否开启视频录制 可选值Y或者N,Y标识开启,N标识不开启 ownnerId Long 否 设备责任人Id deviceUserId Long 否 设备使用人Id customerOrgName String 否 使用区 域名 称 customerOrgCode String 否 使用区域编码 password String 是 设备加密密码 buOrgId Long 是 组织Id buOrgName String 是 组织名称 publicKey String 是 公钥
  • 响应参数 参数 类型 描述 status Int 响应状态,1标识成功,否则不成功 message String 响应信息,SUC CES S标识成功,否则失败 error String 错误信息,接口错误时有值,正常调用时为空 data object 响应消息体 groupId Long 群组Id,data子项 groupName String 群组名称,data子项 timestamp Date 响应时间
  • 请求示例 { "deviceId" : "lq1234565", "deviceName" : "lq1234565", "deviceAddress" : "", "projectName" : "", "model" : "", "deviceType" : "INTELLIGENT_SAFETY_HELMET", "deviceManageState" : "", "deviceSubType" : "其他", "manufacture" : "", "description" : "", "deviceAddressNumber" : "", "projectNumber" : "", "autoJoin" : "Y", "enableEndSide" : "Y", "enableVideoRecording" : "Y", "ownnerId" : "", "deviceUserId" : "", "customerOrgName" : "", "customerOrgCode" : "", "password" : "6056243f591d17b6c492dc0958b25dd082534ae92eb103e628f19df0d480f791fa74310139be72e05ceac313545080d2575341ec5d577c0235659f1f538640efd0bd0d3172be4b46bc08bd6b1365521*****************************************************************************************e69473fdccbf6f07882e465fd66017df0656a9b2641881daa2a47dfb19b941647e3d9147d2b38f0aa340b6870f24df1cd2794dddfcd4db546dbaa418fccb9ad7fdada2eec6dd481cacea82349c6559659af9", "buOrgId" : 830, "buOrgName" : "杨凌作业系统测试", "publicKey" : "a0894ec6070c281ac4b9140adbc1f5b4624ff69e03f4181dde50fe79b99545af5c76a5af4e5e8c8441bd7ab3496e729395816db118acfea1e4673e47855322cd897b40d8f7278645fd045b392470a9c4806ee6765c1cbc87b3f87224c1c841e88bc5569de5af93f319e6d5cc34c4041ca26a376b6cdb2014605b8abacba5aca4918c4ed72b*****************************************************************************************3cf014a893f807f84873846b5e0773de63a05de12aa31ef2d64ce9379f7c41e037923eaafe4e750cd3eeaa1fae14c1329a2c9a192c930ef4a665e1bb2604ef66ac65f52a3e0cd2720ea2a42e79574688d62b73d31b4614c6e4a32cd96dbd5c1fb37b2a8d1001d3927bbccc48c9f5ce1929b0a2cc1b73761cda503114c5b,10001" }
  • 响应示例 { "stateCode": "0", "errorMessage": null, "result": [ { "status": "0", "message": "保存成功", "customerTaskId": null, "taskId": 2900025 } ] }
  • 相关API 接口名称 调用说明 获取Token 调用该接口获取到Token,再调用其他接口时,需要在请求消息头中添加“Authorization”,其值即为Token。 查询任务场景 调用该接口获取到任务场景的场景名称。 创建任务时,需要输入获取到的场景名称。 查询租户下用户信息(API名称:getPersonListByTenant) 调用该接口获取执行人。 创建任务时,任务模式为“启用子任务”时,需要输入获取到执行人;其他任务模式“执行人”为空则提交后为“待调度”状态,“执行人”填写后提交为“待执行”或“任务申请待审批”状态。 查询父任务 创建任务后,可以调用该接口查询创建的任务。
  • 请求示例 { "taskQueries": [ { "supplierName": "", "taskRemark": "", "beginTimestamp": "", "collectionReviewName": "", "sceneName": "openApi-简单任务场景", "latitude": "23.456", "signSiteName": "bzh00201", "customerTaskId": "1255d-104456789123789001026", "projectNo": "", "assignedUserType": "1", "geoType": "BD", "reviewRuleName": "人员数量", "taskName": "简单任务012", "assignedUser": "15080988442", "endTimestamp": "", "taskExtendList": "", "longitude": "123.456", "toolSet": [ { "toolNo": "T003", "toolName": "子任务2-工序1", "toolLocation": { "x": 100, "y": 200 }, "toolAttrList": [ { "attrName": "显示名称", "attrCode": "displayName", "attrValue": "子任务2-工序1" } ] } ] } ] }
  • 响应参数 参数 类型 描述 stateCode String 响应状态码。 0:成功 其他:失败 errorMessage String 响应描述。 result Object 响应结果内容data、分页数据。 data出参: 参数 类型 描述 customerTaskId String 客户任务ID taskId Long 创建成功的任务id status Integer 返回状态:0-成功;1-失败 message String 返回的失败消息。
  • 具体步骤 发送“POST https://ISDP+ Endpoint/oauth2/oauth/rest_token”。 Token认证,具体操作请参考认证鉴权。 ISDP+ Endpoint,请参见API接口中API的描述。 在Request Header中增加“Authorization”和“Content-type”。 Content-Type:消息体的类型(格式),请参见API接口中API的描述。 Authorization:ISDP+ Token。Token也就是步骤1调用ISDP+ Token接口的响应值“access_token”和“token_type”的组合(token_type access_token)。 在Request Body中传入参数样例: POST https://isdpcloud-beta.sd.huawei.com/openapi/v1/openSceneTask/createTask Authorization: bearer XXXXXXXXXXXXXX Content-Type: application/json { "taskQueries": [ { "customerTaskId": "95599", "taskName": "客服工单001号", "signSiteName": "XX省XX市", "sceneName": "质量模板测试", "assignedUserType": "1", "assignedUser": "13600000001", "supplierName": "测试", "beginTimestamp": "20220228", "endTimestamp": "20220228", "taskRemark": "故障描述", "taskExtendList": "", "address":"故障地址名称", "customerName":"用户姓名" } ] } 返回如下响应,表示新增任务成功。响应消息样例如下: { "stateCode": "0", "errorMessage": null, "result": [ { "status": "0", "message": "保存成功", "customerTaskId": "95599", "taskId": 131129 } ] } 若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考错误码。
  • 修订记录 发布日期 修订记录 2023-12-15 第十次正式发布。 新增章节: 是否支持列举特殊字符对象 2023-11-14 第九次正式发布。 下载OBS Browser+ 新增兼容性说明。 2023-09-22 第八次正式发布。 如何永久分享文件或文件夹新增设置对象ACL操作步骤。 2022-01-30 第七次正式发布。 新增章节: 桶的基本操作 桶的高级配置 对象操作 任务管理 2021-09-14 第六次正式发布。 常见问题章节补充登录失败、定时上传等相关问题。 2021-07-30 第五次正式发布。 新增参数约束说明 2021-05-20 第四次正式发布。 新增账号登录失败的解决方案。 更新定时上传的功能。 2021-03-13 第三次正式发布。 新增支持定时上传功能。 2020-11-15 第二次正式发布。 新增支持账号密码登录。 新增支持二维码分享功能。 2019-11-30 第一次正式发布。
  • 整体方案 图1 架构图 上图中方案构成的系统完成了如下能力: 通过IEF构建的数据通道对边缘侧数据集成组件的生命周期进行管理。 通过IEF的配置通道对边缘侧数据集成规则进行配置。该规则为可处理流数据的SQL语句。 通过IEF将边缘侧获取到的数据转入相应的云服务或用户自己部署在云端的应用中。 边缘侧的Kuiper Container负责对接边缘侧其他系统获取数据。 边缘侧Kuiper的数据处理函数和数据源为插件式,可以由社区、ISV或华为等开发并预置。该插件也可以由IEF在云端进行管理进行插拔。 该方案由如下几个角色构成,在实际项目中可能其中的某些角色是合并为一个实体的: 华为云IEF 提供IEF服务,提供整合了Kuiper的边缘、边云数据集成系统。 EMQ 提供对边缘侧数据集成组件Kuiper的商业支持。 插件开发者 根据业务需求在Kuiper上开发对应的source和数据处理function。 业务开发者 使用IEF提供的整合式 数据集成平台 ,配置边缘侧数据处理逻辑,配置数据到云端服务的转发规则,在云端部署应用对边缘侧数据进行消费处理。
  • 其它函数 pgxc_pool_check() 描述:检查连接池中缓存的连接数据是否与pgxc_node一致。 返回值类型:Boolean pgxc_pool_reload() 描述:更新连接池中缓存的连接信息。 返回值类型:Boolean reload_active_coordinator() 描述:对所有存活的CN,更新连接池中缓存的连接信息。 返回值类型:void pgxc_lock_for_backup() 描述:为备份操作给集群加锁,这些备份是为在新增节点上做恢复。 返回值类型:Boolean pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。 pg_pool_validate(clear bool, node_name text) 描述:显示CN到节点node_name之间pooler中无效连接,当clear为true时清理无效连接。 返回值类型:record gs_validate_node_conn(validate_type cstring, validate_node_name cstring) 描述:显示或清除当前节点接收来自指定节点的连接。 返回值类型:record 表1 gs_validate_node_conn函数参数说明 参数类型 参数名 类型 描述 输入参数 validate_type cstring 指定入参类型: 'check':用于显示当前节点接收来自指定节点的连接。 'clear':用于清除当前节点接收来自指定节点的连接。 输入参数 validate_node_name cstring 指定节点名称。 输出参数 pid bigint 显示当前节点接收来自指定节点连接的线程id(若是线程池线程则为0)。 输出参数 sessionid bigint 显示当前节点接收来自指定节点连接的session id(若是非线程池线程则为0)。 输出参数 node_name text 显示当前节点接收来自指定节点连接的节点名称。 pgxc_pool_connection_status() 描述:检查pooler连接状态是否正常。 返回值类型:boolean pg_nodes_memory() 描述:查看所有节点的内存占用。 返回值类型:record table_skewness(text) 描述:查看表数据在所有节点的占比。 参数:表示待查询表的表名,为text类型。 返回值类型:record table_skewness(text, text, text) 描述:查看表数据指定列在所有节点的占比。 参数:表示待查询表的表名、指定列名、指定的表的记录数(默认值为0,查询所有记录),都为text类型。 返回值类型:record 返回值说明:节点编号,指定列的数据行数,当前节点数据量相对总数据量的占比。 示例: 返回't'表'a'字段前5行数据在节点上的分布。 gaussdb=# select table_skewness('t', 'a',5); table_skewness ---------------- (1,3,60.000%) (2,2,40.000%) (2 rows) 返回't'表'a'字段所有数据在节点上的分布。 gaussdb=# select table_skewness('t', 'a'); table_skewness ---------------- (1,7,70.000%) (2,2,20.000%) (0,1,10.000%) (3 rows) table_skewness_with_schema(text, text) 描述:查看表数据在所有节点的占比,与table_skewness(text)作用相同。 参数:表示待查询表的schema名称和表名,为text类型。 返回值类型:record table_data_skewness(colrecord, type) 描述:查看表数据所在节点。 参数说明: colrecord:表示待查询表的列名记录,为record类型。 type:hash分布类型 返回值类型:smallint 示例: --返回'test1'表的'index'字段数据所在的节点。 gaussdb=# select table_data_skewness(row(index), 'R') from test1; table_data_skewness --------------------- 4 3 1 2 (4 rows) table_distribution(schemaname text, tablename text) 描述:查看指定表在各个节点上占用的存储空间。 参数:表示待查询表的模式名和表名,均为text类型。 返回值类型:record 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 table_distribution性能比table_skewness更优,大数据量场景下,请优先考虑使用table_distribution函数。 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。 table_distribution() 描述:查看当前库中所有表在各节点的存储空间分布情况。 返回值类型:record 使用本函数涉及全库表信息查询,需要具备管理员权限。 当前基于table_distribution()函数, GaussDB 提供视图PGXC_GET_TABLE_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。 plan_seed() 描述:获取前一次查询语句的seed值(内部使用)。 返回值类型:int pg_stat_get_env() 描述:获取当前节点的环境变量信息,仅sysadmin和monitor admin可以访问。 返回值类型:record 示例: gaussdb=# select pg_stat_get_env(); pg_stat_get_env --------------------------------------------------------------------------------------------------------------------------------------- (coordinator1,localhost,144773,49100,/data1/GaussDB_Kernel_TRUNK/install,/data1/GaussDB_Kernel_TRUNK/install/data/coordinator1,pg_log) (1 row) pg_catalog.plancache_clean() 描述:清理节点上无人使用的全局计划缓存。 返回值类型:bool pg_stat_get_thread() 描述:提供当前节点下线程的状态信息,sysadmin和monitor admin用户可以查看所有线程的信息,普通用户只能查看本用户的线程信息。 返回值类型:record pgxc_get_os_threads() 描述:提供整个集群中所有正常节点下的线程状态信息。 返回值类型:record pg_stat_get_sql_count() 描述:提供当前节点中用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果,sysadmin和monitor admin用户可以查看所有用户的信息,普通用户只能查看本用户的统计信息。 返回值类型:record pgxc_get_sql_count() 描述:提供整个集群所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果。 返回值类型:record pgxc_get_node_env() 描述:提供获取集群中所有节点的环境变量信息。 返回值类型:record pgxc_disaster_read_set(text) 描述:设置灾备集群的节点信息到ETCD上。仅灾备集群可用,仅初始用户可调用。 返回值类型:Boolean pgxc_disaster_read_init() 描述:初始化灾备可读的资源和状态信息。仅灾备集群可用,仅初始用户可调用。 返回值类型:Boolean pgxc_disaster_read_clear() 描述:清理灾备可读的资源和状态信息。仅灾备集群可用,仅初始用户可调用。 返回值类型:Boolean pgxc_disaster_read_status() 描述:提供灾备集群的节点信息,仅灾备集群可用。 返回值类型:record gs_switch_relfilenode() 描述:交换两个表或分区的元信息(重分布工具内部使用,用户直接使用会有错误信息提示)。 返回值类型:int 此函数可能导致清空统计信息,建议在调用后重新收集统计信息。 pg_catalog.plancache_clean() 描述:清理当前节点上无人使用的全局计划缓存。 返回值类型:boolean DBE_PERF.global_plancache_clean() 描述:清理所有节点上无人使用的全局计划缓存。 返回值类型:Boolean copy_error_log_create() 描述:创建COPY FROM容错机制所需要的错误表(public.pgxc_copy_error_log)。 返回值类型:Boolean 此函数会尝试创建public.pgxc_copy_error_log表,表的详细信息请参见表2。 在relname列上创建B-tree索引,并REVOKE ALL on public.pgxc_copy_error_log FROM public对错误表进行权限控制(与COPY语句权限一致)。 由于尝试创建的public.pgxc_copy_error_log定义是一张行存表,因此集群上必须支持行存表的创建才能够正常运行此函数,并使用后续的COPY容错功能。需要特别注意的是,enable_hadoop_env这个GUC参数开启后会禁止在集群内创建行存表(GaussDB默认为off)。 此函数自身权限为Sysadmin及以上(与错误表、COPY权限一致)。 若创建前public.pgxc_copy_error_log表已存在或者copy_error_log_relname_idx索引已存在,则此函数会报错回滚。 表2 错误表public.pgxc_copy_error_log信息 列名称 类型 描述 relname character varying 表名称。以模式名.表名形式显示。 begintime timestamp with time zone 出现数据格式错误的时间。 filename character varying 出现数据格式错误的数据源文件名。 lineno bigint 在数据源文件中,出现数据格式错误的行号。 rawrecord text 在数据源文件中,出现数据格式错误的原始记录。 detail text 详细错误信息。 pg_stat_get_data_senders() 描述:提供当前活跃的数据复制发送线程的详细信息。 返回值类型:record textlen() 描述:提供查询text的逻辑长度的方法。 返回值类型:int threadpool_status() 描述:显示线程池中工作线程及会话的状态信息。 返回值类型:record get_local_active_session() 描述:提供当前节点保存在内存中的历史活跃session状态的采样记录,sysadmin和monitor admin权限能查看当前节点所有的历史活跃session记录,普通用户查看本会话的历史活跃session记录。 返回值类型:record dbe_perf.get_global_active_session() 描述:提供所有节点保存在内存中的历史活跃session状态的采样记录。 返回值类型:record dbe_perf.get_global_gs_asp(timestamp, timestamp) 描述:提供所有节点保存在系统表gs_asp中的历史活跃session状态的采样记录。 返回值类型:record get_wait_event_info() 描述:提供wait event事件的具体信息。 返回值类型:record dbe_perf.get_datanode_active_session(text) 描述:提供从CN查询DN上保存在内存中的历史活跃session状态的采样记录。 返回值类型:record 备注:该函数查询目标DN上local_active_session视图中记录并和所有CN上的local_active_session中的记录进行匹配获取query string,所以会占用大量的内存。 dbe_perf.get_datanode_active_session_hist(text, timestamp, timestamp) 描述:提供从CN查询DN上保存在系统表gs_asp中的历史活跃session状态的采样记录。 返回值类型:record 备注:该函数查询目标DN上指定时间段的gs_asp记录,如果指定时间段过长造成查询的记录过多,会耗费大量时间。 generate_wdr_report(bigint, bigint, cstring, cstring,cstring) 描述:基于两个snapshot生成系统诊断报告,默认初始化用户或监控管理员用户可以访问。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:text 表3 generate_wdr_report参数说明 参数 说明 取值范围 begin_snap_id 生成某段时间内性能诊断报告的开始snapshotid。 - end_snap_id 结束snapshot的id,默认end_snap_id大于begin_snap_id。 - report_type 指定生成report的类型。 summary detail all,即同时包含summary和detail。 report_scope 指定生成report的范围。 cluster:数据库级别的信息 node:节点级别的信息。 node_name 在“report_scope”指定为“node”时,需要把该参数指定为对应节点的名称。 在“report_scope”为“cluster”时,该参数可以省略,或指定为NULL。 node:GaussDB中的节点名称。 cluster:省略/空/NULL。 create_wdr_snapshot() 描述:手工生成系统诊断快照,该函数需要sysadmin权限,且只能在CCN上执行。 返回值类型:text kill_snapshot() 描述:kill后台的WDR snapshot线程,调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 返回值类型:void capture_view_to_json(text, integer) 描述:将视图的结果存入GUC: perf_directory所指定的目录,如果is_crossdb为1,则表示对于所有的database都会访问一次view;如果is_crossdb为0,则表示仅对当前database进行一次视图访问。该函数只有sysadmin和monitor admin用户可以执行。 返回值类型:int reset_unique_sql(text, text, bigint) 描述:用来清理CN/DN内存中的Unique SQL(需要sysadmin/monitor admin权限)。 返回值类型:Boolean 表4 reset_unique_sql参数说明 参数 类型 描述 scope text 清理范围类型: 'GLOBAL' - 清理所有的CN/DN节点,如果是'GLOBAL',则只可以为CN节点执行此函数。 'LOCAL' - 清理本节点。 clean_type text 'BY_USERID' - 按用户ID来进行清理Unique SQL。 'BY_CNID' - 按CN的ID来进行清理Unique SQL。 'ALL' - 全部清理。 clean_value int8 具体清理type对应的清理值。如果第二个参数为ALL,则第三个参数不起作用,可以取任意值。 wdr_xdb_query(db_name_str text, query text) 描述:提供本地跨数据库执行query的能力。例如: 在连接到testdb库时, 访问test库下的表。只有初始化用户才有权限执行。 select col1 from wdr_xdb_query('dbname=test','select col1 from t1') as dd(col1 int); 返回值类型:record pg_wlm_jump_queue(pid int) 描述:调整任务到CN队列的最前端。 返回值类型:boolean true:成功。 false:失败。 gs_wlm_switch_cgroup(pid int, cgroup text) 描述:调整作业的优先级到新控制组。 返回值类型:boolean true:成功。 false:失败。 pv_session_memctx_detail(threadid tid, MemoryContextName text) 描述:将线程tid的MemoryContextName内存上下文信息记录到“$GAUSS LOG /pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。其中threadid可通过查询表PV_SESSION_MEMORY_DETAIL中的sessid字段获得。在正式发布的版本中仅接受MemoryContextName为空串(两个单引号表示输入为空串,即'')的输入,此时会记录所有的内存上下文信息,否则不会有任何操作。该函数需要管理员权限的用户才能执行。 返回值类型:boolean true:成功。 false:失败。 pg_shared_memctx_detail(MemoryContextName text) 描述:将MemoryContextName内存上下文信息记录到“$GAUSSLOG/pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。在正式发布版本中调用该函数不会有任何操作。该函数需要管理员权限的用户才能执行。 返回值类型:boolean true:成功。 false:失败。 local_bgwriter_stat() 描述:显示本实例的bgwriter线程刷页信息,候选buffer链中页面个数,buffer淘汰信息。 返回值类型:record local_candidate_stat() 描述:显示本实例的候选buffer链中页面个数,buffer淘汰信息,包含normal buffer pool和segment buffer pool。 返回值类型:record local_ckpt_stat() 描述:显示本实例的检查点信息和各类日志刷页情况。 返回值类型:record local_double_write_stat() 描述:显示本实例的双写文件的情况。 返回值类型:record 表5 local_double_write_stat参数说明 参数 类型 描述 node_name text 实例名称。 curr_dwn int8 当前双写文件的序列号。 curr_start_page int8 当前双写文件恢复起始页面。 file_trunc_num int8 当前双写文件复用的次数。 file_reset_num int8 当前双写文件写满后发生重置的次数。 total_writes int8 当前双写文件总的I/O次数。 low_threshold_writes int8 低效率写双写文件的I/O次数(一次I/O刷页数量少于16页面)。 high_threshold_writes int8 高效率写双写文件的I/O次数(一次I/O刷页数量多于一批,421个页面)。 total_pages int8 当前刷页到双写文件区的总的页面个数。 low_threshold_pages int8 低效率刷页的页面个数。 high_threshold_pages int8 高效率刷页的页面个数。 file_id int8 当前双写文件的id号。 local_single_flush_dw_stat() 描述:显示本实例的单页面淘汰双写文件的情况。 返回值类型:record local_pagewriter_stat() 描述:显示本实例的刷页信息和检查点信息。 返回值类型:record local_redo_stat() 描述:显示本实例的备机的当前回放状态。 返回值类型:record 备注:返回的回放状态主要包括当前回放位置,回放最小恢复点位置等信息。 local_recovery_status() 描述:显示本实例的主机和备机的日志流控信息。 返回值类型:record local_rto_status() 描述:显示本实例的主机和备机的日志流控信息。 返回值类型:record gs_wlm_switch_cgroup(sess_id int8, cgroup name) 描述:切换指定会话的控制组。 返回值类型:record comm_client_info() 描述:用于查询单个节点活跃的客户端连接信息,返回结果解释见COMM_CLIENT_INFO。 返回值类型:setof record pg_get_flush_lsn() 描述:返回当前节点flush的xlog位置。 返回值类型:text pg_get_sync_flush_lsn() 描述:返回当前节点多数派flush的xlog位置。 返回值类型:text pgxc_wlm_rebuild_user_resource_pool() 描述:重新构建用户及资源池缓存信息。需要系统管理员权限才可以执行该函数。 返回值类型:boolean locktag_decode(locktag text) 描述:从locktag中解析锁的具体信息。 示例: gaussdb=# select locktag_decode('271b:0:0:0:0:6'); locktag_decode --------------------------------------------- locktype:transactionid, transactionid:10011 (1 row) 返回值类型:text disable_conn(disconn_mode text, host text, port integer) 描述:CM Agent处理CM Server下发的命令,在DN进行选主时设置该DN拒绝连接所有DN、强制连接某个DN或轮询连接所有DN。只有初始化用户和系统管理员才可以调用该函数。 返回值类型:void 表6 disable_conn参数说明 参数 类型 描述 disconn_mode text DN连接模式: 'prohibit_connection' - 拒绝连接所有DN。 'specify_connection' - 强制连接某个DN。 'polling_connection' - 轮询连接所有DN。 host text DN的IP。 port integer DN的端口号。 dbe_perf.get_global_full_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:获取集群级的全量SQL(Full SQL)信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 表7 dbe_perf.get_global_full_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 dbe_perf.get_global_slow_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:获取集群级的慢SQL(Slow SQL)信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 表8 dbe_perf.get_global_slow_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 statement_detail_decode(detail text, format text, pretty boolean) 描述:解析全量/慢SQL语句中的details字段的信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:text 表9 statement_detail_decode参数说明 参数 类型 描述 detail text SQL语句产生的事件的集合(不可读)。 format text 解析输出格式,取值为plaintext。 pretty boolean 当format为plaintext时,是否以优雅的格式展示: true:表示通过“\n”分隔事件。 false:表示通过“,”分隔事件。 pgxc_get_csn(tid) 描述:返回给定的事务id对应的事务提交序号( CS N)。 返回值类型:int8 get_global_user_transaction() 描述:返回所有节点上各用户的事务相关信息。 返回值类型:node_name name、usename name、commit_counter bigint、rollback_counter bigint、resp_min bigint、resp_max bigint、resp_avg bigint、resp_total bigint、bg_commit_counter bigint、bg_rollback_counter bigint、bg_resp_min bigint、bg_resp_max bigint、bg_resp_avg bigint、bg_resp_total bigint pg_collation_for() 描述:返回入参字符串对应的排序规则 参数:any(如果是常量必须进行显式类型转换) 返回值类型:text pgxc_unlock_for_sp_database(name Name) 描述:释放指定数据库锁。 参数:数据库名 返回值类型:Boolean pgxc_lock_for_sp_database(name Name) 描述:对指定的数据库加锁。 参数:数据库名 返回值类型:Boolean pgxc_unlock_for_transfer(name Name) 描述:释放用于数据传输(数据重分布)锁。 参数:数据库名 返回值类型:Boolean pgxc_lock_for_transfer(name Name) 描述:对数据库枷锁,用于数据传输(数据重分布)。 参数:数据库名 返回值类型:Boolean gs_comm_proxy_thread_status() 描述:用于在集群配置用户态网络的场景下,代理通信库comm_proxy收发数据包统计。该函数在当前版本不支持。 参数:nan 返回值类型:record gs_catalog_attribute_records() 描述:对于指定的系统表oid,返回该系统表对应的各个字段的定义。仅支持oid小于10000的普通系统表(不支持索引、toast表等)。 参数:系统表oid 返回值类型:record dynamic_func_control(scope text, function_name text, action text, "{params}" text[]) 描述:动态开启内置的功能,当前仅支持动态开启全量SQL。 返回值类型:record 表10 dynamic_func_control参数说明 参数 类型 描述 scope text 动态开启功能的范围,当前仅支持'GLOBAL/LOCAL'。 function_name text 功能的名称,当前仅支持'STMT'。 action text 当function_name为'STMT'时,action仅支持TRACK/UNTRACK/LIST/CLEAN: TRACK - 开始记录归一化SQL的全量SQL信息。 UNTRACK - 取消记录归一化SQL的全量SQL信息。 LIST - 列取当前TRACK的归一化SQL的信息。 CLEAN - 清理记录当前归一化SQL的信息。 params text[] 当function_name为'STMT'时,对应不同的action时,对应的params设置如下: TRACK - '{"归一化SQLID", "L0/L1/L2"}' UNTRACK - '{"归一化SQLID"}' LIST - '{}' CLEAN - '{}' gs_parse_page_bypath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述:用于解析指定表页面,并返回存放解析内容的路径。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表11 gs_parse_page_bypath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名);例如:base/16603/16394 对于普通表的visibility map,相对路径为:tablespace name/database oid/表的vm文件。例如:base/16603/16394_vm。 对于clog文件,相对路径为:pg_clog目录下的clog文件。例如:000000000000。 对于csnlog文件,相对路径为:pg_csnlog目录下的csnlog文件。例如:000000000000。 对于undo record文件,相对路径为:undo目录下的undo/UNDOPERSISTENCE/zondid.segno。例如:undo/permanent/00000.0000009。 对于undo meta文件,相对路径为:undo目录下的undo/UNDOPERSISTENCE/zondid.meta.segno。例如:undo/permanent/00000.meta.0000004。 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 对于BTree/UBTree索引,block 0为索引元页面。 对于undo record文件,采用逻辑块号,对应文件block大于等于segno*128,小于(segno+1)*128。 对于undo meta文件,采用逻辑块号,对应文件block大于等于segno*4,小于(segno+1)*4。 relation_type text heap(astore表)。 uheap(ustore表)。 btree(BTree索引)。 ubtree(UBTree索引)。 segment(段页式,预留参数,暂不支持)。 vm(astore普通表的visibility map)。 clog(事务状态日志commit log)。 csnlog(快照时间戳日志commit sequence number log)。 undo_slot(事务槽信息)。 undo_record(undo 记录信息)。 read_memory boolean false:从磁盘文件解析。 true:首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。 正常使用示例: # 解析BTree索引文件中所有页面的信息内容 # 函数调用前请依据参数说明中的内容确保文件路径真实存在 gaussdb=# select gs_parse_page_bypath('base/16603/16394', -1, 'btree', false); gs_parse_page_bypath -------------------------------------------------------------------- /data_dir/1663_16603_16394_-1.page (1 row) # 解析vm文件中所有block的可见性结果 gaussdb=# select gs_parse_page_bypath('base/12828/16771_vm', -1, 'vm', false); gs_parse_page_bypath ----------------------------------------------------------------------- /data_dir/1663_12828_16771_-1_vm.page (1 row) # 解析clog文件中0号block的commit log日志 gaussdb=# select gs_parse_page_bypath('000000000000', 0, 'clog', false); gs_parse_page_bypath -------------------------------------------------------------------- /data_dir/000000000000.clog (1 row) 异常场景报错示例: # 入参blocknum超出取值范围时报错 gaussdb=# select gs_parse_page_bypath('base/12828/16777', -10, 'heap', false); ERROR: Blocknum should be between -1 and 4294967294. CONTEXT: referenced column: gs_parse_page_bypath gs_xlogdump_lsn(start_lsn text, end_lsn text) 描述:用于解析指定lsn范围之内的XLOG日志,并返回存放解析内容的路径。可以通过pg_current_xlog_location()获取当前XLOG位置。 参数:LSN起始位置,LSN结束位置。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 gs_xlogdump_xid(c_xid xid) 描述:用于解析指定xid的XLOG日志,并返回存放解析内容的路径。可以通过txid_current()获取当前事务ID。 参数:事务ID 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 gs_xlogdump_tablepath(path text, blocknum bigint, relation_type text) 描述:用于解析指定表页面对应的日志,并返回存放解析内容的路径。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表12 gs_xlogdump_tablepath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名)。例如:base/16603/16394。 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 relation_type text heap(astore 表) btree(BTree 索引) segment(段页式,预留参数,暂不支持) gs_xlogdump_parsepage_tablepath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述:用于解析指定表页面和表页面对应的日志,并返回存放解析内容的路径。可以看做一次执行gs_parse_page_bypath和gs_xlogdump_tablepath。该函数执行的前置条件是表文件存在。如果想查看已删除的表的相关日志,请直接调用gs_xlogdump_tablepath。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表13 gs_xlogdump_parsepage_tablepath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名);例如:base/16603/16394 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 relation_type text heap(astore 表) btree(BTree 索引) segment(段页式,预留参数,暂不支持) read_memory boolean false:从磁盘文件解析; true:首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。 gs_index_recycle_queue(Oid oid, int type, uint32 blkno) 描述:用于解析UBtree索引回收队列信息。 返回值类型:record 表14 gs_index_recycle_queue参数说明 参数 类型 描述 oid Oid 索引文件relfilenode,可以通过select relfilenode from pg_class where relname='name'查询,其中name表示对应的索引文件名字。 type int 0:表示解析整个待回收队列 1:表示解析整个空页队列 2:表示解析单个页面 blkno uint32 回收队列页面编号,该参数只有在type=2的时候有效,blkno有效取值范围为1~4294967294。 该函数功能在分布式版本上不支持,有报错提示。 gs_stat_wal_entrytable(int64 idx) 描述:用于输出xlog中预写日志插入状态表的内容。 返回值类型:record 表15 gs_stat_wal_entrytable参数说明 参数类型 参数名 类型 描述 输入参数 idx int64 -1:查询数组所有元素。 0-最大值:具体某个数组元素内容。 输出参数 idx uint64 记录对应数组中的下标。 输出参数 endlsn uint64 记录的LSN标签。 输出参数 lrc int32 记录对应的LRC。 输出参数 status uint32 标识当前entry对应的xlog是否已经完全拷贝到wal buffer中: 0:非COPIED 1: COPIED gs_walwriter_flush_position() 描述:输出预写日志的刷新位置。 返回值类型:record 表16 gs_walwriter_flush_position参数说明 参数类型 参数名 类型 描述 输出参数 last_flush_status_entry int32 Xlog flush上一个刷盘的tblEntry下标索引。 输出参数 last_scanned_lrc int32 Xlog flush上一次扫描到的最后一个tblEntry记录的LRC。 输出参数 curr_lrc int32 WALInsertStatusEntry状态表中LRC最新的使用情况,该LRC表示下一个Xlog记录写入时在WALInsertStatusEntry对应的LRC值。 输出参数 curr_byte_pos uint64 Xlog记录写入WAL 文件,最新分配的位置,下一个xlog记录插入点。 输出参数 prev_byte_size uint32 上一个xlog记录的长度。 输出参数 flush_result uint64 当前全局xlog刷盘的位置。 输出参数 send_result uint64 当前主机上xlog发送位置。 输出参数 shm_rqst_write_pos uint64 共享内存中记录的XLogCtl中LogwrtRqst请求的write位置。 输出参数 shm_rqst_flush_pos uint64 共享内存中记录的XLogCtl中LogwrtRqst请求的flush位置。 输出参数 shm_result_write_pos uint64 共享内存中记录的XLogCtl中LogwrtResult的write位置。 输出参数 shm_result_flush_pos uint64 共享内存中记录的XLogCtl中LogwrtResult的flush位置。 输出参数 curr_time text 当前时间。 gs_walwriter_flush_stat(int operation) 描述:用于统计预写日志write与sync的次数频率与数据量,以及xlog文件的信息。 返回值类型:record 表17 gs_walwriter_flush_stat参数说明 参数类型 参数名 类型 描述 输入参数 operation int -1: 关闭统计开关(默认状态为关闭)。 0:打开统计开关。 1:查询统计信息。 2:重置统计信息。 输出参数 write_times uint64 Xlog调用write接口的次数。 输出参数 sync_times uint64 Xlog调用sync接口次数。 输出参数 total_xlog_sync_bytes uint64 Backend线程请求写入xlog总量统计值。 输出参数 total_actual_xlog_sync_bytes uint64 调用sync接口实际刷盘的xlog总量统计值。 输出参数 avg_write_bytes uint32 每次调用XLogWrite接口请求写的xlog量。 输出参数 avg_actual_write_bytes uint32 实际每次调用write接口写的xlog量。 输出参数 avg_sync_bytes uint32 平均每次请求sync的xlog量。 输出参数 avg_actual_sync_bytes uint32 实际每次调用sync刷盘xlog量。 输出参数 total_write_time uint64 调用write操作总时间统计(单位:us)。 输出参数 total_sync_time uint64 调用sync操作总时间统计(单位:us)。 输出参数 avg_write_time uint32 每次调用write接口平均时间(单位:us)。 输出参数 avg_sync_time uint32 每次调用sync接口平均时间(单位:us)。 输出参数 curr_init_xlog_segno uint64 当前最新创建的xlog段文件编号。 输出参数 curr_open_xlog_segno uint64 当前正在写的xlog段文件编号。 输出参数 last_reset_time text 上一次重置统计信息的时间。 输出参数 curr_time text 当前时间。 pg_ls_tmpdir() 描述:返回默认表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。 参数:nan 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 pg_ls_tmpdir(oid) 描述:返回指定表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。 参数:oid 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输入参数 oid oid 表空间id。 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 pg_ls_waldir() 描述:返回预写日志(WAL)目录中每个文件的名称、大小和最后修改时间。 参数:nan 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 gs_write_term_log(void) 描述:写入一条日志记录DN节点当前的term值。备DN节点返回false,主DN节点写入成功后返回true。 返回值类型:Boolean gs_stat_space(bool init) 描述:用于查询UStore中做Insert操作时拓展页面的状态。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 init bool 是否重置已统计的数据。 输出参数 access_func int8 relation_get_buffer_for_utuple接口访问总次数。 输出参数 cache_blk int8 relation_get_buffer_for_utuple获取缓存次数。 输出参数 cache_succ int8 relation_get_buffer_for_utuple获取缓存成功次数。 输出参数 nblk_first int8 relation_get_buffer_for_utuple中第一次获取nblocks-1次数。 输出参数 nblk_first_succ int8 relation_get_buffer_for_utuple中第一次获取nblocks-1成功次数。 输出参数 nblk_second int8 relation_get_buffer_for_utuple中第二次获取nblocks-1次数。 输出参数 nblk_second_succ int8 relation_get_buffer_for_utuple中第二次获取nblocks-1成功次数。 输出参数 fsm_first int8 第一次访问FSM次数。 输出参数 fsm_first_success int8 第一次访问FSM成功次数。 输出参数 fsm_rewrite int8 FSM回写次数。 输出参数 fsm_second int8 第二次访问FSM次数。 输出参数 fsm_second_sucess int8 第二次访问FSM成功次数。 输出参数 prune_count int8 relation_get_buffer_for_utuple中Prune次数。 输出参数 prune_space int8 relation_get_buffer_for_utuple中Prune总空间。 输出参数 coprune_count int8 联合清理执行次数。 输出参数 coprune_scan_blocks int8 联合清理扫描总页数。 输出参数 coprune_prune_count int8 联合清理Prune次数。 输出参数 coprune_prune_space int8 联合清理Prune总空间。 输出参数 con_extend_count int8 并发扩页数量。 输出参数 con_extend_time int8 并发扩页总时间。 输出参数 single_extend_time int8 单一扩页次数。 示例: gaussdb=# select * from gs_stat_space(false); access_func | cache_blk | cache_succ | nblk_first | nblk_first_succ | nblk_sencond | nblk_sencond_succ | fsm_first | fsm_first_success | fsm_rewrite | fsm_ second | fsm_second_success | prune_count | prune_space | coprune_count | coprune_scan_blocks | coprune_prune_count | coprune_prune_space | con_extend_count | con_extend_time | single_extend_count -------------+-----------+------------+------------+-----------------+--------------+-------------------+-----------+-------------------+-------------+----- -------+--------------------+-------------+-------------+---------------+---------------------+---------------------+---------------------+----------------- -+-----------------+--------------------- 10082397 | 10082397 | 10082235 | 88 | 78 | 47021 | 47021 | 162 | 74 | 360996 | 360996 | 270948 | 6711 | 0 | 45497 | 222619 | 0 | 0 | 3675 | 25542884 | 26791 (1 row) 备注:请重点关注cache_succ此值较小说明系统缓存失效,prune_space 此值较小表示UStore数据页页面清理机制可能存在问题,con_extend_time此值过高可能表明UStore并发拓页时耗时较高。 gs_redo_upage(directory_path text, backup_path text, blocknum bigint, relation_type text, xlog_path text, lsn text) 描述:用于将备份的特定UStore数据页面重放到指定LSN,并在重放期间校验页面,若检测到页面受损或页面记录受损则告警受损信息,并在重放后落盘页面,返回落盘路径、页面LSN以及受损信息,否则重放至指定LSN并落盘页面后返回,必须是系统管理员或运维管理员才能执行此函数。 返回值类型:record 参数类型 参数 类型 描述 输入参数 directory_path text 备份文件所在目录。 输入参数 backup_path text 备份表文件的相对路径,与备份文件所在目录拼成表文件的完整路径,例如,base/15635/12488,当备份不存在时,传入null。 输入参数 blocknum bigint 0~MaxBlockNumber:对应页面的块号。 输入参数 relation_type text uheap(Ustore数据页)。 ubtree(Ustore索引页)。 indexurq(Urq页面)。 undo_record(Undo record页面)。 undo_slot(Transaction slot页面)。 输入参数 xlog_path text 归档日志目录的绝对路径。 输入参数 lsn text lsn由两个16进制数(各32 bits)组成,中间通过"/"隔开,例如:2/962D1DF8。如果是0则重放到最新版本。 输出参数 output_filename text 文件的落盘路径与文件名。 输出参数 output_lsn text 最后一次页面重放的LSN。 输出参数 corruption_desc text 页面受损情况描述。 gs_xlogdump_bylastlsn(last_lsn text, blocknum bigint, relation_type text) 描述:传入一个页面LSN以及块号,解析LSN对应的WAL日志,并获取对应块号的last LSN继续解析,直到last LSN为0或者更老版本的WAL日志已被复用回收,并将解析后的日志落盘到指定路径,必须是系统管理员或运维管理员才能执行此函数。本系统函数不支持备机调用。 返回值类型:text 参数类型 参数名 类型 描述 输入参数 last_lsn text 解析指定页面的LSN,基于十六进制表示,如12BA/32CDEDDD,LSN可通过页面解析工具(gs_parse_page_bypath等)获取。 输入参数 blocknum bigint 指定页面的逻辑块号。 参数范围:-1~MaxBlockNumber。 块号指定为-1时表示从WAL日志中获取默认块号。 输入参数 relation_type text 指定解析页面的类型。 参数范围:uheap、ubtree、heap、btree、undo_record、undo_slot。 输出参数 output_filepath text WAL日志解析结果的落盘路径。 示例: # 获取页面LSN信息 # 函数调用前请依据参数说明中的内容确保文件路径真实存在 gaussdb=# select * from gs_parse_page_bypath('base/15833/16768', 0, 'uheap', false); output_filepath --------------------------------------------------------------- /data1/database/cluster/primary/data/1663_15833_16768_0.page (1 row) gaussdb=# select * from gs_xlogdump_bylastlsn('0/4593570', -1, 'uheap'); output_filepath ------------------------------------------------------------------- /data1/database/cluster/primary/data/pg_log/dump/4593570_-1.xlog (1 row) gaussdb=# select * from gs_xlogdump_bylastlsn('0/4593570', 0, 'ubtree'); ERROR: The input lsn 0/4593570 related xlog is not ubtree. dbe_perf.get_full_sql_by_parent_id_and_timestamp(parent_id bigint, start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:根据parent_id获取某个时间段内,执行某个存储过程的数据库级的全量SQL及其子语句的记录。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 参数 类型 描述 parent_id bigint 指定需要检索的存储过程的调用语句的unique_sql_id。 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 示例: gaussdb=# CREATE TABLE test(a int,b int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE gaussdb=# INSERT INTO test values(1,1); INSERT 0 1 gaussdb=# CREATE PROCEDURE mypro1() as num int; gaussdb$# begin gaussdb$# INSERT INTO test values(2,2); gaussdb$# DELETE FROM test where a = 2; gaussdb$# end; gaussdb$# / CREATE PROCEDURE # 打开参数,跟踪存储过程子语句。 gaussdb=# SET instr_unique_sql_track_type = 'all'; SET # 打开参数,dbe_perf.statement_history表生成全量语句记录。 gaussdb=# SET track_stmt_stat_level = 'L0,L0'; SET gaussdb=# CALL mypro1(); mypro1 -------- (1 row) gaussdb=# SET track_stmt_stat_level = 'off,L0'; SET gaussdb=# SET instr_unique_sql_track_type = 'top'; SET # 查询关键信息,作为函数参数使用。 gaussdb=# SELECT query,unique_query_id,start_time,finish_time FROM dbe_perf.statement_history; query | unique_query_id | start_time | finish_time --------------------------------------+-----------------+-------------------------------+------------------------------- set track_stmt_stat_level = 'L0,L0'; | 636388010 | 2023-06-02 17:40:49.176155+08 | 2023-06-02 17:40:49.176543+08 call mypro1(); | 536458473 | 2023-06-02 17:40:59.028144+08 | 2023-06-02 17:40:59.032027+08 delete from test where a = ? | 583323884 | 2023-06-02 17:40:59.029955+08 | 2023-06-02 17:40:59.031577+08 insert into test values(?,?) | 769279931 | 2023-06-02 17:40:59.029219+08 | 2023-06-02 17:40:59.029947+08 (4 rows) # 通过外层语句的unique_query_id,开始时间的起止时间作为参数,查询该时间段内,指定存储过程及其子语句的信息。 gaussdb=# SELECT query FROM dbe_perf.get_full_sql_by_parent_id_and_timestamp(536458473,'2023-06-02 17:40:59.028144+08','2023-06-02 17:40:59.032027+08'); query ------------------------------ call mypro1(); delete from test where a = ? insert into test values(?,?) (3 rows) gs_index_dump_read(int8 reset, text out_type) 描述:用于查询索引获取新页面时在循环队列中产生的buffer read信息和索引页面相同key从左到右遍历叶子页面的buffer read信息。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 reset int8 0:将统计信息reset为初始值0,重新开始统计。 1:直接show出当前的统计信息。 输入参数 out_type text urq:输出循环队列的统计信息。 ubtree:输出索引页的统计信息。 all:循环队列和索引页的统计信息全部输出。 输出参数 relfilenode oid 统计到的最大buffer read值对应的索引relfilenode。 输出参数 max_count int8 最大buffer read值。 输出参数 ave_count int8 平均buffer read值。 该接口当前仅支持USTORE索引表。 该接口执行时,先reset清理、将记录全部置为0。再进行查询,直到下次统计到信息值之前,查询记录会一直为0。查询示例如下: gaussdb=# SELECT * FROM gs_index_dump_read(0, 'all'); relfilenode | max_count | ave_count --------------+-------------+------------- | | (1 row) gaussdb=# SELECT * FROM gs_index_dump_read(1, 'all'); relfilenode | max_count | ave_count --------------+-------------+------------- 0 | 0 | 0 0 | 0 | 0 (2 rows) 父主题: 系统管理函数
  • 双集群容灾查询函数 gs_get_local_barrier_status() 描述:两地三中心跨Region容灾特性开启后,主集群和灾备集群进行日志同步,通过barrier日志在主集群的落盘,在灾备集群的回放来确定主集群归档日志进度与灾备集群日志回放进度。gs_get_local_barrier_status用于查询灾备集群每个节点当前的日志回放情况。 返回值类型:text barrier_id:灾备集群某节点当前回放到的最新barrier ID。 barrier_lsn:灾备集群某节点当前回放到的最新barrier ID的Log Sequence Number ( LSN )。 archive_lsn:灾备集群某节点当前已获得归档日志的位置,该参数当前未生效。 flush_lsn:灾备集群某节点当前已完成刷盘日志位置。 gs_hadr_in_recovery() 描述:两地三中心跨Region容灾特性开启后,查询当前节点是否处于基于目标barrier的日志恢复中,还在恢复中返回true。只有完成日志恢复,才会启动switchover流程中的灾备集群升为生产集群的步骤,需要系统管理员角色执行。 返回值类型:Boolean 该函数只有在容灾集群启动计划内switchover时使用。 gs_streaming_dr_get_switchover_barrier() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询灾备集群参与容灾的CN与首备DN实例是否已接收到switchover barrier日志并完成回放,已完成返回true。灾备集群只有在所有DN实例都完成switchover barrier日志回放,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。 gs_streaming_dr_service_truncation_check() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询主集群参与容灾的CN与主DN实例是否已完成switchover barrier日志发送,已完成返回true。只有完成日志发送,才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_hadr_local_rto_and_rpo_stat() 描述:显示流式容灾的本地节点数据库实例和灾备数据库实例日志流控信息(如果在没有参加流式容灾的节点执行,如备DN或部分CN节点,则可能返回空)。 返回值类型:record,具体各个字段的类型和含义如表1所示。 表1 gs_hadr_local_rto_and_rpo_stat参数说明 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主数据库实例和备数据库实例首备。 hadr_receiver_node_name text 备数据库实例首备名称。 source_ip text 主数据库实例主DN IP地址。 source_port int 主数据库实例主DN通信端口。 dest_ip text 备数据库实例首备DN IP地址。 dest_port int 备数据库实例首备DN通信端口。 current_rto int 流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。 target_rto int 流控的信息,目标主备数据库实例间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。 target_rpo int 流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。 gs_hadr_remote_rto_and_rpo_stat() 描述:显示流式容灾的其他所有分片或CN数据库实例和灾备数据库实例日志流控信息(一般在CN节点执行;如果在DN节点执行,可能返回为空)。 返回值类型:record,具体各个字段的类型和含义如表2所示。 表2 gs_hadr_remote_rto_and_rpo_stat 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主数据库实例和备数据库实例首备。 hadr_receiver_node_name text 备数据库实例首备名称。 source_ip text 主数据库实例主DN IP地址。 source_port int 主数据库实例主DN通信端口。 dest_ip text 备数据库实例首备DN IP地址。 dest_port int 备数据库实例首备DN通信端口。 current_rto int 流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。 target_rto int 流控的信息,目标主备数据库实例间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。 target_rpo int 流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。 父主题: 系统管理函数
  • 示例 gaussdb=# create public database link test_link1 connect to 'user1' identified by '********' using (port '54399',dbname 'db01'); 禁止使用DATABASE LINK连接初始用户。 禁止初始用户创建、修改和删除DATABASE LINK对象。 升级未提交情况下无法创建使用DATABASE LINK。 当使用CURRENT_USER或CONNECT TO连接串省略时,使用当前数据库初始用户名和空密码连接,使用时会连接失败。
  • 其它函数 plan_seed() 描述:获取前一次查询语句的seed值(内部使用)。 返回值类型:int pg_stat_get_env() 描述:获取当前节点的环境变量信息,仅sysadmin和monitor admin可以访问。 返回值类型:record 示例: gaussdb=# select pg_stat_get_env(); pg_stat_get_env --------------------------------------------------------------------------------------------------------------------------------------- (sgnode,"localhost,XXX.XXX.XXX.XXX",28589,26000,/home/omm,/home/omm/data/single_node,pg_log) (1 row) pg_catalog.plancache_clean() 描述:清理节点上无人使用的全局计划缓存。 返回值类型:bool pg_catalog.plancache_status() 描述:显示节点上全局计划缓存的信息,函数返回信息和GLOBAL_PLANCACHE_STATUS一致。 返回值类型:record textlen(text) 描述:提供查询text的逻辑长度的方法。 返回值类型:int threadpool_status() 描述:显示线程池中工作线程及会话的状态信息。 返回值类型:record get_local_active_session() 描述:提供当前节点保存在内存中的历史活跃session状态的采样记录。 返回值类型:record pg_stat_get_thread() 描述:提供当前节点下所有线程的状态信息,sysadmin和monitor admin用户可以查看所有线程信息,普通用户查看本用户的线程信息。 返回值类型:record pg_stat_get_sql_count() 描述:提供当前节点中用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果,sysadmin和monitor admin用户可以查看所有用户的信息,普通用户查看本用户的统计信息。 返回值类型:record pg_stat_get_data_senders() 描述:提供当前活跃的数据复制发送线程的详细信息。 返回值类型:record get_wait_event_info() 描述:提供wait event事件的具体信息。 返回值类型:record generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring) 描述:基于两个snapshot生成系统诊断报告。需要在系统库下执行,默认初始化用户或monadmin用户可以访问。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 表1 generate_wdr_report 参数说明 参数 说明 取值范围 begin_snap_id 生成某段时间内性能诊断报告的开始snapshotid。 - end_snap_id 结束snapshot的id,默认end_snap_id大于begin_snap_id。 - report_type 指定生成report的类型。 summary detail all,即同时包含summary 和 detail。 report_scope 指定生成report的范围。 cluster:数据库级别的信息。 node:节点级别的信息。 node_name 在report_scope指定为node时,需要把该参数指定为对应节点的名称。(节点名称可以执行select * from pg_node_env;查询)。 在report_scope为cluster时,该值可以省略或者指定为空或NULL。 cluster:省略/空/NULL node:GaussDB中的节点名称。 create_wdr_snapshot() 描述:手工生成系统诊断快照,该函数需要sysadmin权限。 返回值类型:text kill_snapshot() 描述:kill后台的WDR snapshot线程,调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。 返回值类型:void capture_view_to_json(text, integer) 描述:将视图的结果存入GUC: perf_directory所指定的目录,如果is_crossdb为1,则表示对于所有的database都会访问一次view;如果is_crossdb为0,则表示仅对当前database进行一次视图访问。该函数只有sysadmin和monitor admin用户可以执行。 返回值类型:int reset_unique_sql(text, text, bigint) 描述:用来清理数据库节点内存中的Unique SQL(需要sysadmin/monitor admin权限)。 返回值类型:bool 表2 reset_unique_sql参数说明 参数 类型 描述 scope text 清理范围类型: 'GLOBAL':清理所有的节点,如果是'GLOBAL',则只可以为主节点执行此函数。 'LOCAL':清理本节点。 clean_type text 'BY_USERID':按用户ID来进行清理Unique SQL。 'BY_CNID':按主节点的ID来进行清理Unique SQL。 'ALL':全部清理。 clean_value int8 具体清理type对应的清理值。 wdr_xdb_query(db_name_str text, query text) 描述:提供本地跨数据库执行query的能力。例如:在连接到testdb库时,访问test库下的表,只有初始化用户才有权限执行。 select col1 from wdr_xdb_query('dbname=test','select col1 from t1') as dd(col1 int); 返回值类型:record pg_wlm_jump_queue(pid int) 描述:调整任务到数据库主节点队列的最前端。 返回值类型:boolean true:成功。 false:失败。 gs_wlm_switch_cgroup(pid int, cgroup text) 描述:调整作业的优先级到新控制组。 返回值类型:boolean true:成功。 false:失败。 pv_session_memctx_detail(threadid tid, MemoryContextName text) 描述:将线程tid的MemoryContextName内存上下文信息记录到“$GAUSSLOG/pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。其中threadid可通过视图GS_SESSION_MEMORY_DETAIL中的sessid后获得。在正式发布的版本中仅接受MemoryContextName为空串(两个单引号表示输入为空串,即'')的输入,此时会记录所有的内存上下文信息,否则不会有任何操作。该函数需要管理员权限的用户才能执行。 返回值类型:boolean true:成功。 false:失败。 pg_shared_memctx_detail(MemoryContextName text) 描述:将MemoryContextName内存上下文信息记录到“$GAUSSLOG/pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。该函数功能仅在DEBUG版本中供内部开发人员和测试人员调试使用,在正式发布版本中调用该函数不会有任何操作。该函数需要管理员权限的用户才能执行。 返回值类型:boolean true:成功。 false:失败。 local_bgwriter_stat() 描述:显示本实例的bgwriter线程刷页信息,候选buffer链中页面个数,buffer淘汰信息。 返回值类型:record local_candidate_stat() 描述:显示本实例的候选buffer链中页面个数,buffer淘汰信息,包含normal buffer pool和segment buffer pool。 返回值类型:record local_ckpt_stat() 描述:显示本实例的检查点信息和各类日志刷页情况。 返回值类型:record local_double_write_stat() 描述:显示本实例的双写文件的情况。 返回值类型:record 表3 local_double_write_stat参数说明 参数 类型 描述 node_name text 实例名称。 curr_dwn int8 当前双写文件的序列号。 curr_start_page int8 当前双写文件恢复起始页面。 file_trunc_num int8 当前双写文件复用的次数。 file_reset_num int8 当前双写文件写满后发生重置的次数。 total_writes int8 当前双写文件总的I/O次数。 low_threshold_writes int8 低效率写双写文件的I/O次数(一次I/O刷页数量少于16页面)。 high_threshold_writes int8 高效率写双写文件的I/O次数(一次I/O刷页数量多于一批,421个页面)。 total_pages int8 当前刷页到双写文件区的总的页面个数。 low_threshold_pages int8 低效率刷页的页面个数。 high_threshold_pages int8 高效率刷页的页面个数。 file_id int8 当前双写文件的id号。 local_single_flush_dw_stat() 描述:显示本实例的单页面淘汰双写文件的情况。 返回值类型:record local_pagewriter_stat() 描述:显示本实例的刷页信息和检查点信息。 返回值类型:record local_redo_stat() 描述:显示本实例的备机的当前回放状态。 返回值类型:record 备注:返回的回放状态主要包括当前回放位置,回放最小恢复点位置等信息。 local_recovery_status() 描述:显示本实例的主机和备机的日志流控信息。 返回值类型:record gs_wlm_node_recover(boolean isForce) 描述:获取当前内存中记录的TopSQL查询语句级别相关统计信息,当传入的参数不为0时,会将这部分信息从内存中清理掉。 返回值类型:record gs_cgroup_map_ng_conf(group name) 描述:读取指定逻辑数据库的cgroup配置文件。 返回值类型:record gs_wlm_switch_cgroup(sess_id int8, cgroup name) 描述:切换指定会话的控制组。 返回值类型:record comm_client_info() 描述:用于查询单个节点活跃的客户端连接信息。 返回值类型:setof record pg_get_flush_lsn() 描述:返回当前节点flush的xlog位置。 返回值类型:text pg_get_sync_flush_lsn() 描述:返回当前节点多数派flush的xlog位置。 返回值类型:text dbe_perf.get_global_full_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:获取数据库级的全量SQL(Full SQL)信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 表4 dbe_perf.get_global_full_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 dbe_perf.get_global_slow_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:获取数据库级的慢SQL(Slow SQL)信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 表5 dbe_perf.get_global_slow_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 statement_detail_decode(detail text, format text, pretty boolean) 描述:解析全量/慢SQL语句中的details字段的信息。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:text 表6 statement_detail_decode参数说明 参数 类型 描述 detail text SQL语句产生的事件的集合(不可读)。 format text 解析输出格式,取值为 plaintext。 pretty boolean 当format为plaintext时,是否以优雅的格式展示: true:表示通过“\n”分隔事。 false:表示通过“,”分隔事件。 pg_control_system() 描述:返回系统控制文件状态。 返回类型:SETOF record pg_control_checkpoint() 描述:返回系统检查点状态。 返回类型:SETOF record get_prepared_pending_xid() 描述:当恢复完成时,返回nextxid。 参数:nan 返回值类型:text pg_clean_region_info() 描述:清理regionmap。 参数:nan 返回值类型:character varying pg_get_replication_slot_name() 描述:获取slot name。 参数:nan 返回值类型:text pg_get_running_xacts() 描述:获取运行中的xact。 参数:nan 返回值类型:handle integer、gxid xid、state tinyint、node text、xmin xid、vacuum boolean、timeline bigint、prepare_xid xid、pid bigint、next_xid xid pg_get_variable_info() 描述:获取共享内存变量cache。 参数:nan 返回值类型:node_name text、nextOid oid、nextXid xid、oldestXid xid、xidVacLimit xid、oldestXidDB oid、lastExtendCSNLogpage xid、startExtendCSNLogpage xid、nextCommitSeqNo xid、latestCompletedXid xid、startupMaxXid xid pg_get_xidlimit() 描述:从共享内存获取事物id信息。 参数:nan 返回值类型:nextXid xid、oldestXid xid、xidVacLimit xid、xidWarnLimit xid、xidStopLimit xid、xidWrapLimit xid、oldestXidDB oid pg_relation_compression_ratio() 描述:查询表压缩率,默认返回1.0。 参数:text 返回值类型:real pg_relation_with_compression() 描述:查询表是否压缩。 参数:text 返回值类型:boolean pg_stat_file_recursive() 描述:列出路径下所有文件。 参数:location text 返回值类型:path text、filename text、size bigint、isdir boolean pg_stat_get_activity_for_temptable() 描述:返回临时表相关的后台进程的记录。 参数:nan 返回值类型:datid oid、timelineid integer、tempid integer、sessionid bigint pg_stat_get_activity_ng() 描述:返回nodegroup相关的后台进程的记录。 参数:pid bigint 返回值类型:datid oid、pid bigint、sessionid bigint、node_group text pg_stat_get_cgroup_info() 描述:返回cgroup信息。 参数:nan 返回值类型:cgroup_name text、percent integer、usage_percent integer、shares bigint、usage bigint、cpuset text、relpath text、valid text、node_group text pg_stat_get_realtime_info_internal() 描述:返回实时信息,当前该接口已不可用,返回FailedToGetSessionInfo。 参数:oid、oid, bigint、cstring、oid 返回值类型:text pg_test_err_contain_err() 描述:测试错误类型和返回信息。 参数:integer 返回值类型:void get_global_user_transaction() 描述:返回所有节点上各用户的事务相关信息。 返回值类型:node_name name、usename name、commit_counter bigint、rollback_counter bigint、resp_min bigint、resp_max bigint、resp_avg bigint、resp_total bigint、bg_commit_counter bigint、bg_rollback_counter bigint、bg_resp_min bigint、bg_resp_max bigint、bg_resp_avg bigint、bg_resp_total bigint pg_collation_for() 描述:返回入参字符串对应的排序规则。 参数:any(如果是常量必须进行显式类型转换) 返回值类型:text pgxc_unlock_for_sp_database(name Name) 该函数当前版本暂不可用。 pgxc_lock_for_sp_database(name Name) 该函数当前版本暂不可用。 copy_error_log_create() 描述:创建COPY FROM容错机制所需要的错误表(public.pgxc_copy_error_log)。 返回值类型:Boolean 此函数会尝试创建public.pgxc_copy_error_log表,表的详细信息请参见表7。 在relname列上创建B-tree索引,并REVOKE ALL on public.pgxc_copy_error_log FROM public对错误表进行权限控制(与COPY语句权限一致)。 由于尝试创建的public.pgxc_copy_error_log定义是一张行存表,因此数据库实例上必须支持行存表的创建才能够正常运行此函数,并使用后续的COPY容错功能。需要特别注意的是,enable_hadoop_env这个GUC参数开启后会禁止在数据库实例内创建行存表(GaussDB默认为off)。 此函数自身权限为Sysadmin及以上(与错误表、COPY权限一致)。 若创建前public.pgxc_copy_error_log表已存在或者copy_error_log_relname_idx索引已存在,则此函数会报错回滚。 表7 错误表public.pgxc_copy_error_log信息 列名称 类型 描述 relname character varying 表名称。以模式名.表名形式显示。 begintime timestamp with time zone 出现数据格式错误的时间。 filename character varying 出现数据格式错误的数据源文件名。 lineno bigint 在数据源文件中,出现数据格式错误的行号。 rawrecord text 在数据源文件中,出现数据格式错误的原始记录。 detail text 详细错误信息。 dynamic_func_control(scope text, function_name text, action text, "{params}" text[]) 描述:动态开启内置的功能,当前仅支持动态开启全量SQL。 返回值类型:record 表8 dynamic_func_control参数说明 参数 类型 描述 scope text 动态开启功能的范围,当前仅支持'LOCAL'。 function_name text 功能的名称,当前仅支持'STMT'。 action text 当function_name为'STMT'时,action仅支持TRACK/UNTRACK/LIST/CLEAN: TRACK - 开始记录归一化SQL的全量SQL信息。 UNTRACK - 取消记录归一化SQL的全量SQL信息。 LIST - 列取当前TRACK的归一化SQL的信息。 CLEAN - 清理记录当前归一化SQL的信息。 params text[] 当function_name为'STMT'时,对应不同的action时,对应的params设置如下: TRACK - '{"归一化SQLID", "L0/L1/L2"}' UNTRACK - '{"归一化SQLID"}' LIST - '{}' CLEAN - '{}' gs_parse_page_bypath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述:用于解析指定表页面,并返回存放解析内容的路径。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表9 gs_parse_page_bypath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名)。例如:base/16603/16394。 对于普通表的visibility map,相对路径为:tablespace name/database oid/表的vm文件。例如:base/16603/16394_vm。 对于clog文件,相对路径为:pg_clog目录下的clog文件。例如:000000000000。 对于csnlog文件,相对路径为:pg_csnlog目录下的csnlog文件。例如:000000000000。 对于undo record文件,相对路径为:undo目录下的undo/UNDOPERSISTENCE/zondid.segno。例如:undo/permanent/00000.0000009。 对于undo meta文件,相对路径为:undo目录下的undo/UNDOPERSISTENCE/zondid.meta.segno。例如:undo/permanent/00000.meta.0000004。 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 对于BTree/UBTree索引,block 0为索引元页面。 对于undo record文件,采用逻辑块号,对应文件block大于等于segno*128,小于(segno+1)*128。 对于undo meta文件,采用逻辑块号,对应文件block大于等于segno*4,小于(segno+1)*4。 relation_type text heap(astore 表)。 uheap(ustore 表)。 btree(BTree 索引)。 ubtree(UBTree 索引)。 segment(段页式,预留参数,暂不支持)。 vm(astore普通表的visibility map)。 clog(事务状态日志commit log)。 csnlog(快照时间戳日志commit sequence number log)。 undo_slot(事务槽信息)。 undo_record(undo 记录信息)。 read_memory boolean false:从磁盘文件解析。 true:首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。 正常使用示例: # 解析BTree索引文件中所有页面的信息内容 # 函数调用前请依据参数说明中的内容确保文件路径真实存在 gaussdb=# select gs_parse_page_bypath('base/16603/16394', -1, 'btree', false); gs_parse_page_bypath -------------------------------------------------------------------- /data_dir/1663_16603_16394_-1.page (1 row) # 解析vm文件中所有block的可见性结果 gaussdb=# select gs_parse_page_bypath('base/12828/16771_vm', -1, 'vm', false); gs_parse_page_bypath ----------------------------------------------------------------------- /data_dir/1663_12828_16771_-1_vm.page (1 row) # 解析clog文件中0号block的commit log日志 gaussdb=# select gs_parse_page_bypath('000000000000', 0, 'clog', false); gs_parse_page_bypath -------------------------------------------------------------------- /data_dir/000000000000.clog (1 row) 异常场景报错示例: # 入参blocknum超出取值范围时报错 gaussdb=# select gs_parse_page_bypath('base/12828/16777', -10, 'heap', false); ERROR: Blocknum should be between -1 and 4294967294. CONTEXT: referenced column: gs_parse_page_bypath gs_xlogdump_lsn(start_lsn text, end_lsn text) 描述:用于解析指定lsn范围之内的XLOG日志,并返回存放解析内容的路径。可以通过pg_current_xlog_location()获取当前XLOG位置。 返回值类型:text 参数:LSN起始位置,LSN结束位置 备注:必须是系统管理员或运维管理员才能执行此函数。 gs_xlogdump_xid(c_xid xid) 描述:用于解析指定xid的XLOG日志,并返回存放解析内容的路径。可以通过txid_current()获取当前事务ID。 参数:事务ID 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 gs_xlogdump_tablepath(path text, blocknum bigint, relation_type text) 描述:用于解析指定表页面对应的日志,并返回存放解析内容的路径。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表10 gs_xlogdump_tablepath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名)。例如:base/16603/16394。 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 relation_type text heap(astore 表) uheap(ustore 表) btree(BTree 索引) ubtree(UBTree 索引) segment(段页式,预留参数,暂不支持) gs_xlogdump_parsepage_tablepath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述:用于解析指定表页面和表页面对应的日志,并返回存放解析内容的路径。可以看做一次执行gs_parse_page_bypath和gs_xlogdump_tablepath。该函数执行的前置条件是表文件存在。如果想查看已删除的表的相关日志,请直接调用gs_xlogdump_tablepath。 返回值类型:text 备注:必须是系统管理员或运维管理员才能执行此函数。 表11 gs_xlogdump_parsepage_tablepath参数说明 参数 类型 描述 path text 对于普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名);例如:base/16603/16394 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。 合法的path格式列举: global/relNode base/dbNode/relNode pg_tblspc/spcNode/version_dir/dbNode/relNode blocknum bigint -1:所有block的信息(强制从磁盘解析)。 0~MaxBlockNumber:对应block的信息。 relation_type text heap(astore 表) uheap(ustore 表) btree(BTree 索引) ubtree(UBTree 索引) segment(段页式,预留参数,暂不支持) read_memory boolean false:从磁盘文件解析。 true:首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。 gs_index_verify(Oid oid, uint32 blkno) 描述:用于校验UBtree索引页面或者索引树上key的顺序是否正确。 返回值类型:record 表12 gs_index_verify参数说明 参数 类型 描述 oid Oid 索引文件relfilenode,可以通过select relfilenode from pg_class where relname='name'查询,其中name表示对应的索引文件名字。 blkno uint32 0 :表示检验整个索引树上所有页面。 大于0:表示校验页面编码等于blkno的索引页面。 gs_index_recycle_queue(Oid oid, int type, uint32 blkno) 描述:用于解析UBtree索引回收队列信息。 返回值类型:record 表13 gs_index_recycle_queue参数说明 参数 类型 描述 oid Oid 索引文件relfilenode,可以通过select relfilenode from pg_class where relname='name'查询,其中name表示对应的索引文件名字。 type int 0:表示解析整个待回收队列。 1:表示解析整个空页队列。 2:表示解析单个页面。 blkno uint32 回收队列页面编号,该参数只有在type=2的时候有效,blkno有效取值范围为1~4294967294。 gs_stat_wal_entrytable(int64 idx) 描述:用于输出xlog中预写日志插入状态表的内容。 返回值类型:record 表14 gs_stat_wal_entrytable参数说明 参数类型 参数名 类型 描述 输入参数 idx int64 -1:查询数组所有元素。 0-最大值:具体某个数组元素内容。 输出参数 idx uint64 记录对应数组中的下标。 输出参数 endlsn uint64 记录的LSN标签。 输出参数 lrc int32 记录对应的LRC。 输出参数 status uint32 标识当前entry对应的xlog是否已经完全拷贝到wal buffer中: 0:非COPIED 1:COPIED gs_walwriter_flush_position() 描述:输出预写日志的刷新位置。 返回值类型:record 表15 gs_walwriter_flush_position参数说明 参数类型 参数名 类型 描述 输出参数 last_flush_status_entry int32 Xlog flush上一个刷盘的tblEntry下标索引。 输出参数 last_scanned_lrc int32 Xlog flush上一次扫描到的最后一个tblEntry记录的LRC。 输出参数 curr_lrc int32 WALInsertStatusEntry状态表中LRC最新的使用情况,该LRC表示下一个Xlog记录写入时在WALInsertStatusEntry对应的LRC值。 输出参数 curr_byte_pos uint64 Xlog记录写入WAL文件,最新分配的位置,下一个xlog记录插入点。 输出参数 prev_byte_size uint32 上一个xlog记录的长度。 输出参数 flush_result uint64 当前全局xlog刷盘的位置。 输出参数 send_result uint64 当前主机上xlog发送位置。 输出参数 shm_rqst_write_pos uint64 共享内存中记录的XLogCtl中LogwrtRqst请求的write位置。 输出参数 shm_rqst_flush_pos uint64 共享内存中记录的XLogCtl中LogwrtRqst请求的flush位置。 输出参数 shm_result_write_pos uint64 共享内存中记录的XLogCtl中LogwrtResult的write位置。 输出参数 shm_result_flush_pos uint64 共享内存中记录的XLogCtl中LogwrtResult的flush位置。 输出参数 curr_time text 当前时间。 gs_walwriter_flush_stat(int operation) 描述:用于统计预写日志write与sync的次数频率与数据量,以及xlog文件的信息。 返回值类型:record 表16 gs_walwriter_flush_stat参数说明 参数类型 参数名 类型 描述 输入参数 operation int -1:关闭统计开关(默认状态为关闭)。 0:打开统计开关。 1:查询统计信息。 2:重置统计信息。 输出参数 write_times uint64 Xlog调用write接口的次数。 输出参数 sync_times uint64 Xlog调用sync接口次数。 输出参数 total_xlog_sync_bytes uint64 Backend线程请求写入xlog总量统计值。 输出参数 total_actual_xlog_sync_bytes uint64 调用sync接口实际刷盘的xlog总量统计值。 输出参数 avg_write_bytes uint32 每次调用XLogWrite接口请求写的xlog量。 输出参数 avg_actual_write_bytes uint32 实际每次调用write接口写的xlog量。 输出参数 avg_sync_bytes uint32 平均每次请求sync的xlog量。 输出参数 avg_actual_sync_bytes uint32 实际每次调用sync刷盘xlog量。 输出参数 total_write_time uint64 调用write操作总时间统计(单位:us)。 输出参数 total_sync_time uint64 调用sync操作总时间统计(单位:us)。 输出参数 avg_write_time uint32 每次调用write接口平均时间(单位:us)。 输出参数 avg_sync_time uint32 每次调用sync接口平均时间(单位:us)。 输出参数 curr_init_xlog_segno uint64 当前最新创建的xlog段文件编号。 输出参数 curr_open_xlog_segno uint64 当前正在写的xlog段文件编号。 输出参数 last_reset_time text 上一次重置统计信息的时间。 输出参数 curr_time text 当前时间。 gs_catalog_attribute_records() 描述:对于指定的系统表oid,返回该系统表对应的各个字段的定义。仅支持oid小于10000的普通系统表(不支持索引、toast表等)。 参数:系统表oid 返回值类型:record gs_comm_proxy_thread_status() 描述:用于在数据库实例配置用户态网络的场景下,代理通信库comm_proxy收发数据包统计。 参数:nan 返回值类型:record 此函数的查询仅在集中式环境开始部署用户态网络,且comm_proxy_attr参数中enable_dfx配置为true的条件下显示具体信息。其他场景报错不支持查询。 pg_ls_tmpdir() 描述:返回默认表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。 参数:nan 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 pg_ls_tmpdir(oid) 描述:返回指定表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。 参数:oid 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输入参数 oid oid 表空间id。 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 pg_ls_waldir() 描述:返回预写日志(WAL)目录中每个文件的名称、大小和最后修改时间。 参数:nan 返回值类型:record 备注:必须是系统管理员或者监控管理员才能执行此函数。 参数类型 参数名 类型 描述 输出参数 name text 文件名称。 输出参数 size int8 文件大小(单位:byte)。 输出参数 modification timestamptz 文件最后修改时间。 gs_write_term_log(void) 描述:写入一条日志记录DN节点当前的term值。备DN节点返回false,主DN节点写入成功后返回true。 返回值类型:Boolean gs_stat_space(bool init) 描述:用于查询UStore中做Insert操作时拓展页面的状态。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 init bool 是否重置已统计的数据。 输出参数 access_func int8 relation_get_buffer_for_utuple接口访问总次数。 输出参数 cache_blk int8 relation_get_buffer_for_utuple获取缓存次数。 输出参数 cache_succ int8 relation_get_buffer_for_utuple获取缓存成功次数。 输出参数 nblk_first int8 relation_get_buffer_for_utuple中第一次获取nblocks-1次数。 输出参数 nblk_first_succ int8 relation_get_buffer_for_utuple中第一次获取nblocks-1成功次数。 输出参数 nblk_second int8 relation_get_buffer_for_utuple中第二次获取nblocks-1次数。 输出参数 nblk_second_succ int8 relation_get_buffer_for_utuple中第二次获取nblocks-1成功次数。 输出参数 fsm_first int8 第一次访问FSM次数。 输出参数 fsm_first_success int8 第一次访问FSM成功次数。 输出参数 fsm_rewrite int8 FSM回写次数。 输出参数 fsm_second int8 第二次访问FSM次数。 输出参数 fsm_second_sucess int8 第二次访问FSM成功次数。 输出参数 prune_count int8 relation_get_buffer_for_utuple中Prune次数。 输出参数 prune_space int8 relation_get_buffer_for_utuple中Prune总空间。 输出参数 coprune_count int8 联合清理执行次数。 输出参数 coprune_scan_blocks int8 联合清理扫描总页数。 输出参数 coprune_prune_count int8 联合清理Prune次数。 输出参数 coprune_prune_space int8 联合清理Prune总空间。 输出参数 con_extend_count int8 并发扩页数量。 输出参数 con_extend_time int8 并发扩页总时间。 输出参数 single_extend_time int8 单一扩页次数。 示例: gaussdb=# select * from gs_stat_space(false); access_func | cache_blk | cache_succ | nblk_first | nblk_first_succ | nblk_sencond | nblk_sencond_succ | fsm_first | fsm_first_success | fsm_rewrite | fsm_ second | fsm_second_success | prune_count | prune_space | coprune_count | coprune_scan_blocks | coprune_prune_count | coprune_prune_space | con_extend_count | con_extend_time | single_extend_count -------------+-----------+------------+------------+-----------------+--------------+-------------------+-----------+-------------------+-------------+----- -------+--------------------+-------------+-------------+---------------+---------------------+---------------------+---------------------+----------------- -+-----------------+--------------------- 10082397 | 10082397 | 10082235 | 88 | 78 | 47021 | 47021 | 162 | 74 | 360996 | 360996 | 270948 | 6711 | 0 | 45497 | 222619 | 0 | 0 | 3675 | 25542884 | 26791 (1 row) 备注:请重点关注cache_succ此值较小说明系统缓存失效,prune_space 此值较小表示UStore数据页页面清理机制可能存在问题,con_extend_time此值过高可能表明UStore并发拓页时耗时较高。 gs_index_dump_read(int8 reset, text out_type) 描述:用于查询索引获取新页面时在循环队列中产生的buffer read信息和索引页面相同key从左到右遍历叶子页面的buffer read信息。 返回值类型:record 参数类型 参数名 类型 描述 输入参数 reset int8 0:将统计信息reset为初始值0,重新开始统计。 1:直接show出当前的统计信息。 输入参数 out_type text urq:输出循环队列的统计信息。 ubtree:输出索引页的统计信息。 all:循环队列和索引页的统计信息全部输出。 输出参数 relfilenode oid 统计到的最大buffer read值对应的索引relfilenode。 输出参数 max_count int8 最大buffer read值。 输出参数 ave_count int8 平均buffer read值。 该接口当前仅支持USTORE索引表。 该接口执行时,先reset清理、将记录全部置为0。再进行查询,直到下次统计到信息值之前,查询记录会一直为0。查询示例如下: gaussdb=# select * from gs_index_dump_read(0, 'all'); relfilenode | max_count | ave_count --------------+-------------+------------- | | (1 row) gaussdb=# select * from gs_index_dump_read(1, 'all'); relfilenode | max_count | ave_count --------------+-------------+------------- 0 | 0 | 0 0 | 0 | 0 (2 rows) gs_redo_upage(directory_path text, backup_path text, blocknum bigint, relation_type text, xlog_path text, lsn text) 描述:用于将备份的特定UStore数据页面重放到指定LSN,并在重放期间校验页面,若检测到页面受损或页面记录受损则告警受损信息,并在重放后落盘页面,返回落盘路径、页面LSN以及受损信息,否则重放至指定LSN并落盘页面后返回,必须是系统管理员或运维管理员才能执行此函数。 返回值类型:record 参数类型 参数 类型 描述 输入参数 directory_path text 备份文件所在目录。 输入参数 backup_path text 备份表文件的相对路径,与备份文件所在目录拼成表文件的完整路径,例如,base/15635/12488,若备份文件不存在,传入null。 输入参数 blocknum bigint 0~MaxBlockNumber:对应页面的块号。 输入参数 relation_type text uheap(Ustore数据页)。 ubtree(Ustore索引页)。 indexurq(Urq页面)。 undo_record(Undo record页面)。 undo_slot(Transaction slot页面)。 输入参数 xlog_path text 归档日志目录的绝对路径。 输入参数 lsn text lsn由两个16进制数(各32 bits)组成,中间通过"/"隔开,例如:2/962D1DF8。如果是0则重放到最新版本。 输出参数 output_filename text 文件的落盘路径与文件名。 输出参数 output_lsn text 最后一次页面重放的LSN。 输出参数 corruption_desc text 页面受损情况描述。 dbe_perf.get_full_sql_by_parent_id_and_timestamp(parent_id bigint, start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述:根据parent_id获取某个时间段内,执行某个存储过程的数据库级的全量SQL及其子语句的记录。只可在系统库中查询到结果,用户库中无法查询。 返回值类型:record 参数 类型 描述 parent_id bigint 指定需要检索的存储过程的调用语句的unique_sql_id。 start_timestamp timestamp with time zone SQL启动时间范围的开始时间点。 end_timestamp timestamp with time zone SQL启动时间范围的结束时间点。 示例: gaussdb=# CREATE TABLE test(a int,b int); CREATE TABLE gaussdb=# INSERT INTO test values(1,1); INSERT 0 1 gaussdb=# CREATE PROCEDURE mypro1() as num int; gaussdb$# begin gaussdb$# INSERT INTO test values(2,2); gaussdb$# DELETE FROM test where a = 2; gaussdb$# end; gaussdb$# / CREATE PROCEDURE # 打开参数,跟踪存储过程子语句。 gaussdb=# SET instr_unique_sql_track_type = 'all'; SET # 打开参数,dbe_perf.statement_history表生成全量语句记录。 gaussdb=# SET track_stmt_stat_level = 'L0,L0'; SET gaussdb=# CALL mypro1(); mypro1 -------- (1 row) gaussdb=# SET track_stmt_stat_level = 'off,L0'; SET gaussdb=# SET instr_unique_sql_track_type = 'top'; SET # 查询关键信息,作为函数参数使用。 gaussdb=# SELECT query,unique_query_id,start_time,finish_time FROM dbe_perf.statement_history; query | unique_query_id | start_time | finish_time --------------------------------------+-----------------+-------------------------------+------------------------------- set track_stmt_stat_level = 'L0,L0'; | 636388010 | 2023-06-02 17:40:49.176155+08 | 2023-06-02 17:40:49.176543+08 call mypro1(); | 536458473 | 2023-06-02 17:40:59.028144+08 | 2023-06-02 17:40:59.032027+08 delete from test where a = ? | 583323884 | 2023-06-02 17:40:59.029955+08 | 2023-06-02 17:40:59.031577+08 insert into test values(?,?) | 769279931 | 2023-06-02 17:40:59.029219+08 | 2023-06-02 17:40:59.029947+08 (4 rows) # 通过外层语句的unique_query_id,开始时间的起止时间作为参数,查询该时间段内,指定存储过程及其子语句的信息。 gaussdb=# SELECT query FROM dbe_perf.get_full_sql_by_parent_id_and_timestamp(536458473,'2023-06-02 17:40:59.028144+08','2023-06-02 17:40:59.032027+08'); query ------------------------------ call mypro1(); delete from test where a = ? insert into test values(?,?) (3 rows) gs_xlogdump_bylastlsn(last_lsn text, blocknum bigint, relation_type text) 描述:传入一个页面LSN以及块号,解析LSN对应的WAL日志,并获取对应块号的last LSN继续解析,直到last LSN为0或者更老版本的WAL日志已被复用回收,并将解析后的日志落盘到指定路径,必须是系统管理员或运维管理员才能执行此函数。本系统函数不支持备机调用。 返回值类型:text 参数类型 参数名 类型 描述 输入参数 last_lsn text 解析指定页面的LSN,基于十六进制表示,如12BA/32CDEDDD,LSN可通过页面解析工具(gs_parse_page_bypath等)获取。 输入参数 blocknum bigint 指定页面的逻辑块号。 参数范围:-1~MaxBlockNumber。 块号指定为-1时表示从WAL日志中获取默认块号。 输入参数 relation_type text 指定解析页面的类型。 参数范围:uheap、ubtree、heap、btree、undo_record、undo_slot。 输出参数 output_filepath text WAL日志解析结果的落盘路径。 示例: # 获取页面LSN信息 # 函数调用前请依据参数说明中的内容确保文件路径真实存在 gaussdb=# select * from gs_parse_page_bypath('base/15833/16768', 0, 'uheap', false); output_filepath --------------------------------------------------------------- /data1/database/cluster/primary/data/1663_15833_16768_0.page (1 row) gaussdb=# select * from gs_xlogdump_bylastlsn('0/4593570', -1, 'uheap'); output_filepath ------------------------------------------------------------------- /data1/database/cluster/primary/data/pg_log/dump/4593570_-1.xlog (1 row) gaussdb=# select * from gs_xlogdump_bylastlsn('0/4593570', 0, 'ubtree'); ERROR: The input lsn 0/4593570 related xlog is not ubtree. 父主题: 系统管理函数
  • 双数据库实例容灾查询函数 gs_get_local_barrier_status() 描述:两地三中心跨Region容灾特性开启后,主数据库实例和灾备数据库实例进行日志同步,通过barrier日志在主数据库实例的落盘,在灾备数据库实例的回放来确定主数据库实例归档日志进度与灾备数据库实例日志回放进度。gs_get_local_barrier_status用于查询灾备数据库实例每个节点当前的日志回放情况。 返回值类型:text barrier_id:灾备数据库实例某节点当前回放到的最新barrier ID。 barrier_lsn:灾备数据库实例某节点当前回放到的最新barrier ID的Log Sequence Number ( LSN )。 archive_lsn:灾备数据库实例某节点当前已获得归档日志的位置,该参数当前未生效。 flush_lsn:灾备数据库实例某节点当前已完成刷盘日志位置。 gs_hadr_has_barrier_creator() 描述:两地三中心跨Region容灾特性开启后,查询当前节点是否存在barrier_creator线程,存在返回true(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_hadr_in_recovery() 描述:两地三中心跨Region容灾特性开启后,查询当前节点是否处于基于目标barrier的日志恢复中,还在恢复中返回true。只有完成日志恢复,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_streaming_dr_get_switchover_barrier() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询灾备数据库实例的DN实例是否已接收到switchover barrier日志并完成回放,已完成返回true。灾备数据库实例只有在所有DN实例都完成switchover barrier日志回放,才会启动switchover流程中的灾备数据库实例升为生产数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在流式容灾解决方案中容灾数据库实例启动计划内switchover时使用。 gs_streaming_dr_service_truncation_check() 描述:两地三中心跨Region容灾-基于流式复制的解决方案中,查询主数据库实例的DN实例是否已完成switchover barrier日志发送,已完成返回true。只有完成日志发送,才会启动switchover流程中的生产数据库实例降为灾备数据库实例的步骤(需要系统管理员角色)。 返回值类型:Boolean 备注:该函数只有在容灾数据库实例启动计划内switchover时使用。 gs_hadr_local_rto_and_rpo_stat() 描述:显示流式容灾的主数据库实例和备数据库实例日志流控信息(只可在主数据库实例的主DN使用,备DN以及备数据库实例均上不可获取到统计信息)。 返回值类型:record,具体各个字段的类型和含义如表1所示。 表1 gs_hadr_local_rto_and_rpo_stat参数说明 参数 类型 描述 hadr_sender_node_name text 节点的名称,包含主数据库实例和备数据库实例首备。 hadr_receiver_node_name text 备数据库实例首备名称。 source_ip text 主数据库实例主DN IP地址。 source_port int 主数据库实例主DN通信端口。 dest_ip text 备数据库实例首备DN IP地址。 dest_port int 备数据库实例首备DN通信端口。 current_rto int 流控的信息,当前主备数据库实例的日志rto时间(单位:秒)。 target_rto int 流控的信息,目标主备数据库实例间的rto时间(单位:秒)。 current_rpo int 流控的信息,当前主备数据库实例的日志rpo时间(单位:秒)。 target_rpo int 流控的信息,目标主备数据库实例间的rpo时间(单位:秒)。 rto_sleep_time int RTO流控信息,为了达到目标rto,预期主机walsender所需要的睡眠时间(单位:微秒)。 rpo_sleep_time int RPO流控信息,为了达到目标rpo,预期主机xlogInsert所需要的睡眠时间(单位:微秒)。 gs_hadr_remote_rto_and_rpo_stat() 描述:显示流式容灾其它非本地数据分片的主数据库实例和备数据库实例日志流控信,集中式部署场景不支持该函数。 父主题: 系统管理函数
  • 注意事项 服务监管状态未完成的人工服务类、License类、SaaS类、应用编排类商品每账号每自然年共有10次退订机会。如果退款申请被驳回,则不计入退订总数。 订单退订申请提交后,在商家待审核状态,请勿提交开票申请,如在退订待审核状态申请开票,将导致退订失败。 退订申请待商家审核同意退订后,订单将会在3个小时内同步最新退订状态,完成退订后金额将退还至华为云账号的账户中。 如商品已发货在途,用户不可发起“未收货退订”,需华为云确认后才可申请退订。
  • 响应参数 表2 状态码 状态码 描述 200 请求成功。 400 请求错误。 状态码:200 表3 响应Body参数 参数 参数类型 描述 access_token String 授权服务器返回给第三方应用的访问令牌。 token_type String 访问令牌类型。固定值:Bearer。 expires_in Long 访问令牌的有效期,以秒为单位。 scope String 授权范围。 refresh_token String 刷新令牌。 状态码:400 表4 响应Body参数 参数 参数类型 描述 error String 错误类型。 error_description String 错误描述。 响应示例 状态码:200 请求成功。 { "access_token" : "******", "token_type" : "Bearer", "expires_in" : 7200, "scope" : "get_user_info", "refresh_token" : "******" } 状态码:400 请求错误。 { "error" : "invalid_grant", "error_description" : "Invalid refresh token" }
  • 请求参数 表1 FormUrlEncoded参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 client_secret 是 String 应用密钥,注册应用后,分配的ClientSecret。 grant_type 是 String 授权类型,固定值:refresh_token。 refresh_token 是 String 刷新令牌,获取Access Token接口中返回。 请求示例 POST {domain_name}/api/v1/oauth2/token Content-Type: application/x-www-form-urlencoded client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...& client_secret=******...& refresh_token=******...& grant_type=refresh_token
  • 登录须知 开天aPaaS 企业工作台登录访问提供三种类型: 浏览器(推荐chrome)、PC客户端和移动端。 SaaS应用可以是轻应用(H5)或基于WEB架构应用,这些SaaS应用都经过oAuth或者CAS协议改造。 以oAuth2.0协议应用为例,企业用户首先通过用户名及密码登录 企业工作台 ,成功登录后,用户在企业工作台中点击某个SAAS应用, 企业工作台获取认证中心地址,并查询应用的回调址,并发起认证授权申请,回调成功后,SAAS应用获取Code及租户的ID,通过API获取accessToken及用户信息。 父主题: 联营账号基于开天aPaaS企业工作台登录
  • 登录场景:accesstoken续期 用户登录获得的access_token有效期默认为2小时,refresh_token刷新令牌有效期默认为30天,在用户持续访问应用的情况下,服务端应提供access_token的续期功能。 续期功能内部调用时序图: 接口URL请参考联营能力开放接口的刷新Access Token,示例URL如下: {domain_name}/api/v1/oauth2/token Content-Type:application/x-www-form-urlencoded&client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...&client_secret=******...&refresh_token=******...&grant_type=refresh_token 父主题: 联营账号基于WEB登录
  • 请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下: Method Request-URI HTTP-Version CRLF Method:表示请求方法(所有方法全为大写),各个方法的解释如下: GET:请求获取Request-URI所标识的资源。 POST:在Request-URI所标识的资源后附加新的数据。 PUT:请求服务器存储一个资源,并用Request-URI作为其标识。 DELETE:请求服务器删除Request-URI所标识的资源。 Request-URI:是一个统一资源标识符。 可以在URI后面用‘?’和‘&’添加不同的查询条件组合。URI中“{}”中包含的内容为URI的参数,其中“?”之前的部分是路径参数,之后的部分是查询参数。HTTP-Version:表示请求的HTTP协议版本。 CRLF:表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
  • 使用方法 华为云API符合RESTful API设计理论。 REST从资源的角度观察整个网络,分布在各处的资源由URI(Uniform Resource Identifier)确定,客户端的应用通过URL(Unified Resource Locator)获取资源。 URL的一般格式为:https://Endpoint/uri。 URL中的参数说明如下表所示。 表1 URL中的参数说明 参数 描述 Endpoint Web服务入口点的URL,云商店的Endpoint为“mkt.myhuaweicloud.com”。 uri 资源路径,也即API访问路径。从具体接口的URI模块获取,例如“v1.0/{partner_id}/billing/bill-mgr/push-usage-data”。 其中,uri中的用户标识参数说明如下: 使用“partner_id”标识,表示该接口只能使用合作伙伴(商家)自身的AK/SK或者Token调用。 华为云接口采用HTTP传输协议,有如下约束条件: 请求/响应报文使用JSON报文UTF-8字符集编码。 媒体类型表示为Application/json。 可选参数在消息体中可以不编码。 接口请求参数和响应参数中时间格式统一为UTC时间(包括时区),格式为yyyyMMdd'T'HHmmss'Z'。 其中,HH范围是0~23,mm和ss范围是0~59。 父主题: 接口使用方法
  • 获取用户信息 GET /api/v1/oauth2/userinfo 请求参数 请求Header参数 参数 是否必选 参数类型 描述 Accept 是 String 接收响应类型,值:application/json。 Authorization 是 String 认证凭据,值:Bearer {access_token}。 响应参数 状态码: 200 响应Body参数 参数 参数类型 描述 id String 用户ID userName String 用户名 name String 姓名 email String 邮箱地址 mobile String 手机号 role String 角色 organizationName String 组织名称 accName String 登录名称 userId String 用户id organizationCode String 组织编码 loginName String 登录名称 projectName String 租户名称 tenant String 租户id 状态码: 401 响应Body参数 参数 参数类型 描述 error String 错误类型。 error_description String 错误描述。 请求示例 GET https://{domain_name}/api/v1/oauth2/userinfo Authorization: Bearer b7e1fda8-33ce-432c-9b97-7ff035fac... Accept: application/json 响应示例 状态码: 200 请求成功。 { "id" : "20201029190841785-CB37-8BD36B...", "name" : "test", "userName" : "test", "mobile" : "12345678901", "email" : "123@example.com" } 状态码: 401 认证失败。 { "error" : "unauthorized", "error_description" : "Full authentication is required to access this resource" } 状态码 状态码 描述 200 请求成功。 401 认证失败。
  • 认证登录获取授权码 GET /api/v1/oauth2/authorize Query参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 redirect_uri 是 String 回调地址,注册应用时填写的回调地址,表示应用接收 OneAccess 授权码的地址。 response_type 是 String 授权类型,固定值:code。 scope 否 String 授权范围 ,默认值:get_user_info。 state 否 String 应用的状态值。可用于防止CSRF攻击,成功授权后回调应用时会原样带回,应用用它校验认证请求与回调请求的对应关系。可以包含字母和数字。 请求参数 无 响应参数 状态码: 302 响应Header参数 参数 参数类型 描述 Location String 认证登录成功,重定向地址。例:https://example.com?code=z2D...&state=test 请求示例 GET https://{domain_name}/api/v1/oauth2/authorize?response_type=code&client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...&redirect_uri=https://example.com&scope=get_user_info&state=test 响应示例 无 状态码 状态码 描述 302 用户未登录,跳转用户登录页面; 用户已登录,携带授权码重定向到redirect_uri地址。例:https://example.com?code=z2D...&state=test。
共100000条