阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle dblink配置

230次阅读
没有评论

共计 2583 个字符,预计需要花费 7 分钟才能阅读完成。

一. dBlink 简述

dblink(Database Link) 数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的 dblink, 通过 dblink 本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

二. 创建 dblink

创建 dblink 一般有两种方式,不过在创建 dblink 之前用户必须有创建 dblink 的权限。想知道有关 dblink 的权限,以 sys 用户登录到本地数据库:

1 select * from user_sys_privs t
2 where t.privilege like upper(‘%link%’);

查询结果集:

Oracle dblink 配置

  可以看出在数据库中 dblink 有三种权限:

1.CREATE DATABASE LINK(所创建的 dblink 只能是创建者能使用,别的用户使用不了),

2.CREATE PUBLIC DATABASE LINK(public 表示所创建的 dblink 所有用户都可以使用),

3.DROP PUBLIC DATABASE LINK。(删除 dblink)
在 sys 用户下,把 CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASELINK 权限授予给你的用户:

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;

    然后以 scott 用户登录本地数据库

2.1 已经配置本地服务

1 create public database link link_name
2 connect to username identified by password
3 using ‘connect_string’;

注:link_name 是连接名字,可以自定义;

username 是登陆数据库的用户名;

password 是登陆数据库的用户密码;

connect_string 是数据库连接字符串。

数据库连接字符串是当前客户端数据库中 TNSNAMES.ORA 文件里定义的别名名称. 可以用 NET8 EASY CONFIG 或者直接修改 TNSNAMES.ORA 里定义.

2.2 直接建立链接

 1 create database link link_name
 2 connect to username identified by password
 3 using ‘ (DESCRIPTION =
 4    (ADDRESS_LIST =
 5      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.13.178)(PORT = 1521))
 6    )
 7    (CONNECT_DATA = 
 8      (SERVICE_NAME = rzzqnew)
 9    )
10  )’;

注:host= 数据库的 ip 地址;

service_name= 数据库的 ssid。

2.3 两种方法比较

其实两种方法配置 dblink 是差不多的,第二种方法比较不受本地服务的影响。
注意: 假如创建全局 dblink,则必须使用 systm 或 sys 用户,在 database 前加 public。

三. dblink 常用命令

3.1 dblink 查询

查看所有的数据库链接,进入系统管理员 SQL> 操作符下,运行命令:

1 SQL>select owner,object_name from dba_objects
2 where object_type=’DATABASE LINK’;
3 或者
4 select * from dba_db_links;

3.2  dblink 删除

DROP PUBLIC DATABASE LINK link_name;

3.3  dblink 使用

SELECT……FROM 表名 @数据库链接名;

查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名 @dblink 服务器”而已。

四.  配置实例

4.1 机器准备

Machine 1:

Ip:10.10.13.178

Oracle:rzzqnew

Machine 2:

Ip:10.10.13.35

ORACLE:headdb

4.2 创建 db link

登陆 headdb 数据库,账号 kingstar 密码 kingstar

 1 create  database  link  dblinktest
 2 connect  to  kingstar  identified  by  kingstar
 3 using  ‘  (DESCRIPTION =
 4                (ADDRESS_LIST =
 5                  (ADDRESS = (PROTOCOL = TCP)  (HOST = 10.10.13.178)
 6                  (PORT = 1521))
 7                )
 8                (CONNECT_DATA =
 9                  (SERVICE_NAME = rzzqnew)
10                )
11              ) ‘;

注意:1. 创建 dblink 时候,主要看本地的 global_name 是否为 true,如果本地的 global_name =true,那么你创建的 dblink 必须和远端数据         库的 global_name 一样,否则创建了 dblink 也不能查到数据;

2. 上面这段代码,如果打错,使用 dblink 时会报错。

 这里我们创建的 dblink  名字是 dblinktest,与其不一样,所以可以做下面修改。

1 alter  system  set  global_names=false;

4.3 使用 dblink

执行:

1  select * from dual@dblinktest;

结果如下:

Oracle dblink 配置

通过这种方法即可实现在 headdb 数据库上使用 rzzqnew 数据库下的内容。

注:其实两种方法配置 dblink 是差不多的,第二种方法比较不受本地服务的影响;
  假如创建全局 dblink,则必须使用 systm 或 sys 用户,在 database 前加 public。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-10/135885.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2583字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中