Oracle建立DB-LINK
两台服务器。centos 6 安装oracle10G数据库
两台服务器
远程:IP:192.168.201.51,SID: orcl,用户名:test,密码:123456
本地:IP: 192.168.201.50,SID: jgyx,用户名:jgyx,密码:mosquito0
参数设置
1. 查看数据库global_name
执行select * from global_name;
远程数据库返回: ORCL.US.ORACLE.COM
本地数据库返回: JGYX.REGRESS.RDBMS.DEV.US.ORACLE.COM
2. 查看global_name参数
SQL>show parameterglobal_name;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
global_names boolean FALSE
该参数为TRUE时,本地连接的DBLINK的名称必须和远程的global_name一致.
3. 查看是否支持高级复制功能
查看v$option视图, Advanced replication为true则支持,否则不支持
select * from v$option t wheret.PARAMETER like 'Advanced replication%';
显示都是true。。。
建立方法
1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。
tnsnames.ora文件中添加信息如下:
jgyx_192.168.201.51 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.51)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
(SERVER = DEDICATED)
)
)
然后执行命令
create database link JGYX_DATAEXCH connect to TEST identified by xxxx using 'ORCL_192.168.0.18';
其中JGYX_DATAEXCH是你创建的dblink名字,TEST是远程数据库的实例名,TEST/xxxx是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库中dual表,sql语句如下所示
select * from dual@JGYX_DATAEXCH;
2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库
create public database link DATAEXCH
connect to TEST
identified by 123456 using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.51)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
(SERVER = DEDICATED)
)
)';