Oracle dblink详解
2016-05-11 22:01
344 查看
Oracle dblink详解
2、在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。
如果用户没有权限创建dblink,则可以通过管理员身份并使用 :
来授权(myAccount表示需要被授予创建dblink的用户)。
或者
点击ok
dblink创建完成。
我在本机创建了4个dblink:
图1-1
其中DB3 创建的用户为SSH,连接到的用户为SJSJZX。
这时可以通过SSH用户访问SJSJZX用户中的表了:
图1-2
-- 删除非public类型的database link
-- 注意:只有owner自己能删除自己的非public类型database link
如:通过dblink跨库复制数据量非常多的表T_WEBSERVICE
注意:db3的user name 是SJSJZX用户,而表T_WEBSERVICE是SJSJZX下的,见图1-1所示。
概述
1、database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。2、在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。
database link分类
类型 | Owner | 描述 |
---|---|---|
Pr ivate | 创建database link的user拥有该database link | 在本地数据库的特定的schema下建立的database link。只有建立该database link的schema的session能使用这个database link来访问远程的数据库。同时也只有Owner能删除它自己的private database link。 |
Public | Owner是PUBLIC. | Public的database link是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此database link来访问相应的远程数据库。 |
Global | Owner是PUBLIC. | Global的database link是网络级的,When an Oracle network uses a directory server, the directory server automatically create and manages global database links (as net service names) for every Oracle Database in the network. Users and PL/SQL subprograms in any database can use a global link to access objects in the corresponding remote database. Note: In earlier releases of Oracle Database, a global database link referred to a database link that was registered with an Oracle Names server. The use of an Oracle Names server has been deprecated. In this document, global database links refer to the use of net service names from the directory server. |
database link的创建
创建dblink的用户有对应的数据库权限,创建dblink命令为:create public database link 或者create database link
如果用户没有权限创建dblink,则可以通过管理员身份并使用 :
grant create public database link, create database link to myAccount
来授权(myAccount表示需要被授予创建dblink的用户)。
查看dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';
或者
select * from dba_db_links;
使用toad for oracle创建dblink
图解dblink创建过程:点击ok
dblink创建完成。
我在本机创建了4个dblink:
图1-1
其中DB3 创建的用户为SSH,连接到的用户为SJSJZX。
这时可以通过SSH用户访问SJSJZX用户中的表了:
select * from T_WEBSERVICE@db3
图1-2
database link删除
-- 删除public类型的database linkDROP PUBLIC database link link_name;
-- 删除非public类型的database link
-- 注意:只有owner自己能删除自己的非public类型database link
DROP database link link_name;
通过dblink应用例子
当需要跨库拷贝数据而且数据量很大的时候,使用dblink速度很快。如:通过dblink跨库复制数据量非常多的表T_WEBSERVICE
create table test as select * from T_WEBSERVICE@db3
注意:db3的user name 是SJSJZX用户,而表T_WEBSERVICE是SJSJZX下的,见图1-1所示。
相关文章推荐
- Oracle用户,权限,角色以及登录管理 scoot 授权
- ORACLE用SYS登录报ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER解决方法
- 读书笔记:Oracle数据库之【分区】
- oracle数据迁移到db2数据库
- oracle表回滚到一个指定时间的操作语句
- Oracle LOB
- oracle数据库内存调优
- oracle 数据库搭建库详解
- Oracle-游标
- oracle的nvl和sql server的isnull
- oracle 密码文件文件
- oracle之 sql性能优化
- Oracle表误删恢复数据
- 欢迎使用CSDN-markdown编辑器
- Oracle12c中功能及性能新特点之with子句的增强
- Oracle 12c 数据库中scott用户不存在的解决方法
- 【OGG】GoldenGate For Oracle实施文档 --超详细总结版
- Oracle long raw字段操作 oledb方式 asp.net
- oracle 修改密码,解锁
- Oracle AWR报告的生成