使用Oracle DBLink进行数据库之间对象的訪问操作
2016-04-19 16:48
661 查看
Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中能够操作还有一个数据库中的对象,比如我们新建了一个数据database1。我们须要操作数据库database2中的表,或者我们须要操作远程机器上数据库database3中的表。我们就能够使用dblink这个强大的功能!
1、我们假设要创建全局的DBLink。就是说不管什么角色都能够使用,那么我们须要先确定用户是否有DBLink权限,假设没有则须要使用sysdba角色给用户授权:
查看用户是有有DBLink权限:
2、使用语句创建DBLink:
3、使用DBLink:
查询还有一个数据库中的数据。其它改动、删除是一样的使用,都是还有一个数据库表名@本数据库创建dblink名称:
比如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:
查看数据中创建的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 要连接数据库的username identified by 要连接数据的password using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = 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 视图名;
相关文章推荐
- MySQL实现类似Oracle的序列 - sequence
- 查看表空间占用情况
- Oracle创建各式的存储过程(簡單案例)
- Oracle VM + centos7.1+openstack kilo 多结点安装教程---keystone的安装(3)
- Oracle存储过程简介
- Oracle数据库备份脚本
- 安装oracle 11G-----( ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务)的解决方法
- oracle 删除大量数据的方法
- Oracle 表空间调整脚本
- Oracle 调整重做日志(redo)大小
- Oracle 业务表添加时间戳触发器
- Oracle 11g不同情形下的登录分析
- 完全卸载oracle
- Oracle 常用命令-创建表空间
- Oracle 查看表对应注释
- Oracle存储过程的commit和rollback,sqlerrm
- Oracle表空间操作
- Oracle12c连接问题[ORA-28040]
- 在命令行下进行Oracle用户解锁
- Oracle中的插入问题