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. python修炼4

    ---恢复内容开始--- 集合 建立  set() ={},集合没有顺序,由不可改变的数字 ,字符串,元组构成 #交集print(a&b) #a.intersection(b) #并集prin ...

  2. 寒假学干货之------android开发环境

    1.下载安装jdk(http://www.oracle.com/technetwork/java/javase/downloads/index.html)装se版的就可以了,复制jdk目录路径,之后配 ...

  3. webapp在Android中点击链接的时候会有淡蓝色的遮罩层

    body{-webkit-tap-highlight-color: rgba(0,0,0,0);}

  4. 为什么 把单一元素的数组放在一个struct的尾端问题

    问题摘自<深度探究c++对象模型>: struct mumble { /* stuff */ char pc[ 1 ];};[sizeof(mumble)是一个字节 .pc则代表的是指向这 ...

  5. android -- 加载gif 防止oom

    项目中涉及到gif图片的展示,原来使用的是gifview,但是当频繁的,加载过大图片的时候会出现OOM的问题,后来去github上面找相关的库: https://github.com/koral--/ ...

  6. 淘淘商城_day03_课堂笔记

    今日大纲 实现商品的编辑 实现商品的规格参数功能 搭建前台系统 实现首页商品类目的显示 商品的编辑 数据的编辑核心是:数据回显. 编辑按钮事件 判断选中的行数 弹出window 加载编辑页面,在页面加 ...

  7. CSU 1640 机智的刷题方式

    完全背包 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  8. java.lang.OutOfMemoryError异常解决方法

    原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据:2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收:3.代码中存在死循环或循环产生过多重复的对象实体:4 ...

  9. linux下如何使用vnstat查看服务器带宽流量统计

    因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我截几 ...

  10. Chapter 2 Open Book——29

    Which left me with nothing to do but try to not look at him…unsuccessfully. 我没什么事情可以做但是我尝试不去看他,但是失败了 ...