云服务器内容精选
-
DBE_PLDEBUGGER.next 执行存储过程中当前的sql,返回执行的下一条的行数和对应query,如表1所示。 表1 next返回值列表 名称 类型 描述 funcoid OUT oid 函数id。 funcname OUT text 函数名。 lineno OUT integer 当前调试运行的下一行行号。 query OUT text 当前调试的下一行函数源码。 父主题: DBE_PLDEBUGGER Schema
-
DBE_SQL_UTIL.enable_sql_patch enable_sql_patch是用于开启SQL PATCH的接口函数,返回执行是否成功,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.enable_sql_patch入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
-
DBE_SQL_UTIL.enable_remote_sql_patch enable_remote_sql_patch是用于指定CN开启SQL PATCH的接口函数,返回执行是否成功,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.enable_remote_sql_patch入参和返回值列表 参数 类型 描述 node_name IN text 目标节点名。 patch_name IN name PATCH名称。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
-
_PG_FOREIGN_DATA_WRAPPERS 显示外部数据封装器的信息,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_DATA_WRAPPERS字段 名称 类型 描述 oid oid 外部数据封装器的oid。 fdwowner oid 外部数据封装器的所有者的oid。 fdwoptions text[] 外部数据封装器指定选项,使用“keyword=value”格式的字符串。 foreign_data_wrapper_catalog information_schema.sql_identifier 外部封装器所在的数据库名称(永远为当前数据库)。 foreign_data_wrapper_name information_schema.sql_identifier 外部数据封装器名称。 authorization_identifier information_schema.sql_identifier 外部数据封装器所有者的角色名称。 foreign_data_wrapper_language information_schema.character_data 外部数据封装器的实现语言。 父主题: Information Schema
-
DBE_PLDEBUGGER.next 执行存储过程中当前的sql,返回执行的下一条的行数和对应query,如表1所示。 表1 next返回值列表 名称 类型 描述 funcoid OUT oid 函数id。 funcname OUT text 函数名。 lineno OUT integer 当前调试运行的下一行行号。 query OUT text 当前调试的下一行函数源码。 父主题: DBE_PLDEBUGGER Schema
-
DBE_PLDEBUGGER Schema DBE_PLDEBUGGER Schema下的系统函数用于调试存储过程,仅管理员有权限执行这些调试接口,但无修改和创建新函数的权限。目前支持的接口及其描述如下所示。 当在函数体中创建用户时,调用attach、next、continue、info_code、step、info_breakpoint、backtrace、finish中会返回密码的明文。因此不建议用户在函数体中创建用户。 仅支持在CN节点上调试存储过程,并且调试端和被调试端需连接在同一CN节点。 调试端和被调试端需连接在同一database,否则使用函数oid获取函数信息的接口将不可用。 用户在当前会话使用dbe_pldebugger.turn_on函数开启存储过程调试后,当前会话的所有PL/SQL类型存储过程将不能下推至DN节点。因此,请在调试结束后,及时使用dbe_pldebugger.turn_off函数关闭当前会话的存储过程。 不支持直接调试触发器,不支持EXECUTE DIRECT ON将语句下发至DN节点触发调试。 在使用dbe_pldebugger.turn_on函数开启存储过程调试前生成的预编译语句可能无法被调试。 dbe_pldebugger.error_*类型函数,只能在报错断住时才能使用。 当存储过程调试时,如果被调试的存储过程中涉及加锁的操作,请注意在调试端勿执行可能导致死锁的操作。 对应权限角色为gs_role_pldebugger,可以由管理员用户通过如下命令将debugger权限赋权给该用户。 GRANT gs_role_pldebugger to user; 需要有两个客户端连接数据库,一个客户端负责执行调试接口作为debug端,另一个客户端执行调试函数,控制server端存储过程执行。示例如下: 准备调试 通过PG_PROC,查找到待调试存储过程的oid,并执行DBE_PLDEBUGGER.turn_on(oid)。本客户端会作为server端使用。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 gaussdb=# CREATE OR REPLACE PROCEDURE test_debug ( IN x INT) AS BEGIN INSERT INTO t1 (a) VALUES (x); DELETE FROM t1 WHERE a = x; END; / CREATE PROCEDURE gaussdb=# SELECT OID FROM PG_PROC WHERE PRONAME='test_debug'; oid ------- 16389 (1 row) gaussdb=# SELECT * FROM DBE_PLDEBUGGER.turn_on(16389); nodename | port ----------+------ datanode | 0 (1 row) 开始调试 server端执行存储过程,会在存储过程内第一条SQL语句前hang住,等待debug端发送的调试消息。仅支持直接执行存储过程的调试,不支持通过trigger调用执行的存储过程调试。 1 gaussdb=# call test_debug(1); 再起一个客户端,作为debug端,通过turn_on返回的数据,调用DBE_PLDEBUGGER.attach关联到该存储过程上进行调试。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.attach('datanode',0); funcoid | funcname | lineno | query ---------+------------+--------+---------------------------------- 16389 | test_debug | 3 | INSERT INTO t1 (a) VALUES (x); (1 row) 在执行attach的客户端调试,执行下一条statement。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.next(); funcoid | funcname | lineno | query ---------+------------+--------+---------------------- 16389 | test_debug | 0 | [EXECUTION FINISHED] (1 row) 在执行attach的客户端调试,可以执行以下变量操作。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.info_locals(); --打印全部变量 varname | vartype | value | package_name | isconst ---------+---------+-------+--------------+--------- x | int4 | 1 | | f (1 row) gaussdb=# SELECT * FROM DBE_PLDEBUGGER.set_var('x', 2); --变量赋值 set_var --------- t (1 row) gaussdb=# SELECT * FROM DBE_PLDEBUGGER.print_var('x'); --打印单个变量 varname | vartype | value | package_name | isconst ---------+---------+-------+--------------+--------- x | int4 | 2 | | f (1 row) 直接执行完成当前正在调试的存储过程。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.continue(); funcoid | funcname | lineno | query ---------+------------+--------+---------------------- 16389 | test_debug | 0 | [EXECUTION FINISHED] (1 row) 当存储过程报错时,会出现以下提示,此时进入报错断住逻辑。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.continue(); funcoid | funcname | lineno | query ---------+------------+--------+------------------------------- 16389 | test_debug | 0 | [EXECUTION HAS ERROR OCCURRED!] (1 row) 此时进入报错断住逻辑,可以调用error_info_locals,error_backtrace,error_end,print_var接口查看信息,其他接口不能再使用,需要使用error_end结束当前报错断住。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.error_end(); funcoid | funcname | lineno | query ---------+------------+--------+------------------ 16389 | test_debug | 0 | [END HANG ERROR!] (1 row) 直接退出当前正在调试的存储过程(报错断住逻辑不可用),不执行尚未执行的语句。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.abort(); abort ------- t (1 row) client端查看代码信息并识别可以设置断点行号。 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.info_code(16389); lineno | query | canbreak --------+-----------------------------------------------------------+---------- | CREATE OR REPLACE PROCEDURE public.test_debug( IN x INT) | f 1 | AS DECLARE | f 2 | BEGIN | f 3 | INSERT INTO t1 (a) VALUES (x); | t 4 | DELETE FROM t1 WHERE a = x; | t 5 | END; | f 6 | / | f (7 rows) 设置断点。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.add_breakpoint(16389,4); breakpointno -------------- 0 (1 row) 查看断点信息。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.info_breakpoints(); breakpointno | funcoid | lineno | query | enable --------------+---------+--------+---------------------------------+-------- 0 | 16389 | 4 | DELETE FROM t1 WHERE a = x; | t (1 row) 执行至断点。 1 2 3 4 5 gaussdb=# SELECT * FROM DBE_PLDEBUGGER.continue(); funcoid | funcname | lineno | query ---------+------------+--------+--------------------------------- 16389 | test_debug | 4 | DELETE FROM t1 WHERE a = x; (1 row) 存储过程执行结束后,调试会自动退出,再进行调试需要重新attach关联。如果server端不需要继续调试,可执行turn_off关闭,或退出session。具体调试接口如表1所示。 表1 DBE_PLDEBUGGER 接口名称 描述 DBE_PLDEBUGGER.turn_on server端调用,标记存储过程可以调试,调用后执行该存储过程时会hang住等待调试信息。 DBE_PLDEBUGGER.turn_off server端调用,标记存储过程关闭调试。 DBE_PLDEBUGGER.local_debug_server_info server端调用,打印本session内所有已turn_on的存储过程。 DBE_PLDEBUGGER.attach debug端调用,关联到正在调试存储过程。 DBE_PLDEBUGGER.info_locals debug端调用,打印正在调试的存储过程中的变量当前值。 DBE_PLDEBUGGER.next debug端调用,单步执行。 DBE_PLDEBUGGER.continue debug端调用,继续执行,直到断点或存储过程结束。 DBE_PLDEBUGGER.abort debug端调用,停止调试,server端报错长跳转。 DBE_PLDEBUGGER.print_var debug端调用,打印正在调试的存储过程中指定的变量当前值。 DBE_PLDEBUGGER.info_code debug和server端都可以调用,打印指定存储过程的源语句和各行对应的行号。 DBE_PLDEBUGGER.step debug端调用,单步进入执行。 DBE_PLDEBUGGER.add_breakpoint debug端调用,新增断点。 DBE_PLDEBUGGER.delete_breakpoint debug端调用,删除断点。 DBE_PLDEBUGGER.info_breakpoints debug端调用,查看当前的所有断点。 DBE_PLDEBUGGER.backtrace debug端调用,查看当前的调用栈。 DBE_PLDEBUGGER.enable_breakpoint debug端调用,激活被禁用的断点。 DBE_PLDEBUGGER.disable_breakpoint debug端调用,禁用已激活的断点。 DBE_PLDEBUGGER.finish debug端调用,继续调试,直到断点或返回上一层调用栈。 DBE_PLDEBUGGER.set_var debug端调用,为变量进行赋值操作。 DBE_PLDEBUGGER.turn_on DBE_PLDEBUGGER.turn_off DBE_PLDEBUGGER.local_debug_server_info DBE_PLDEBUGGER.attach DBE_PLDEBUGGER.info_locals DBE_PLDEBUGGER.next DBE_PLDEBUGGER.continue DBE_PLDEBUGGER.abort DBE_PLDEBUGGER.print_var DBE_PLDEBUGGER.info_code DBE_PLDEBUGGER.step DBE_PLDEBUGGER.add_breakpoint DBE_PLDEBUGGER.delete_breakpoint DBE_PLDEBUGGER.info_breakpoints DBE_PLDEBUGGER.backtrace DBE_PLDEBUGGER.enable_breakpoint DBE_PLDEBUGGER.disable_breakpoint DBE_PLDEBUGGER.finish DBE_PLDEBUGGER.set_var DBE_PLDEBUGGER.backtrace DBE_PLDEBUGGER.error_end DBE_PLDEBUGGER.error_info_locals 父主题: Schema
-
DBE_PERF Schema DBE_PERF Schema内视图主要用来诊断性能问题,也是WDR Snapshot的数据来源。数据库安装后,默认只有初始用户和监控管理员具有模式dbe_perf的权限,有权查看该模式下的视图和函数。若是由老版本升级而来,为保持权限的前向兼容,模式dbe_perf的权限与老版本保持一致,当前版本禁止所有用户在该模式下创建操作符,已创建的操作符不影响使用。从OS、Instance、Memory等多个维度划分组织视图,并且符合如下命名规范: GLOBAL_开头的视图,代表从CN/DN请求数据,并将数据追加对外返回,不会处理数据。 SUMMARY_开头的视图,代表是将集群内的数据概述,多数情况下是返回CN/DN(有时只有CN的)的数据,会对数据进行加工和汇聚。 非这两者开头的视图,一般代表本地视图,不会向其它CN/DN请求数据。 OS Instance File Object Workload Session/Thread Transaction Query Cache/IO Comm Utility Lock Wait Events Configuration Operator Workload Manager Global Plancache RTO & RPO AI Watchdog Trace Function 废弃 父主题: Schema
-
_PG_USER_MAPPINGS 存储从本地用户到远程的映射,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_USER_MAPPINGS字段 名称 类型 描述 oid oid 从本地用户到远程的映射的oid。 umoptions text[] 用户映射指定选项,使用"keyword=value”格式的字符串。 umuser oid 被映射的本地用户的oid,如果用户映射是公共的则为0。 authorization_identifier information_schema.sql_identifier 本地用户角色名称。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在的数据库名称(永远是当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器名称。 srvowner information_schema.sql_identifier 外部服务器所有者。 父主题: Information Schema
-
DB4AI.CREATE_SNAPSHOT_INTERNAL CREATE_SNAPSHOT_INTERNAL是db4ai.create_snapshot函数的内置执行函数,如表1所示。函数存在信息校验,无法直接调用。 表1 DB4AI.CREATE_SNAPSHOT_INTERNAL入参和返回值列表 参数 类型 描述 s_id IN BIGINT 快照id。 i_schema IN NAME 快照存储的名字空间。 i_name IN NAME 快照名称。 i_commands IN TEXT[] 定义数据获取的SQL命令。 i_comment IN TEXT 快照描述。 i_owner IN NAME 快照拥有者。 父主题: DB4AI Schema
-
_PG_FOREIGN_TABLES 存储所有的定义在本数据库的外部表信息,如表1所示。只显示当前用户有权访问的外部表信息。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_TABLES字段 名称 类型 描述 foreign_table_catalog information_schema.sql_identifier 外部表所在的数据库名称(永远是当前数据库)。 foreign_table_schema name 外部表的schema名称。 foreign_table_name name 外部表的名称。 ftoptions text[] 外部表的可选项。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在的数据库名称(永远是当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器的名称。 authorization_identifier information_schema.sql_identifier 所有者的角色名称。 父主题: Information Schema
-
DBE_PLDEBUGGER.error_end server端因为存储过程报错断住,可以在debug端调用error_end结束报错断住流程,结束调试流程,返回结束报错断住,停止调试(限制报错断住时使用),如表1所示。 表1 error_end返回值列表 名称 类型 描述 funcoid OUT oid 函数id。 funcname OUT text 函数名。 lineno OUT integer 当前调试运行的下一行行号(固定值:0)。 query OUT text 结束报错断住,停止调试。 父主题: DBE_PLDEBUGGER Schema
-
DBE_SQL_UTIL.create_hint_sql_patch create_hint_sql_patch是用于创建调优SQL PATCH的接口函数,返回执行是否成功。本函数是原函数的重载函数,支持通过parent_unique_sql_id值限制hint patch的生效范围,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.create_hint_sql_patch重载函数入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 unique_sql_id IN bigint 查询全局唯一id。 parent_unique_sql_id IN bigint 标识外层SQL语句的全局唯一id,值为0时表示限制存储过程外语句SQL PATCH生效;非0值表示限制特定存储过程生效。 hint_string IN text Hint文本。 description IN text PATCH的备注,默认值为NULL。 enabled IN bool PATCH是否生效,默认值为true。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
-
DBE_PLDEBUGGER.add_breakpoint debug端调试过程中,调用add_breakpoint增加新的断点,如表1所示。如果返回-1则说明指定的断点不合法,请参见DBE_PLDEBUGGER.info_code的canbreak字段确定合适的断点位置。进入内层函数前,外层函数无断点,则不支持在内层函数执行时,给外层函数添加断点。 表1 add_breakpoint入参和返回值列表 名称 类型 描述 funcoid IN text 函数ID。 lineno IN integer 行号。 breakpointno OUT integer 断点编号。 父主题: DBE_PLDEBUGGER Schema
-
_PG_FOREIGN_SERVERS 显示外部服务器的信息,如表1所示。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_SERVERS字段 名称 类型 描述 oid oid 外部服务器的oid。 srvoptions text[] 外部服务器指定选项,使用“keyword=value”格式的字符串。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在database名称(永远为当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器名称。 foreign_data_wrapper_catalog information_schema.sql_identifier 外部数据封装器所在database名称(永远为当前数据库)。 foreign_data_wrapper_name information_schema.sql_identifier 外部数据封装器名称。 foreign_server_type information_schema.character_data 外部服务器的类型。 foreign_server_version information_schema.character_data 外部服务器的版本。 authorization_identifier information_schema.sql_identifier 外部服务器的所有者的角色名称。 父主题: Information Schema
-
DBE_SQL_UTIL Schema DBE_SQL_UTIL模式存储了用于管理SQL PATCH的工具,包括创建、删除、开启、禁用SQL PATCH等系统函数。普通用户只有usage权限,没有create、alter、drop、comment等权限。 DBE_SQL_UTIL.create_hint_sql_patch DBE_SQL_UTIL.create_abort_sql_patch DBE_SQL_UTIL.drop_sql_patch DBE_SQL_UTIL.enable_sql_patch DBE_SQL_UTIL.disable_sql_patch DBE_SQL_UTIL.show_sql_patch DBE_SQL_UTIL.create_hint_sql_patch DBE_SQL_UTIL.create_abort_sql_patch DBE_SQL_UTIL.create_remote_hint_sql_patch DBE_SQL_UTIL.create_remote_abort_sql_patch DBE_SQL_UTIL.drop_remote_sql_patch DBE_SQL_UTIL.enable_remote_sql_patch DBE_SQL_UTIL.disable_remote_sql_patch 父主题: Schema
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格