知识大全 Oracle建立DBLINK的详细步骤记录

Posted 数据库

篇首语:贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle建立DBLINK的详细步骤记录相关的知识,希望对你有一定的参考价值。

Oracle建立DBLINK的详细步骤记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  测试条件

  假设某公司总部在北京 新疆有其下属的一个分公司 在本次测试中 新疆的计算机为本地计算机 即本要的IP地址为

  北京的总部有一个集中的数据库 其SID是SIDBJ 用户名 userbj 密码 bj 北京的IP地址是

  在本地(新疆)的分公司也有一个数据库 其SID是SIDXJ 用户 userxj 密码 xj 新疆的IP地址是

  要将本地新疆的SIDXJ数据库中访问到北京的数据库SIDBJ中的数据

  也就是说 在sidxj的数据库中 用户userxj( )需要建立DBLINK 以userbj的用户身份访问sidBJ( )中的数据

  测试环境 两个数据库均建立在WINXP上 ORACLE的版本均为Oracle

  建立环境时 要注意关闭两台计算机上的Windows的防火墙 否则 会出现能ping通 但Oracle连接不通的情况

   问 如何返回数据库的GLOBAL_NAME?

  执行SELECT * FROM GLOBAL_NAME;

  北京的数据库的GLOBAL_NAME为SIDBJ US ORACLE

  新疆的数据库的GLOBAL_NAME为SIDXJ

   问 如何查看Global_name参数是true还是False?

  答 执行 SQL> show parameter global_name;

  执行的结果如下

  NAME                                 TYPE        VALUE

  

  global_names                         boolean     TRUE

  表示该参数是true

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

   问 查看远程数据徊是否支持高级复制功能

  答 通过查看v$option视图 如果其中Advanced replication为TRUE 则支持高级复制功能 否则不支持

  执行语句为 select * from v$option;

  也可以执行select * from v$option where PARAMETER= Advanced replication 语句

  如何返回值为True 那么就是支持 否则就是不支持 在两个数据库中都是检查是否支持才行

  建立步骤

   在本地建立一个Oracle的客户端连接tns_xj_to_bj 用于连接北京的数据库

  在北京的数据库中 建立一个表用于测试

  create table USERBJ BJ_TEST

  (

  STU_ID   NUMBER

  STU_NAME VARCHAR ( )

  )

  在其中增加一条记录

  insert into BJ_TEST (STU_ID STU_NAME)

  values ( 钟德荣 );

   新建一个连接tnsxj 用于连接本地的sidxj数据库 以tnsxj/userxj/xj 登录到PLSQL中

  下面开始创建连接到北京的远程数据连接DBLink

  create database link SIDBJ US ORACLE connect to userbj identified by  bj using tns_xj_to_bj ;

  其中 SIDBJ US ORACLE 是远程的数据库的global_name userbj是连接SIDBJ的用户名 bj 是userbj的密码

  tns_xj_to_bj是本地建立的连接到北京的数据库的服务名

   测试连接是否成功

  select * from dual@SIDBJ US ORACLE

  如果返回结果如下则表示连接成功了

  DUMMY

  

  X

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

  SQL> select owner object_name from dba_objects where object_type= DATABASE LINK ;

  OWNER                          OBJECT_NAME

  

  SYSTEM                         SIDBJ US ORACLE

  USERXJ                         DBLINK_XJ_TO_BJ

  USERXJ                         SIDBJ

   至此 在新疆的计算机上建立了一个DBLINK 用于连接到北京的数据库上

  在新疆的数据库中查询北京的数据库中表的信息

  select * from bj_test@SIDBJ US ORACLE

  查询结果

  STU_ID STU_NAME

  

   钟德荣

  表示查询是正常的

   关于global_name参数的测试

  create database link a connect to userbj identified by  bj using tns_xj_to_bj ;

  建立了一个DBLINK 执行下面的查询

  select owner object_name from dba_objects where object_type= DATABASE LINK ;

  可以看到已经建立了名为 a的DBLINK

  但执行下面的查询 检索远程数据时 就会出现错误

  select * from bj_test@a

  原因是因为本地数据库的global_names的参数值为true 所以 dblink的名称必须和远程数据库的global_names相同

  要修改本地数据库的global_names参数为false;(注意是修改本地数据库SIDXJ 通过测试修改过程的参数不行 过程的global_names参数为TRUE还是为FALSE没有关系)

  使用下面的语句修改该参数

  SQL>  alter system set global_names=false;

  再执行下面的几步即可查询出数据

  create database link a connect to userbj identified by  bj using tns_xj_to_bj ; 创建DBLINK

  select owner object_name from dba_objects where object_type= DATABASE LINK ; 查询现有的DBLINK

  select * from bj_test@a 查询远程表

   下面在SIDXJ中建立存储过程 通过DBLINK检索远程数据库SIDBJ 存储过程如下

  CREATE OR REPLACE PROCEDURE test_cur

  as

  strSql varchar ( );

  t_stu_name varchar ( );

  TYPE TCUR IS REF CURSOR;

  CUR TCUR;

  begin

  strSql := select stu_name from bj_test@a ;

  OPEN CUR FOR strSql ;

  LOOP

  FETCH CUR INTO t_stu_name;

  EXIT WHEN CUR%NOTFOUND;

  DBMS_OUTPUT PUT_LINE(t_stu_name);

  END LOOP;

  CLOSE CUR;

  end test_cur;

  测试存储过程显示 输出了过程数据库中的STU_NAME的值

