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

需求描述:
    本地一台客户机,上面安装有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;

 

你可能感兴趣的:(数据库相关)