在数据库里,DB Link(数据库链接) 的作用是让你在 一个数据库实例中,直接访问另一个数据库实例中的表/视图。不同数据库产品的做法不一样,下面按常见数据库分别说明。
CREATE DATABASE LINK dblink_to_b
CONNECT TO remote_user IDENTIFIED BY "password"
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=orclb))
)';
SELECT * FROM emp@dblink_to_b;
MySQL 没有原生 DB Link,常用替代方案:
CREATE TABLE remote_emp (
id INT,
name VARCHAR(50)
) ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@192.168.1.2:3306/db_b/emp';
然后:
SELECT * FROM remote_emp;
⚠ 限制:
CREATE EXTENSION postgres_fdw;
CREATE SERVER remote_pg
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.1.2', dbname 'db_b', port '5432');
CREATE USER MAPPING FOR local_user
SERVER remote_pg
OPTIONS (user 'remote_user', password 'pwd');
CREATE FOREIGN TABLE emp (
id int,
name text
) SERVER remote_pg
OPTIONS (schema_name 'public', table_name 'emp');
使用:
SELECT * FROM emp;
EXEC sp_addlinkedserver
@server='SRV_B',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='192.168.1.2';
EXEC sp_addlinkedsrvlogin
@rmtsrvname='SRV_B',
@useself='false',
@rmtuser='user',
@rmtpassword='pwd';
SELECT * FROM SRV_B.db_b.dbo.emp;
常用方式:
✅ 适合:
❌ 不适合:
如果你能告诉我:
我可以给你 更精确的 DB Link 配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。