1 Database Link 的创建:

有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置:

BIWG_TEST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = biwg)
)
)

实例BIWG_TEST的账号为 WGODS 、 密码为WGODS。下面开始在本机上创建DB Links

方法1:

CREATE PUBLIC DATABASE LINK WGODS.ORACLE.COM 

CONNECT TO WGODS IDENTIFIED BY WGODS USING 'BIWG'

CREATE [PUBLIC] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '本地配置的数据的实例名';

[public]的意思是:public是全局db link,即该数据库上所有用户都能查询,要sys或者system用户来创建(当然有sysdba权限的用户也可以的);如果不使用public就是私有db link,只有创建该db link的用户能查询

查看连接是否成功

SELECT * FROM DUAL@WGODS.ORACLE.COM 

SELECT * FROM REF.TR_WGG_GDAREA_INFO@WGODS.ORACLE.COM 

方法2:可以不配置服务。

CREATE PUBLIC DATABASE LINK REMOTE_DEVE_HOST

CONNECT TO WGODS IDENTIFIED BY WGODS 

USING '(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = biwg)

)
)'

不建议使用这个实现。感觉没有上面方法来的方便

查看连接是否成功

SELECT * FROM DUAL@WGODS.ORACLE.COM 

SELECT * FROM REF.TR_WGG_GDAREA_INFO@WGODS.ORACLE.COM 

2 查看当前数据有哪些Database Link?

SELECT * FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'DATABASE LINK'

SELECT * FROM DBA_DB_LINKS;

3 如何返回数据库的GLOBAL_NAME?

SQL> SHOW PARAMETER GLOBAL_NAME;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

global_names boolean FALSESELECT * FROM GLOBAL_NAME

该参数为TRUE时,你在本地建立的DBLINK名称必须和远程的GLOBAL_NAME一致才行。

4 删除Database Link

DROP [PUBLIC] DATABASE LINK REMOTE_DEVE_HOST;

会报如下错误: ORA-02024: 未找到数据库连接

DROP PUBLIC DATABASE LINK REMOTE_DEVE_HOST;

正常执行删除Database Link。

5 设置GLOBAL_NAME值对Database Link的影响

SQL> ALTER SYSTEM SET GLOBAL_NAMES = TRUE;

System altered

CREATE PUBLIC DATABASE LINK REMOTE_DB

CONNECT TO WGODS IDENTIFIED BY WGODS USING 'BIWG'

SELECT * FROM DUAL@REMOTE_DB

此时报错:ORA-02085:数据库连接 XXXX 到 XXXX

SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;

System altered

修改参数值为FALSE后,查询就正常了、

6 在DB Link中执行查询会有些限制。你应该避免使用connect by, start with, 以及prior关键字。一些查询使用了这些关键字会很正常, 但是大部分查询会失败

7 如何查询

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

8 DB LINK的使用原则(工作中以及网上收集整理的,仅供参考)

8.1.生产尽量不要使用db link,虽然方便,但这样不利于数据库安全管理

8.2.在10g中,BLOB,CLOB在db link中是查不到的,含这种数据类型的,要配合建view使用

8.3.我们经常可以使用synonym来做一些配置,以提高易读性和安全性

8.4.被建立了db link的user,最好不要修改密码,若修改密码要重建db link

8.5.db link是单向的

8.6 数据库链接名,建议使用SID.SCHEMA的形式,这样方便有多个db link时的识别(建议,个人习惯,非强制性)

oracle Database Link的更多相关文章

  1. Oracle database link中查询会开启事务吗?

    关于oracle database link,使用database link相关的查询语句是否会开启事务呢?我们知道,在数据库中一个简单的SELECT查询语句不会产生事务(select for upd ...

  2. ora-01017 和oracle database link

    DB link ,创建完了后总是报密码错误.我感到奇怪.明明密码是对的.怎么可能错误呢. SQL> create public database link kk40 connect to khf ...

  3. Oracle DATABASE LINK(DBLINK)创建

    数据库全局名称可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 修改可以用以下语句来修改参数值: ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALS ...

  4. Oracle Database Link 连接数据库复制数据

    --1. 创建dblink连接 create database link mdm66 connect to lc019999 identified by aaaaaa using '10.24.12. ...

  5. Oracle Database Link 的创建和使用小见

    假设:需要从数据库db_a通过db_link连接到db_b查询数据库b的部分相关信息 前提条件: 数据库a账户需要有创建dblink的权限,如果没有可以使用dba账户赋权限 grant CREATE ...

  6. oracle Database link 创建

    http://www.cnblogs.com/yhason/p/3735319.html

  7. Oracle Database Links解析

    什么是Database Links呢? 首先我们阐述下它的作用:使用户可以通过一个数据库访问到另外一个远程数据库. 那么Database Link是存储着远程数据库的连接信息. 如下图所示: 用户Sc ...

  8. Oracle数据库如何创建DATABASE LINK?

    Oracle数据库如何创建DATABASE LINK? 2011-08-09 14:54 taowei20061122 CSDN博客  http://blog.csdn.net/taowei20061 ...

  9. Oracle创建Database Link

    一菜单方式: 打开plsql,点击[File]-[New]-[Database link],打开如下图所示窗口 填好各项信息后,点击[Apply]即可完成Database Link的创建. 二SQL方 ...

随机推荐

  1. centos-php安装

    初学者自编文档,如有错误,请指出,具体命令就不阐述了,不明白 度娘吧! nginx我是编译安装在服务器上 和其他安装应该会有区别 安装路径路径:/usr/local/ 安装包存放位置:/home/ap ...

  2. 关于scanf的返回值

    今天写一个小程序时误用while(scanf("%d",&b)!=a),以为scanf的返回值就是输入的值. 其实真相是: scanf返回接收到的变量值的个数. int a ...

  3. 每个Web开发者必备的9个软技能

    对于一份工作,你可能专注于修炼自己的内功,会在不自觉中忽视软技能.硬技能决定你是否能得到工作,而软技能能够表明你是否适合这份工作和适应工作环境等.所有的公司都有属于自己的文化,并努力将这些文化传承下去 ...

  4. JPA 系列教程21-JPA2.0-@MapKeyColumn

    @MapKeyColumn 用@JoinColumn注解和@MapKeyColumn处理一对多关系 ddl语句 CREATE TABLE `t_employee` ( `id` bigint(20) ...

  5. python自动化Traceback (most recent call last):报错

    今天使用python.然而遇见了Traceback (most recent call last):的报错.抓狂的一笔.有说path写错的,有说是...网上查到的资料也是很少.后来突然发现,页面上我暂 ...

  6. JMM内存管理

    原文地址http://www.cnblogs.com/BangQ/p/4045954.html 原本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的 ...

  7. Linux修改SSH端口和禁止Root远程登陆

    Linux修改ssh端口22 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd res ...

  8. jquery的animate动画

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. (一)html之基本结构

    一:HTML基本结构 1.1 HTML文档结构 1.1.1 外层结构 <!DOCTYPE HTML> <html> </html> DOCTYPE元素用于告诉浏览器 ...

  10. BOS物流管理系统-第八天

    BOS物流管理系统-第八天-权限系统设计-Shiro 回顾: 两大块业务:基础设置模块,业务派单模块. 两天:权限控制. 拦截器大的范围的.纯登录级别(认证级别)大颗粒的权限控制的一种技术. Shir ...