
一、KingbaseES Oracle 模式下KingbaseES oracle模式下跨库访问使用kdb_database_link1.kingbase.conf的 shared_preload_libraries 增加kdb_database_link重启数据生效 2.登录到库创建插件 create extension kdb_database_link ; create extension kingbase_fdw ; 3.创建dblink create public database link dblink_kes connect to userxxx identified by pwdxxxx using (DriverName KingbaseES V8R6 ODBC Driver , Host 59.200.xx.xx , Port 54321 , Dbname arcdata , Dbtype kingbase);访问异构数据库类似区别就是Dbtype类型不一样。二、KingbaseES Mysql模式下跨库访问mysql模式下无dblink只能使用mysql_fdwmysql_fdw模块提供了外部数据包装器mysql_fdw它可以被用来访问存储在外部KingbaseES服务器中的数据。使用CREATE EXTENSION来安装mysql_fdw扩展。使用CREATE SERVER创建一个外部服务器对象它用来表示你想连接的每一个远程数据库。指定除了user和password之外的连接信息作为该服务器对象的选项。使用CREATE USER MAPPING创建一个用户映射每一个用户映射都代表你想允许一个数据库用户访问一个外部服务器。指定远程用户名和口令作为用户映射的user和password选项。为每一个你想访问的远程表使用CREATE FOREIGN TABLE或者IMPORT FOREIGN SCHEMA创建一个外部表。外部表的列必须匹配被引用的远程表。但是如果你在外部表对象的选项中指定了正确的远程名称可以使用不同于远程表的表名和/或列名。CREATE EXTENSION mysql_fdw; CREATE SERVER foreign_server_3306 FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 192.168.56.203, port 3306); CREATE USER MAPPING FOR u1 SERVER foreign_server_3306 OPTIONS (username root, password mysql); create foreign table tab_test(id int, name text) server foreign_server_3306 options(dbname db,table_name tab_test);具体例子如下db1# CREATE SERVER foreign_server_3306 db1-# FOREIGN DATA WRAPPER mysql_fdw db1-# OPTIONS (host 192.168.56.203, port 3306); CREATE SERVER db1# db1# db1# CREATE USER MAPPING FOR u1 db1-# SERVER foreign_server_3306 db1-# OPTIONS (username root, password mysql); CREATE USER MAPPING db1# db1# db1# db1# db1# create foreign table tab_test(id int, name text) server foreign_server_3306 options(dbname db,table_name tab_test); CREATE FOREIGN TABLE db1# select * from tab_test; id | name ---------- 1 | a 2 | b (2 行记录) db1#