【发布时间】:2012-11-07 09:54:28
【问题描述】:
如何在两个 Oracle 实例之间创建数据库链接。假设 A 和 B 是两个实例。我想从实例 A 访问实例 B 中的数据。
【问题讨论】:
如何在两个 Oracle 实例之间创建数据库链接。假设 A 和 B 是两个实例。我想从实例 A 访问实例 B 中的数据。
【问题讨论】:
如果您想从实例 A 访问实例 B 中的数据。那么这是查询, 您可以编辑各自的凭据。
CREATE DATABASE LINK dblink_passport
CONNECT TO xxusernamexx IDENTIFIED BY xxpasswordxx
USING
'(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=xxipaddrxx / xxhostxx )
(PORT=xxportxx))
(CONNECT_DATA=
(SID=xxsidxx)))';
执行此查询后访问表
SELECT * FROM tablename@dblink_passport;
您可以执行任何操作DML、DDL、DQL
【讨论】:
举个简单的例子:
创建数据库链接_dblink_name_ 连接到_用户名_ 由_passwd_识别 使用“$_ORACLE_SID_”更多信息: http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm
【讨论】:
_username_ 的位置应该是您要链接到的架构,而_passwd_ 的位置应该是该架构中要使用的表名。哪个是对的? 2)假设您的示例是正确的,您在哪里指定要连接的数据库? (我查看了那个 Oracle 页面,它一清二楚)
创建数据库链接
CREATE DATABASE LINK dblinkname
CONNECT TO $usename
IDENTIFIED BY $password
USING '$sid';
(注意:上面的单引号之间传递的是sid。)
上述数据库链接的示例查询
select * from tableA@dblinkname;
insert into tableA(select * from tableA@dblinkname);
【讨论】:
创建DB链接后,如果两个实例存在于两个不同的数据库中,那么你需要在A机器上设置一个TNS入口,以便它解析B。check out here
【讨论】:
有几种方法可以创建数据库链接:
第一步:
将目标数据库服务详细信息添加到源的 tns 名称中:
<addressname> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = <hostname of target db>)(Port = <port of target db listener>))
)
(CONNECT_DATA =
(SERVICE_NAME = <service name of target db>)
)
)
第 2 步:
数据库链接可以是公共的或私有的。公共数据库链接是任何用户都可以使用的链接。私有数据库链接只能由数据库链接的所有者使用。
以下是创建私有和公共数据库链接的命令:
公共数据库链接
CREATE PUBLIC DATABASE LINK <dbklink name>
CONNECT TO <target db userschemaname>
IDENTIFIED BY <target db userschemapassword>
USING '<addressname defined in tns>';
私人数据库链接
连接到我们需要私有数据库链接的用户架构:
CREATE DATABASE LINK <dbklink name>
CONNECT TO <target db userschemaname>
IDENTIFIED BY <target db userschemapassword>
USING '<addressname defined in tns>';
CREATE DATABASE LINK dblink
CONNECT TO <target db userschemaname> IDENTIFIED BY <target db userschemapassword>
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname of target db>)(PORT=port of target db listener))
(CONNECT_DATA=(SERVICE_NAME=<service name of target db>))
)';
cdb配置步骤相同
【讨论】:
创建数据库链接 NAME 连接到用户名 由 PASSWORD 识别 使用“SID”;
指定 SHARED 以使用单个网络连接来创建可以在多个用户之间共享的公共数据库链接。如果指定 SHARED,则还必须指定 dblink_authentication 子句。
指定 PUBLIC 以创建可供所有用户使用的公共数据库链接。如果省略此子句,则数据库链接是私有的并且仅供您使用。
【讨论】: