oracle创建及查询dblink

oracle创建及查询dblink ⼀、:
李博祥1、菜单创建
打开plsql,点击【File】-【New】-【Database link】,打开如下图所⽰窗⼝
填好各项信息后,点击【Apply】即可完成Database Link的创建。
2、sql语句创建
create public database link 链路名 connect to ⽤户 identified by ⼝令 using '连接字符串';
-- Drop existing database link
drop public database link dblink_name;
-- Create database link
create public database link dblink_name connect to SYSTEM using '192.168.1.73:1521/oracle';
-- 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;
以下是详细的补充:
database linke是建⽴⼀个数据库到另⼀个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作⼀种分布式数据库的⽤法。
database link是单向连接,既然它是⼀种对象,那⾃然可以在xxx_objects表中查询到相关的信息。建⽴database link前需要明确⼏个事情:
1、确认从建⽴⽅的server可以访问远程数据库。
2、需要在建⽴⽅的tnsnames中配置远程数据库连接串。
3、只有在服务端配置的连接才能在dblink中使⽤,如果仅是在客户端配置的连接是不能在dblink中使⽤,我这⾥就犯了这个错误,执⾏时就报错:
select * from t@dblinktest鼻咽
*
ERROR at line 1:
ORA-12154: TNS:could not resolve service name
很明显,相当于服务端未配置tnsname,因此不到远程数据库的service name配置。
建⽴过程:
1、建⽴⽅的服务端配置远程数据库的tnsname配置。
2、tnsping 远程数据库tnsnames配置名称,可以通。
3、sqlplus登录后执⾏:
SQL> create database link dblinktest connect to user identified by passwd using 'ceshi';
其中:中小学电教
dblinktest是database link的名称。
user是远程数据库的⽤户名。
passwd是远程数据库的密码。
ceshi是数据库服务端配置的tnsnames中名称。
4、执⾏:
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
卷积码OWNER          OBJECT_NAME
--------------- -------------------------
OPEN              DBLINKTEST
可以看到已经建⽴了这个database link。
5、执⾏:
SQL> select * from t@dblinktest;
克顿传媒ID
----------
2
3
4
小柳树和小枣树教学设计5
当然也可以执⾏insert语句:
SQL> insert into t@dblinktest values(1);
1 row created.
另外database link分为public和private的,默认是private,只有当前⽤户可⽤,如果是create public database link ...,则所有⽤户都可以使⽤这个名称的database link。
注意点:如果在DB1的oracle clinet上通过database links访问DB2的表,需要在DB1的服务器的tnsnames正确指向DB2。假设你的DB_LINK是想从DB1连接到DB2,你需要配置DB1机器上的tnsnames正确指向DB2。如果你确认DB1上的tnsnames中配置正确;那么再确认你正确的tnsnames被使⽤了,也就是说DB1机器上系统的环境变量指向哪个oracle的bin⽬录,使⽤的是不是你配置正确的那个tnsnames⽂件。两个tnsnames正确配置完成后就可以使⽤了。
⼆、查询⽅法:
1、执⾏下列语句。
select * from dba_db_links;
2、在PL/SQL中,在左边浏览器中点击database links就可以看到数据库链路了。

本文发布于:2024-09-23 18:33:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/137425.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   配置   远程   连接   查询   服务端   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议