5 oracle
我在不同的机器上有 2 个 oracle 数据库(db1 和 db2),假设:192.168.1.1 上的 db1 和 192.168.1.2 上的 db2
我想要实现的是在 db1 上创建一个链接,这将允许我在 db2 上执行查询。
这是我在 db1 上创建链接的方式:
create public database link db2Link connect to db2username identified by db2password
using 'db2';
Run Code Online (Sandbox Code Playgroud)
我认为如果这两个基础都在同一台机器上,这应该可以工作,但是当我想连接到不同机器上的数据库时,我该如何进行该链接?
谢谢最好的问候
小智 5
您可以通过 tnsnames.ora 定义连接字符串,然后引用别名
remotedb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = remotedb.fqdn.com)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = ORCL))
)
Run Code Online (Sandbox Code Playgroud)
然后创建一个引用该别名的 dblink:
CREATE DATABASE LINK remotedb
CONNECT TO SYSTEM IDENTIFIED BY <password>
USING 'remotedb';
Run Code Online (Sandbox Code Playgroud)
或促进相同的内联:
CREATE DATABASE LINK remotedb
CONNECT TO SYSTEM IDENTIFIED BY <password>
USING'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = remotedb.fqdn.com)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL)))';
Run Code Online (Sandbox Code Playgroud)
有关语法的详细信息,请查看http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_5005.htm
如果您想避免 DNS 解析,只需将 remotedb.fqdn.com 替换为 IP 地址即可。当然,您需要检查源是否可以启动到远程端口 1521 的 TCP 连接:
nc -zv remotedb.fqdn.com 1521
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49131 次 |
最近记录: |