`
雪馨25
  • 浏览: 128388 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

【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

 

  1. create public  database link dblink1    
  2.   connect to user_b identified by user_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 * FROM GLOBAL_NAME;  

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

  1. 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

1
2
分享到:
评论

相关推荐

    oracle dblink 创建过程

    ### Oracle DBLink创建过程及快照同步方法 #### 一、Oracle DBLink概念与创建步骤 DBLink(Database Link)是Oracle提供的一种机制,用于在不同的Oracle数据库实例之间建立连接,实现跨数据库查询、更新等功能。它...

    oracle通过DBlink连接mysql搭建过程

    使用 DBlink 连接 Oracle 和 MySQL 数据库 Oracle 通过 DBlink 连接 MySQL 搭建过程是一个复杂的过程,需要安装和配置多个组件,包括 unixODBC、mysql-connector-odbc 和 Oracle 环境变量。本文将详细说明这个过程...

    Oracle DBLink建立连接

    ### Oracle DBLink建立连接 #### 知识点一:DBLink基本概念与作用 - **DBLink**(Database Link)是Oracle提供的一种机制,用于在不同的Oracle数据库实例之间建立连接,实现跨数据库查询、更新等操作。 - **应用...

    关于创建oracle dblink 过程的几点心得

    Oracle DB Link 创建过程心得 Oracle DB Link 是一种数据库链接技术,允许用户从一台数据库服务器读取另一台数据库服务器下的数据。下面是创建 Oracle DB Link 过程的几点心得: 什么是 DB Link DB Link 是一种...

    oracle dblink的建立说明

    Oracle DBLink(数据库链接)是Oracle数据库提供的一种特性,它允许用户在不同的Oracle数据库实例间进行数据查询和操作,仿佛这些数据库都在同一个实例内。DBLink使得分布式数据库系统的交互变得简单,无需复杂的...

    oracle dblink 的应用

    - 已配置本地服务:如果你的本地 Oracle 实例已经配置了远程数据库的服务名,可以直接使用该服务名创建 dblink。 ```sql CREATE PUBLIC DATABASE LINK fwq12 CONNECT TO fzept IDENTIFIED BY neu USING '...

    oracle DBLink

    在《Oracle与MSSql对接通讯配置_20100906.docx》文档中,可能详细介绍了如何配置Oracle DBLink与MSSQL Server之间的通信,包括设置网络配置、数据库用户权限、DBLink创建过程以及可能遇到的问题和解决策略。...

    在oracle下创建dblink

    #### 二、DBLink创建原理及应用场景 1. **创建原理**:DBLink本质上是在源数据库中定义了一个指向目标数据库的逻辑路径。当执行涉及DBLink的操作时,Oracle会通过该逻辑路径自动建立到目标数据库的连接。 2. **...

    dblink创建语句(Oracle

    Oracle数据库下创建dblink的sql语句,附带解释说明

    Oracle DATABASE LINK(DBLINK)创建与删除方法

    DBLINK可以不指定远程用户的用户名和密码,此时Oracle会使用创建DBLINK时的当前用户凭据来连接远程数据库。如: ```sql CREATE PUBLIC DATABASE LINK zrhs_link USING 'zrhs'; ``` 在引用DBLINK时,可以在SQL语句...

    oracle10g或11g通过dblink访问sql server数据库

    完成以上步骤后,可以在Oracle环境中创建DBLink来访问SQL Server。例如,可以执行以下SQL语句: ```sql CREATE DATABASE LINK comm_link CONNECT TO <username> IDENTIFIED BY USING 'comm'; ``` 其中`<username>...

    oracle使用dblink高速复制表数据的动态存储过程

    本程序不同步blob和clob字段,玩oracle的人都懂,用sql同步此类数据,速度上不去,此类数据应该要用导出导入的方式提升速度。 具体请参阅程序,可根据自已需要进行修改。 参数说明: CREATE OR REPLACE PROCEDURE ...

    oracle 存储过程 函数 dblink

    本文主要介绍了Oracle存储过程的概念、创建和调用方法,以及如何使用DBLink实现跨库操作。存储过程提供了强大的数据库处理能力,而DBLink则使得不同数据库实例之间的交互变得更加方便和高效。掌握这些技术对于提高...

    Oracle使用dblink导用户下的所有表数据(以迁移scott用户为例)

    Oracle数据库是一种广泛应用于企业级数据存储和管理的系统,它提供了强大的数据迁移工具,其中之一就是DB Link(数据库链接)。在本教程中,我们将探讨如何利用DB Link来迁移Oracle数据库中的用户下所有表的数据,以...

    oracle通过odbc建立dblink访问sqlserver数据库

    ### Oracle通过ODBC建立DBLink访问SQLServer数据库 在企业级应用环境中,不同数据库系统间的交互变得越来越频繁。为了实现Oracle数据库与SQLServer数据库之间的数据交换,可以通过多种方式实现连接,其中一种较为...

    Oracle Dblink and synonym(同义词)

    Oracle Dblink and synonym(同义词) 授权 创建 以及使用

    oracle 创建dblink

    oracle创建dblink 连接远程服务器,创建连接。

    oracle 使用dblink方式 连接远程数据库,内有详细描述,亲测可以

    本文详细介绍了如何在Oracle中使用DBLink连接远程数据库,包括必要的准备工作、创建过程以及注意事项等内容。正确配置和使用DBLink可以帮助我们轻松地实现跨数据库操作,提高开发效率和系统灵活性。在实际应用过程中...

    Oracle通过DBlink连接MySQL

    创建成功后,就可以在Oracle SQL中通过DBLink查询MySQL的数据了。 在实际操作中,务必注意字符集的匹配,避免因字符集不一致导致的数据乱码问题。此外,安全也是重要的考虑因素,确保敏感信息如用户名和密码的安全...

    Oracle dblink详解

    Oracle dblink是Oracle数据库提供的一种在分布式环境中连接不同数据库的机制。它允许用户在一个数据库上执行操作,同时访问和操作远程数据库中的数据,仿佛这些数据是本地存在的。Database link是单向的,意味着从...

Global site tag (gtag.js) - Google Analytics