用途
dblink主要用于不同服务器数据库之间的关联操作。比如:想在A服务器之间从B服务器某表中取得数据,更新到A服务器某表中。
这样就可以使用dblink来操作,在查询A库表名加“@dblink”就行了,这个dblink是属于A库。
创建
代码语言:javascript复制-- Create database link
create public database link UTMS_TEST_81
connect to UTMS identified by Vi_ts#81
using '(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.200.136.207)(PORT = 17632)))(CONNECT_DATA = (SERVICE_NAME = UTMS) ) )';
关键字 | 中文含义 |
---|---|
UTMS_TEST_81 | dblink名称 |
UTMS | 实例名 |
Vi_ts#81 | 密码 |
10.200.136.201 | 目标服务器IP |
17632 | 目标服务器端口 |
删除
代码语言:javascript复制-- Drop existing database link
drop public database link UTMS_TEST_81;
测试
SQL均在A服务器窗口执行
代码语言:javascript复制--查看A服务器实例名称,主机名,版本号
SELECT instance_name,host_name,version FROM v$instance;
代码语言:javascript复制--查看dblink服务器实例名称,主机名,版本号
SELECT instance_name,host_name,version FROM v$instance@UTMS_TEST_81;
验证
验证从dblink服务器将用户密码更新到A服务器用户密码中
代码语言:javascript复制--A服务器用户密码
select pn_password from person where id = 'w06549';
代码语言:javascript复制--dblink服务器用户密码
select pn_password from person@UTMS_TEST_81 where id = 'w06549';
代码语言:javascript复制--执行更新语句,将dblink用户密码更新到A服务器用户密码
update person set pn_password = (select pn_password from person@UTMS_TEST_81 where id = 'w06549') where id = 'w06549';
代码语言:javascript复制--再次查看A服务器用户密码
select pn_password from person where id = 'w06549';
end