oracle dblink创建

前端之家收集整理的这篇文章主要介绍了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*fromuser_sys_privswhereprivilegelikeupper('%DATABASELINK%');

2、如果没有,以sys用户登录到本地数据库用户user_a赋权:

grantCREATEPUBLICDATABASELINK,DROPDATABASELINKtouser_a;

注:
dblink有三种权限:
CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
DROP PUBLIC DATABASE LINK

3、以用户user_a登录本地数据库,创建dblink

  1. createpublicdatabaselinkdblink1

  2.   connecttouser_bidentifiedbyuser_bpass

  3.   using'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))';

注:
数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。
数据库全局名称可以用以下命令查出:

SELECT*FROMGLOBAL_NAME;

修改可以用以下语句来修改参数值:

    ALTERSYSTEMSETGLOBAL_NAME=TRUE/FALSE;

4、创建完成,引用

-- 查询删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。
例:

select*fromuser_bTablename@dblink1;

一般情况下引用数据库链接,可以直接将其放到调用的表名或视图名称后面,中间使用一个 @ 作为分割符:

5、删除 DBLink

droppublicdatabaselinkdblink1;

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://www.jb51.cc/article/p-ukiruhkn-kq.html

http://www.cnblogs.com/xinyuxin912/archive/2008/01/09/1032261.html

http://moonights.iteye.com/blog/568895

原文链接:https://www.f2er.com/oracle/209477.html

猜你在找的Oracle相关文章