【oracle】dblink创建
目的:oracle中跨数据库查询
两台数据库服务器db_A(本地)和db_B(远程192.168.1.100),db_A下用户user_a 需要访问到db_B下user_b的数据
解决:查询得知使用dblink(即database link 数据库链)
实现过程:
1、确定用户user_a有没有创建 dblink 的权限:
   select * from user_sys_privs where privilege like upper('%DATABASE LINK%');  
2、如果没有,以sys用户登录到本地数据库 给用户user_a赋权:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to user_a;
注: 
 dblink有三种权限:
 
 CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
 
 CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
 
 DROP PUBLIC DATABASE LINK
3、以用户user_a登录本地数据库,创建dblink
create public database link dblink1
connect to user_b identified by user_bpass
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
注: 
 当数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。
 
 数据库全局名称可以用以下命令查出:
SELECT * FROM GLOBAL_NAME;
修改可以用以下语句来修改参数值:
ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
4、创建完成,引用
-- 查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。  
 例:
select * from user_bTablename@dblink1 ;
一般情况下引用数据库链接,可以直接将其放到调用的表名或视图名称后面,中间使用一个 @ 作为分割符:
5、删除 DBLink
drop public database link dblink1;
6、创建和删除同义词
对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用 
     create or replace synonym 同义词名 for 表名;  
     create or replace synonym 同义词名 for 用户.表名;  
     create or replace synonym 同义词名 for 表名@数据库链接名;  
     drop synonym 同义词名;
7、创建和删除视图
create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);  
     drop view 视图名;  
 
 其他:
 创建方式二:要求数据库服务器db_A上 tnsnames.ora 中有 数据库db_B的映射   (省略)
 sql>create database link 数据库链路名 connect to 用户名 identified by 口令 using 'tnsnames.ora配置的主机字符串名';
创建方式三:
 PL/SQL图形配置界面
问题:
 已经给了用户 dblink 的权限,但创建时报权限不足的错
 解决:我给用户的是 CREATE PUBLIC DATABASE LINK权限,所以创建时需要create public  database link....  而不能是create database link....
 
 待深入:
每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink 应该不会自动释放这个连接,如果是大量使用 dblink 查询,会造成 web 项目的连接数不够,导致系统无法正常运行,导致系统无正常运行。
参考学习:
http://blog.csdn.net/davidhsing/article/details/6408770
http://www.cnblogs.com/xinyuxin912/archive/2008/01/09/1032261.html
http://moonights.iteye.com/blog/568895
【oracle】dblink创建的更多相关文章
- oracle dblink的创建与使用
		一.什么是DBLINK dblink,顾名思义就是数据库的链接. 当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过该dblink就可以达到访 ... 
- DBLink创建 ORA-12154: TNS: 无法解析指定的连接标识符
		因为对oracle不了解,这个问题可TM的搞了好久! 走的弯路: 1. 在客服端的PLSQL连接工具上折腾,而不是在服务器的PLSQL解决 2. 配置的tnsnames.org文件在环境变量path( ... 
- oracle DBLink
		现有两个oracle DB为A和B,为了能在A数据库中对B数据库进行操作,我们需要在A数据库中建立对B的DBLink. 在创建DBLink之前,我们首先去检查下DB A的global_names ... 
- 查询DBlink创建
		DBlink创建 查询 博客分类: Oracle 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据 ... 
- Oracle DBLINK的相关知识整理
		一.DBLINK(Database Link)概念 dblink,顾名思义就是数据库的链接.当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过 ... 
- DBlink 创建 删除 脚本
		--配置SQLSERVER数据库的DBLINK --删除dblink Exec sp_droplinkedsrvlogin test,Null Exec sp_dropserver test --创建 ... 
- oracle 脚本创建数据库的相关文章,教程,源码
		学步园推荐专题: 关于oracle 脚本创建数据库的相关文章 文章标题 文章链接 文章简介 oracle命令行创建数据库的示例脚本 http://www.xuebuyuan.com/964527.ht ... 
- 用mysql实现类似于oracle dblink的功能
		用mysql实现类似于oracle dblink的功能 首先看看有没有federated 引擎. mysql> show engines; +------------+----------+ ... 
- oracle同义词创建(synonym)
		oracle同义词创建(synonym) 在现在的项目中会有很多接口,数据来源也可能是不同数据库或者是不同的用户下的表,给访问该表带来了一定的麻烦.这个时候就可以使用同义词来简化. 同义词的语法是 ... 
- oracle 12c 创建PDB用户即Local User (PDB与CDB)
		Oracle 12C用户创建与表空间分配 数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace ... 
随机推荐
- java值和地址值传递、字符串常量池的理解
			#java值和地址值传递的理解: - 基本数据类型和基本数据类型的封装类都是:值传递 * 形式参数的改变不会影响实际参数的改变(相当于将值复制一份传递给形参,自身没做任何改变) - 引用数据 ... 
- weblogic安装以及异常解决方法【转】
			转自:http://shenjc2008.iteye.com/blog/1461253 下载地址: http://www.oracle.com/technetwork/middleware/weblo ... 
- 用最简单的例子理解对象为Null模式(Null Object Pattern)
			所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法. 拿"用最简单的例子理解策略模式(Strategy Pattern) ... 
- 重写Html.DropDownList和Html.DropDownListFor的name属性
			□ 重写前 通常这样写: @Html.DropDownListFor(m => m.DelFlag,(List<SelectListItem>)ViewBag.d,"==请 ... 
- C#(静态String类)
			[转]http://blog.csdn.net/angelazy/article/details/8501776 C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的 ... 
- JDBC 连Sql Server 接数据库--The TCP/IP connection to the host localhost, port 1433 has failed
			原文:https://blog.csdn.net/qq_39241986/article/details/80848855 这样的错误,你有遇到过吗? The TCP/IP connection to ... 
- 【springboot+easypoi】一行代码搞定excel导入导出
			原文:https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事 ... 
- 转:如何解决“My mac 64-bit”问题
			童鞋们都知道Xcode会根据当前SDK在Run按钮旁边的选项栏中显示适合的Simulator供开发者选择,如下图: 但是有时候则错误显示“My mac 64-bit” ,这个明显不是我们想要的,如下图 ... 
- 解决小米手机不能运行Android Studio程序的问题
			转载自:解决小米手机不能运行Android Studio程序的问题 问题描述 Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: ... 
- wcf配置参数说明
			Open/Close/Receive/Send本是HTTP/TCP/SOCKET的概念,Read/Write Operation则是Web Service的概念. 1.OpenTimeout 客户端与 ... 
