Dblink--Database Link,顾名思义数据库链接,指网络无法直接连通数据库2的情况下通过数据库1访问数据库2的一种方法。以下操作都是在数据库1
连接步骤:
1、首先要有创建Database Link 的权限。可通过语句查看当前用户是否有权限:SELECT * FROM USER_SYS_PRIVS;如果没有权限,使用系统管理员用户登陆后给当前用户授权:GRANT CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK TO EAMTEST; 注意:PUBLIC 加了之后表示公用的,不加 PUBLIC 表示只有当前用户可用。
2、确保网络畅通,即数据库1所在的网络能够连接到数据库2。在数据库1所在电脑PING数据库2所在网络:PING 192.168.10.221(数据库2IP地址)。
3、建立TNS,创建Dblink,这里有两种方法:一种是直接修改tnsnames.ora文件,一个是在创建Dblink时直接加数据库连接。
方法一:修改tnsnames.ora文件,找到tnsnames.ora文件所在目录D:\oracle\app\oracle\product\11.2.0\server\network\ADMIN
编辑tnsnames.ora文件,在文件末尾追加数据库2的链接。
DB01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.221)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = EAM2)
)
)
保存后,可通过在CMD窗通过命令 TNSPING DB01来测试是否添加正确。 注意:此处添加最后拷贝原有的文件,修改后保存。编者这里因为 PORT = 1521 处出现换行,曾导致不能解析成功。
创建Dblink:CREATE PUBLIC DATABASE LINK DBLINK01 CONNECT TO EAMTEST IDENTIFIED BY EAMTEST USING 'DB01';
可通过语句查看:SELECT * FROM DBA_DB_LINKS;
方法二:
CREATE PUBLIC DATABASE LINK DBLINK01 CONNECT TO EAMTEST IDENTIFIED BY EAMTEST USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.221)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = EAM2)
)
)';
亦可通过语句查看:SELECT * FROM DBA_DB_LINKS;
4、使用Dblink:SELECT * FROM R5EVENTS@DBLINK01;
5、删除Dblink:DROP PUBLIC DATABASE LINK DBLINK01;(创建的时候有 PUBLIC ,删除的时候也要有 PUBLIC )