cha138/Article/program/Oracle/201311/18443

相关参考

知识大全 在Oracle817上安装java虚拟机详细步骤

在Oracle817上安装java虚拟机详细步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 请问怎样给电脑分硬碟?请说出详细步骤,谢谢

请问怎样给电脑分硬碟?请说出详细步骤,谢谢分割槽么?如果你还没在这个硬碟上安装系统那么你可以使用windowsxp安装盘进行分割槽...安装的时候选择建立磁碟分割槽就可以了...大小你自己选择...这

知识大全 oracle光标的使用

  在PL/SQL程序中对于处理多行记录的事务经常使用光标来实现  一显式光标在PL/SQL程序中定义的光标称作显式光标  显式光标处理需四个PL/SQL步骤:  cursor 光标名称&n

知识大全 我想自己建立一个卖彩票的网址,请问都需要什么

我想自己建立一个卖彩票的网址,请问都需要什么?要怎么做,多少钱?详详细回答!加分好像现在国家不允许吧,我想自己建立一个网页,请问我该怎么做,需要什么费用吗?需要详细信息,谢谢!最主要的步骤是:域名、空

知识大全 如何通过DBlink进行远程过程或函数调用

如何通过DBlink进行远程过程或函数调用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有朋友

知识大全 自动清除statspack所产生的snapshot旧记录

  下面的script可以利用cron排程来自动执行清除超过保留数目的旧有snapshot资料这个script不需要知道PERFSTAT此帐号的密码就可执行并已经经由Oracle和上测试过    步骤

知识大全 巧取Oracle指定记录

Oracle认证:巧取Oracle指定记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!取得表中第

热工按规定要求进行巡检的同时,还应()

热工按规定要求进行巡检的同时,还应()A、做好缺陷记录,并按有关规定及时按排消缺B、建立计算机控制系统故障记录台帐,详细记录系统发生的所有问题C、热工专责工程师应定期对巡检记录进行检查,对处理情况进行

热工按规定要求进行巡检的同时,还应()

热工按规定要求进行巡检的同时,还应()A、做好缺陷记录,并按有关规定及时按排消缺B、建立计算机控制系统故障记录台帐,详细记录系统发生的所有问题C、热工专责工程师应定期对巡检记录进行检查,对处理情况进行

知识大全 Oracle删除重复记录

Oracle删除重复记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经过测试最高效的一种(万