
怎么通过database links
2个回答
展开全部
通过database links的方法具体如下:
假设DB1、DB2两个数据库,现在要在DB1中使用DB2的表,那么在DB1数据库中创建db link的命令如下:
一、创建database link
-- Create database link
create database link db_1
connect to db_2_user identified by "db_2_user_password"
using 'DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db_2_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_2_server)
)
)';
其中,
db_1是db link的名称;
db_2_user是DB2这台机器上源数据库的用户名;
db_2_user_password是密码;
db_2_ip是DB2数据库地址,
db_2_server是DB2数据库服务名。
这样就可以,如果要访问B数据库的test表,可以“表名@数据链接名”这样用,如:
select * from test@db_1;
二、使用
注意点:如果在DB1的oracle clinet上通过database links访问DB2的表,需要在DB1的服务器的tnsnames正确指向DB2。假设DB_LINK是想从DB1连接到DB2,需要配置DB1机器上的tnsnames正确指向DB2。如果确认DB1上的tnsnames中配置正确;那么再确认正确的tnsnames被使用了,也就是说DB1机器上系统的环境变量指向哪个oracle的bin目录,使用的是不是配置正确的那个tnsnames文件。两个tnsnames正确配置完成后就可以使用了。
假设DB1、DB2两个数据库,现在要在DB1中使用DB2的表,那么在DB1数据库中创建db link的命令如下:
一、创建database link
-- Create database link
create database link db_1
connect to db_2_user identified by "db_2_user_password"
using 'DEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = db_2_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db_2_server)
)
)';
其中,
db_1是db link的名称;
db_2_user是DB2这台机器上源数据库的用户名;
db_2_user_password是密码;
db_2_ip是DB2数据库地址,
db_2_server是DB2数据库服务名。
这样就可以,如果要访问B数据库的test表,可以“表名@数据链接名”这样用,如:
select * from test@db_1;
二、使用
注意点:如果在DB1的oracle clinet上通过database links访问DB2的表,需要在DB1的服务器的tnsnames正确指向DB2。假设DB_LINK是想从DB1连接到DB2,需要配置DB1机器上的tnsnames正确指向DB2。如果确认DB1上的tnsnames中配置正确;那么再确认正确的tnsnames被使用了,也就是说DB1机器上系统的环境变量指向哪个oracle的bin目录,使用的是不是配置正确的那个tnsnames文件。两个tnsnames正确配置完成后就可以使用了。
展开全部
Create database link dblinkName dblinkName connect to username identified by
password using ‘NSNName=
(
Address_List=
(
(Adress=(protocol=TCP)(host=RemoteServerName)(port=1521))
)
(Connect_Data=(services_Name))
)’
password using ‘NSNName=
(
Address_List=
(
(Adress=(protocol=TCP)(host=RemoteServerName)(port=1521))
)
(Connect_Data=(services_Name))
)’
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询