热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

dblink访问远程数据库

dblink访问远程数据库当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如...SyntaxHighlighter.all();

dblink访问远程数据库
 
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink.
  创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
  select * from user_sys_privs t
  where t.privilege like upper('%link%');
  1 SYS CREATE DATABASE LINK NO
  2 SYS DROP PUBLIC DATABASE LINK NO
  3 SYS CREATE PUBLIC DATABASE LINK NO
 
  可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),DROP PUBLIC DATABASE LINK。
  在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户
  www.2cto.com  
  grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
 
  然后以scott用户登录本地数据库
  1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。
  create public database link
  to_bylw connect to scott identified by tiger using 'bylw';
  其中to_bylw是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示
  select * from scott.tb_test@to_bylw;
  2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,  www.2cto.com  
  create database link to_test
 
  connect to scott identified by tiger
 
  using '(DESCRIPTION =
 
  (ADDRESS_LIST =
 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
 
  )
  (CONNECT_DATA =
 
  (SERVER = DEDICATED)
 
  (SERVICE_NAME = bylw)
  )
 
  )';
 
  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:
  bylw =
 
  (DESCRIPTION =
 
  (ADDRESS_LIST =
 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))
 
  )
 
  (CONNECT_DATA =
 
  (SERVER = DEDICATED)
 
  (SERVICE_NAME = bylw)
 
  )
 
  )
1、  在本地(oracle和phd主服务器)建立一个Oracle的客户端连接sxyuniformance,用于连接远程端机器的oracle数据库。
 
在远程端机器的数据库中,建立一个表用于测试,创建RTDB_TAG表。
create table uniformance.RTDB_TAG
(
 
          NAME VARCHAR2(30) not null,
 
          DES VARCHAR2(60),
 
          UNIT VARCHAR2(15),
 
          HI   VARCHAR2(20),
 
          LO   VARCHAR2(10)
)
在其中增加一条记录:
 
insert into uniformance.RTDB_TAG (NAME, DES, UNIT, HI, LO)
 
values ('TAG1', 'TAG TEST1', 'M', '10000', '-100');
  www.2cto.com  
2、  在oralce和phd服务器端登录PLSQL,创建远程数据库端的连接dblink
 
create database link dblink connect to uniformance identified by  uniformance using ‘sxyuniformance’;
 
dblink:database link的名称
 
uniformance:远程端oracle数据库的登录名
 
uniformance:远程端oracle数据库的登录密码
 
sxyuniformance:本地建立的连接到远程端的服务名称
 
注意:创建database link的时候,名字不是随便获取的,如果本地数据库的global_names的参数值为true,dblink的名称必须和远程数据库的global_names相同。
 
如何查看数据库的GLOBAL_NAME?
 
执行  SQL>SELECT * FROM GLOBAL_NAME;
  www.2cto.com  
如何查看Global_name参数是true还是False?
 
执行  SQL> show parameter global_name;
 
如何修改Global_name参数值?
 
执行  SQL>  alter system set global_names=false;
 
3、  测试连接是否成功
   select * from dual@dblink
   如果有结果返回则表示连接成功了。
4、在本地数据库中查询已经建立的远程连接名:
 
   SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
 
    OWNER                    OBJECT_NAME
  www.2cto.com  
   Public                                 dblink
 
5、至此,在本地oracle和phd服务器上创建一个DBLINK,用于连接到远程端的数据库上,
 
在本地的数据库中查询远程端数据库中表的信息:
 
SQL> select * from RTDB_TAG@dblink
 
查询结果测试是否成功
 
 
作者 赵莫言

推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
author-avatar
mobiledu2502925241
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有