Oracle DBLINk的使用
Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作数据库database2中的表,或者我们需要操作远程机器上数据库database3中的表,我们就可以使用dblink这个强大的功能!
1、我们如果要创建全局的DBLink,就是说无论什么角色都可以使用,那么我们需要先确定用户是否有DBLink权限,如果没有则需要使用sysdba角色给用户授权:
查看用户是有有DBLink权限:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
没有,则使用sysdba授权:
grant create public database link to dbusername;
2、使用语句创建DBLink:
create database link 要创建的dblink名称
connect to 要连接数据库的用户名 identified by 要连接数据的密码
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = 端口号))
)
(CONNECT_DATA =
(SERVICE_NAME = 连接数据库服务名)
)
)';
如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public:
create public database....
例如,在testdb2中创建test_dblink,来操作主机192.168.1.254中testdb1数据库:
create database link tset_dblink
connect to username identified by password1
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb1)
)
)';
3、使用DBLink:
查询另一个数据库中的数据,其他修改、删除是一样的使用,都是另一个数据库表名@本数据库创建dblink名称:
select xxx FROM 表名@dblink名称;
例如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:
select * from tb_user@tset_dblink;
查看数据中创建的dblink:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;
删除相应的dblink:
drop database link dblink名称;
关闭dblink连接:
alter session close database link 'dblink_name'
创建和删除视图:
create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);
drop view 视图名;
创建后在列表的Database links中
Oracle DBLINk的使用的更多相关文章
- 《oracle每日一练》Oracle DBLink连接数过多的问题(Ora-02020)
本文转自Oracle DBLink连接数过多的问题(Ora-02020) 今天在处理资料同步问题,需要将其它几个DB Server的资料同步到一个目地资料库,采用的方式是:DBLink+Job ,然而 ...
- oracle dblink 查询 tns:无法解析指定的连接标识符
问题情景是这样的:我在数据库服务器(windows server 2008r2 ,64bit)oracle(11gr2,64bit)中通过dblink连接到另外一台服务器(hp-ux)的oracle( ...
- 用mysql实现类似于oracle dblink的功能
用mysql实现类似于oracle dblink的功能 首先看看有没有federated 引擎. mysql> show engines; +------------+----------+ ...
- Oracle DBLINK 抽数以及DDL、DML操作
DB : 11.2.0.3.0 原库实例orcl:SQL> select instance_name from v$instance; INSTANCE_NAME--------------- ...
- MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK
原文地址:http://it.dataguru.cn/article-3352-1.html 摘要: 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来 ...
- Oracle dblink 使用详解
1.dblink简介 dblink(Database Link)数据库链接就是数据库的链接,跨本地数据库 2.使用语法详解 基本语法 CREATE [SHARED][PUBLIC] database ...
- Oracle DBlink的创建-查看与删除
DBlink常用于在两个Oracle数据库之间相互连接,如手工同步数据时,DBLink是最方便快捷的手段之一. 1.创建DBLink语法:create public database link < ...
- oracle DBLink
现有两个oracle DB为A和B,为了能在A数据库中对B数据库进行操作,我们需要在A数据库中建立对B的DBLink. 在创建DBLink之前,我们首先去检查下DB A的global_names ...
- oracle dblink造成远程数据库session过多
现场报网公司数据库连不上,先检查了下数据库processes=1500,session=2200.我认为非常大啊.这个数据库没有几个人用. 查看v$session中的session最多是哪个machi ...
- Oracle dblink详解
database link概述 database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,databas ...
随机推荐
- error C4996: 'sprintf': This function or variable may be unsafe.
error C4996: 'sprintf': This function or variable may be unsafe. error C4996: 'sprintf': This func ...
- Redis 存储数组
我们知道Redis是不可以直接存储数组的. 我们只需在存储数组之前序列化(serialize)一下, 然后获取的时候反序列化(unserialize) 就解决这个问题了!
- 如何让大小一定的span能够包含“容不下”的内容
overflow: hidden; text-overflow: ellipsis; width: 70px;(长度随意) 给span加上面的代码
- C++学习基础十七-- 函数指针
C++常用的函数指针 语法:返回值类型 (*函数名)(参数列表); 举例说明:int (*Func)(int m, int n); 用typedef简化函数指针的定义 例如: typedef int ...
- 编写Servlet 实例 -Shopping网站时,遇到的几个问题
问题一.在Web 上运行时,用JDBC链接MySQL总是出错,一直出现驱动加载失败 ------提示java.lang.ClassNotFoundException.解决方案:将数据库驱动jar文件导 ...
- 【FZSZ2017暑假提高组Day2】圆盘时钟
[问题描述] 作为出题人的小Z相信大家对上图这样的圆盘时钟都不会陌生——在理想圆盘时钟上,秒针每一分钟转一圈,分针每一小时转一圈,时针每12小时转一圈,它们均是匀速转动的,在0点时三条针均指向表盘上的 ...
- 通过DMS连接RDS需要添加的DMS白名单地址
10.152.163.0/24,139.224.4.0/24,11.193.54.0/24,101.37.74.0/24,10.137.42.0/24,121.43.18.0/24
- MySQL的show profile(已过时)简介以及该功能在MySQL 5.7中performance_schema中的替代
本文出处:http://www.cnblogs.com/wy123/p/6979499.html show profile 命令用于跟踪执行过的sql语句的资源消耗信息,可以帮助查看sql语句的执行情 ...
- install oracle 12c on redhat
---恢复内容开始--- 1. 确定VM的硬盘空间是否够 df- h, 硬盘空间free disk 15G 比较稳妥 2. 确定好网络,需要remote connect ifconfig 3. ...
- python,关于用户登录与注册问题
tag=Truecount=1while tag: name = input('请输入用户名>>:').strip() password = input('请输入密码>>:') ...