全网唯一标准王
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202111332968.0 (22)申请日 2021.11.11 (71)申请人 南京海量 安全技术有限公司 地址 211899 江苏省南京市江北新区浦云 路266号青云大厦A1楼6层6 01室 (72)发明人 周辉  (74)专利代理 机构 北京尚钺知识产权代理事务 所(普通合伙) 11723 代理人 王海荣 (51)Int.Cl. G06F 16/21(2019.01) H04L 9/40(2022.01) (54)发明名称 OpenGauss数据库中基于外部 数据封装器实 现dblink的方法、 装置及用途 (57)摘要 本发明属于数据库操作系统和计算机软件 技术领域, 尤其涉及一种OpenGauss数据库中基 于外部数据封装器实现dblink的方法、 装置及用 途。 利用本方法可使OpenGauss数据库获得类似 Oracle数据库的dblink功能, 通过创建远程数据 库的dblink, 使得OpenGauss可像访问本地数据 库一样随时访问远程数据库表中的数据, 而无需 在本地数据库中创建相应的外部表, 也无需关注 远程数据库表的表结构变化, 从而极大地方便了 OpenGauss对远程数据库表数据的访问, 提升了 其使用便利性和灵活性, 同时有效降低了数据库 维护成本 。 权利要求书3页 说明书5页 附图1页 CN 114116662 A 2022.03.01 CN 114116662 A 1.一种Op enGauss数据库中基于外部数据封装器实现dblink的方法, 其特征在于, 所述 方法包括下述 步骤: (1)dblink创建 创建语法: CREATE[PUBLIC]DATABASE  LINK link_name CONNECT TO user IDENTIFIED  BY password[fdw_name] USING(option'value'[,. ..]); 参数说明: link_name: database  link唯一标识, fdw_name: 指定dbl ink使用的外 部封装器, user/pas sword: 需要连接的远程数据库服 务器的用户名和密码, option'value'[,. ..]: 填充远程数据库服 务器的IP地址和端口号; 实现方式: 利用创建信息将远程服务器的IP地址和端口号信息预先填充到pg_catalog.pg_ foreign_server字典表中, 将远程服务器的用户名和密码信息预先填充到pg_catalog.pg_ user_mapping字典表中, 为外部数据封装器与远程数据库服务器交互提供相关的连接信 息; (2)dblink使用 dblink通过[schema_name.]t able_name@dlink_name语法访问远程数据库的表, 当解 析器识别到dbl ink语法后, a.通过link_name查询pg_catalog.pg_foreign_server和pg_catalog.pg_user_ mapping字典表获取 连接信息, 并连接 到远程服务器; b.通过[schema_name.]table_name信息从远程数据库服务器中获取到对应表的元数 据, 并将其写入pg_catalo g.pg_class和pg_catalog.pg_foreign_table字典表中, 以供外 部数据封装器使用。 2.根据权利要求1所述的OpenGauss数据库中实现dblink的方法, 其特征在于, 创建 dblink之后, 按照下述方式直接访问远程数据库的表: (1)本地数据库创建基于oracle_fdw的dbl ink CREATE DATABASE LINK ora_dblink CONNECT TO system IDENTIFIED  BY'password'USING oracle_fdw( dbserver'/ /172.16.10 3.104:1521/orcl' ); (2)当远程数据库存在tbl_test 表时, 本地数据库直接访问 SELECT*FROM tbl_test@ora_dbl ink。 3.根据权利要求1所述的OpenGauss数据库中实现dblink的方法, 其特征在于, 所述外 部数据封装器由分析器、 规划器和执 行器组成。 4.根据权利要求3所述的OpenGauss数据库中实现dblink的方法, 其特征在于, 所述外 部数据封装器的工作步骤如下: (1)分析器根据pg_catalog.pg_class和pg_catalog.pg_foreign_table字 典表中外部权 利 要 求 书 1/3 页 2 CN 114116662 A 2表的定义 来创建输入SQ L的查询树; (2)外部数据封装器与远程数据库服务器交互需要的连接信息预先存储在pg_ catalog.pg_foreign_server和pg_catalog.pg_user_mapping字典表中; 规划器根据pg_ catalog.pg_foreign_server和pg_catalog.pg_user_mapping字典表中存储的连接信息连 接到远程服务器; (3)当use_remote_estimate选项打开时, 规划器将执行EXPLAIN命令来估计每个计划 路径的成本; (4)规划器根据规划树创建纯文本SQ L语句; (5)执行器将纯文本SQ L语句发送到远程 服务器并接收结果。 5.根据权利要求4所述的Op enGauss数据库中实现dblink的方法, 其特征在于, 第(2)步 骤中pg_catalog.pg_foreign_server字典表中预先存储远程服务器的IP地址和端口号信 息; pg_catal og.pg_user_map ping字典表中预 先存储远程服务器的用户名和密码信息 。 6.根据权利要求1所述的OpenGauss数据库中实现dblink的方法, 其特征在于, 所述方 法包括下述 步骤: (1)dblink创建 创建语法: CREATE[PUBLIC]DATABASE  LINK link_name CONNECT TO user IDENTIFIED  BY password[fdw_name] USING(option'value'[,. ..]); 参数说明: link_name: database  link唯一标识, fdw_name: 指定dbl ink使用的外 部封装器, user/pas sword: 需要连接的远程数据库服 务器的用户名和密码, option'value'[,. ..]: 填充远程数据库服 务器的IP地址和端口号; 实现方式: 利用创建信息将远程服务器的IP地址和端口号信息预先填充到pg_catalog.pg_ foreign_server字典表中, 将远程服务器的用户名和密码信息预先填充到pg_catalog.pg_ user_mapping字典表中, 为外部数据封装器与远程数据库服务器交互提供相关的连接信 息; (2)dblink使用 a.语法阶段 修改语法文件, 使语法能够标识出dblink表, 并提供表名 信息及dblink名, 采用@符标 识: [schema_name.]table_name@dl ink_name; b.parser解析阶段 根据语法阶段提供的dlink_name, 查询pg_catalog.pg_foreign_server和pg_ catalog.pg_user_mapping字典表获取连接信息, 并连接到远程数据库服务器, 然后根据 [schema_name.]table_name信息, 从远程数据库服务器中获取到对应表的元数据, 并将其 写入pg_catalog.pg_class和pg_catalog.pg_foreign_table字典表中; 当远程数据库的表权 利 要 求 书 2/3 页 3 CN 114116662 A 3

.PDF文档 专利 OpenGauss数据库中基于外部数据封装器实现dblink的方法、装置及用途

文档预览
中文文档 10 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 OpenGauss数据库中基于外部数据封装器实现dblink的方法、装置及用途 第 1 页 专利 OpenGauss数据库中基于外部数据封装器实现dblink的方法、装置及用途 第 2 页 专利 OpenGauss数据库中基于外部数据封装器实现dblink的方法、装置及用途 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 20:57:29上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。