两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
创建可以采用两种方式:
1、已经配置本地服务
create public database
link ABC connect to system
identified by password using 'service-name'
创建public DBLINK 必须在DBA权限下。
CREATE [public] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
创建成功后,就可以这样的在本地查询remote db
select * from tablename@ABC
2、未配置本地服务
create database link ABC
connect to user identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = servicename)
)
)';
host=数据库的ip地址,service_name=数据库的ssid
创建同义词
Create public synonym name for tablename
A.
select * from tablename@ABC
B.
Create public synonym synonymname for tablename@ABC
C.
现在A可以这样写了
select * from synonmyname
Note:创建public 的synonym时也要在DBA权限下。。