您的位置:首页 > 数据库 > Oracle

Oracle建立DBLINK的步骤记录,其实就是一条CREATE DATABASE LINK语句!

2011-01-04 11:41 417 查看
需求描述:
本地一台客户机,上面安装有ORACLE数据库,本客户机的IP为 10.187.255.251。
机房一台数据库服务器,IP地址为10.187.255.11,SID为XYXNB ,用户名为USER密码为PASSWORD

通过 SELECT INSTANCE_NAME FROM V$INSTANCE; 语句查看本地数据库SID为 ORCL。

此时一个需求是要将本地的ORCL数据库访问到机房的XYXNB中的数据,也就是说,需要在本地ORCL数据库中建立DATABASE LINK,可以在本地的SQL中直接访问远程机房中的数据。
  
  1、如何返回数据库的GLOBAL_NAME?
  执行SELECT * FROM GLOBAL_NAME;(远程机房的GLOBAL_NAME为XYXNB)

  2、如何查看Global_name参数是true还是False?
  答:执行:SQL> show parameter global_name;

  执行的结果如下:

  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  global_names boolean TRUE
  表示该参数是true

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





  3、查看远程数据徊是否支持高级复制功能。
  答:通过查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持。
  执行语句为:select * from v$option;
  也可以执行select * from v$option where PARAMETER='Advanced replication'语句,
如何返回值为True,那么就是支持,否则就是不支持。在两个数据库中都是检查是否支持才行。

建立步骤:
  在本地通过修改tnsnames.ora文件建立一个Oracle的客户端连接XYXNB,用于连接远程服务器数据库。



  通过下面的语句来建立DATABASE LINK:

  create database link dblinkname connect to user identified by password using 'xyxnb';

上面语句中中:

dblinkname是要建立的ORACLE DATABASE LINK 的名字,将来需要调用远程数据库的数据的时候,只需要在本地SQL中写上@ dblinkname 就可以直接访问。

user 是连接远程数据库的用户名。



password是user 用户的密码。

'xyxnb'是本地建立的连接到远程数据库的数据库的服务名(可以在oracle的安装目录的tnsnames.ora文件中看到)。



  3、测试连接是否成功:
  select * from dual@xyxnb
  如果返回结果如下则表示连接成功了。
  DUMMY
  -----
  X

  4、在本地数据为中查询已经建立的远程连接名:

  SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
  OWNER OBJECT_NAME
  ------------------------------ --------------------------------------------------------------------------------
  USER XYXNB
 
在本地的计算机上建立了一个DBLINK,用于连接到远程数据库服务器中。
  
5、通过DATABASE LINK在本地建立同样的表:Create table XXXX as select * from TABLE_NAME@XYXNB;



6、删除已经建立的DATABASE LINK

DROP DATABASE LINK dblinkname;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: