博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle database link
阅读量:4969 次
发布时间:2019-06-12

本文共 2474 字,大约阅读时间需要 8 分钟。

1、dblink的概念

dblink主要是用于查询远程数据库上相应的数据,同时也可以采用select * into的方式采集远程库上的数据至本地,且创建好的dblink都是单向访问的。

2、dblink的分类

  • Connected user,使用此种类型的dblink,要求在远端有同样的用户,且用户密码一致。
***************创建dblink用户***************SQL> create user dblink identified by dblink;User created.SQL> SQL> grant connect,resouce to dblink;grant connect,resouce to dblink              *ERROR at line 1:ORA-01919: role 'RESOUCE' does not exist***************创建database link***************SQL> grant connect,resource to dblink;Grant succeeded.SQL> create database link dblink_1 using 'ocm1';Database link created.***************使用database link进行查询***************SQL> select sysdate from dual@dblink_1;select sysdate from dual@dblink_1                         *ERROR at line 1:ORA-01017: 用户名/口令无效; 登录被拒绝 ORA-02063:preceding line from DBLINK_1***************在远端同样创建用户dblink***************SQL> create user dblink identified by dblink;User created.SQL> grant connect,resource to dblink;Grant succeeded.SQL> select sysdate from dual@dblink_1;SYSDATE------------------04-JUL-19
  • Current global user【未测试】

current_user使用该选项是为了创建global类型的dblink。在分布式体系中存在多个数据库的话。如果想要在每一个数据库中都可以使用同样的名字来访问数据库a,那在每个数据库中都要创建一个到数据库a的db_link,太麻烦了。所以现在有这个选项。你只要创建一次。所有的数据库都可以使用这个db_link来访问了。要使用这个特性,必须有oracle nameserver或者ORACLE目录服务器。并且数据库a的参数global_names=true.具体我也没有创建过,没有这个环境。

  • private fixed user
SQL> create database link dblink3 connect to scott identified by scott using 'ocm1';Database link created.SQL> show user;USER is "DBLINK"SQL> select sysdate from dual@dblink3;SYSDATE------------------04-JUL-19*************其他用户是不能使用这个dblink的*************SQL> show user;USER is "DAYU"SQL> select sysdate from dual@dblink3;select sysdate from dual@dblink3                         *ERROR at line 1:ORA-02019: connection description for remote database not found
  • public fixed user
SQL> grant CREATE PUBLIC DATABASE LINK to dblink;Grant succeeded.SQL> conn dblink/dblinkConnected.SQL> create public database link dblink4 connect to scott identified by scott using  'ocm1';Database link created.**********************其他用户也可以使用这个dblink**********************SQL> show user;USER is "DAYU"SQL> select sysdate from dual@dblink4;SYSDATE------------------04-JUL-19
  • Shared public fixed user【未测试】

使用shared方式的 database link是数据库会限制到远程数据库的连接的数量,这样以避免过多的连接对远程数据库造成太大的压力。在使用shared database link的时候,到database link的连接会在连接以后与本地连接断开,为防止未授权的session使用此链接而要求在创建shared database link的时候必须要指定database link_authentication。

3、dblink的常见问题

 

转载于:https://www.cnblogs.com/dayu-liu/p/11131207.html

你可能感兴趣的文章
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
错误1919,配置ODBC数据源MS Access Database时发生错误ODEC错误
查看>>
Docker容器运行ASP.NET Core
查看>>
WPF图片浏览器(显示大图、小图等)
查看>>
.Net码农学Android---系统架构和基本概念
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
DevExpress的Web控件汉化方法
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
结对编程项目-四则运算整体总结
查看>>
Android studio怎么修改文件名
查看>>
sass学习笔记-安装
查看>>
多缓存并存
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>
Java作用域
查看>>
spring中增加自定义配置支持
查看>>
End Point
查看>>
关于下载gitbash客户端
查看>>
支付宝钱包手势password破解实战(root过的手机可直接绕过手势password)
查看>>