精华内容
下载资源
问答
  • 一开始研究知道了sql语句的写法,但是执行通过不了,需要先安装dblink扩展。这些博文里都没说清楚,感谢网友指点,在windows下只需要在相应的数据库下执行sql语句“create extension dblink”就ok了。而以上的博文...
  • DM之间DBLINK创建.pdf

    2020-09-09 17:09:28
    如何建立达梦数据库的DBLINK,告诉你如何在个达梦数据库之间使用MAL链路的方式去创建DBLINK方便访问
  • 主要介绍了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法,涉及SQLSERVER数据库的简单设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 执行存储过程,通过指定目标数据库登录信息,动态生成dblink,打开游标,按批次插入本地指定表中,每批次1万条数据。同步记录和日志信息写在自动生成的sync_log表中。同步完成后自动删除动态生成的存储过程、dblink...
  • 通过dblink连接oracle和mysql,将数据从oracle传输到mysql,详细记录了搭建过程和创建报错
  • ORACLE社区有位哥们提问,为啥索引重建(alter index rebuil)之后,SQL变慢了,以前15秒可以完成,现在要2分多种,于是问他要了执行计划 SQL> set autotrace traceonly SQL> SELECT SEQ_PAY_CUSTOMEROPER....
  • oracle数据库用DBLINK连接另一个数据库的两种方法.txt
  • 两台数据库服务器之间通过创建dblink进行数据库连接,并且数据库之间可以相互进行数据查询读取操作,操作简单易懂
  • oracle通过ODBC建立dblink访问SqlServer数据库配置
  • dblink

    2020-01-31 17:42:58
    dblink(Database Link)数据库链接顾名思义就是数据库的链接 [1] ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink...

    dblink(Database Link)数据库链接顾名思义就是数据库的链接 [1] ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

    格式

    1.创建dblink语法:

    CREATE [SHARED] [PUBLIC] database link link_name
      [CONNECT TO [user] [current_user] IDENTIFIED BY [password] 
      [AUTHENTICATED BY user IDENTIFIED BY password] 
      [USING ‘connect_string’]
    说明:
    1)权限:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私 有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。
    2)link : 当source端的参数(parameter)GLOBAL_NAMES=TRUE时,link名必须与远程数据库的全局数据库名global_name)相同;否则,可以任意命名
    3)current_user使用该选项是为了创建global类型的dblink。在分布式体系中存在多个数据库的话。如果想要在每一个数据库中都可以使用同样的名字来访问数据库a,那在每个数据库中都要创建一个到数据库a的db_link,太麻烦了。所以有这个选项的话你只要创建一次。所有的数据库都可以使用这个db_link来访问了。要使用这个特性,必须有oracle nameserver或者ORACLE目录服务器。并且数据库a的参数global_names=true.具体我也没有创建过,没有这个环境。
    4)connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串,也可以在创建dblink的时候直接指定。
    5)username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库,当创建connected user类型的dblink时,需要如果采用数据字典验证,则需要两边数据库的用户名密码一致。

    语法

    2. 创建dblink

    创建dblink一般有两种方式 [3] ,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
    select * from user_sys_privs t
      where t.privilege like upper(’%link%’);
    查询结果集 :
      1 SYS CREATE DATABASE LINK NO
      2 SYS DROP PUBLIC DATABASE LINK NO
      3 SYS CREATE PUBLIC DATABASE LINK NO
      可以看出在数据库中dblink有三种权限:
    1.CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了) ,
      2.CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),
      3.DROP PUBLIC DATABASE LINK。
      在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASELINK权限授予给你的用户:
    grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
    然后以scott用户登录本地数据库

    1、已经配置本地服务

    create public database link link_name
    connect to username identified by password
    using ‘connect_string’;
    注:link_name是连接名字,可以自定义;
    username是登陆数据库的用户名;
    password是登陆数据库的用户密码;
    connect_string是数据库连接字符串。
    数据库连接字符串是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

    2、直接建立链接

    create database link link_name
      connect to username identified by password
      using ‘(DESCRIPTION =
      (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X )(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVICE_NAME = SSID)
      )
      )’;
      host=数据库的ip地址,service_name=数据库的ssid。
      其实两种方法配置dblink是差不多的,个人感觉还是第二种方法比较好,这样不受本地服务的影响。
      注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

    dblink查询

    1.查看所有的数据库链接

    进入系统管理员SQL>操作符下,运行命令:
    SQL>select owner,object_name from dba_objects where object_type=‘DATABASE LINK’;
      或者
    select * from dba_db_links;

    2.dblink删除

    DROP PUBLIC DATABASE LINK link_name;

    3.dblink使用

    SELECT……FROM 表名@数据库链接名;
    查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

    例:查询北京数据库中emp表数据 select * from emp@BeiJing;

    设此处北京数据库的数据库连接字符串为BeiJing;
    同义词配合

    例子中from emp@BeiJing可以创建同义词来替代:
      CREATE SYNONYM 同义词名 FOR 表名;
    CREATE SYNONYM 同义词名 FOR 表名@数据库链接名;
    如:create synonym bj_scott_emp for emp@BeiJing;
    于是就可以用bj_scott_emp来替代带@符号的分布式链接操作emp@BeiJing
      DB LINK是独立于创建用户(USER_DB_LINKS的USERNAME)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

    实例编辑

    需要注意的是在oracle参数中,有一个参数叫global_names,如果该参数为TRUE,那么在使用db link时,db link的名字一定要和被访数据库实例名一致,否则会报ORA-2085错。
    Machine 1:
    IP:192.168.100.162
    ORACLE_SID:HX
    Machine 2:
    IP:192.168.100.4
    ORACLE_SID:prepaid

    1.在Machine 2的数据库中增加用户

    以oracle用户登录Machine 2
       e x p o r t O R A C L E S I D = p r e p a i d     export ORACLE_SID=prepaid    exportORACLESID=prepaid  sqlplus / as sysdba
      SQL>create user test identified by test;
      User created.
      SQL>grant connect,resource to test;
      Grant succeeded.

    2.修改Machine 1的tnsnames.ora文件

    增加如下内容:
      prepaid_test=
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.4)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = prepaid)
      )
      )

    3.创建db link [4]

    以oracle用户登录Machine 1
       e x p o r t O R A C L E S I D = H X     export ORACLE_SID=HX    exportORACLESID=HX  sqlplus / as sysdba
      SQL>create public database link prepaid_test connect to test identified by test using ‘prepaid_test’;
      Database link created.
      SQL>show parameter global_names
      NAME TYPE VALUE
      ------------------------------------ ----------- ------------------------------
      global_names boolean TRUE
      SQL>select * from dual@prepaid_test;
      select * from dual@prepaid_test
      *
      ERROR at line 1:
      ORA-02085: database link PREPAID_TEST connects to PREPAID
      SQL>alter system set global_names=false;
      System altered.
      SQL>select * from dual@prepaid_test;

    D
      -
      X
      可以看到,当global_names=false时,db link可以连接远程数据库。
      $oerr ora 2085
      02085, 00000, “database link %s connects to %s”
      // *Cause: a database link connected to a database with a different name.
      // The connection is rejected.
      // *Action: create a database link with the same name as the database it
      // connects to, or set global_names=false.
      //

    4.修改Machine 1的tnsnames.ora文件

    修改prepaid_test为prepaid:
      prepaid =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.4)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = prepaid)
      )
      )

    5.重新创建db link

    以oracle用户登录Machine 1
       e x p o r t O R A C L E S I D = H X     export ORACLE_SID=HX    exportORACLESID=HX  sqlplus / as sysdba
      SQL>drop public database link prepaid_test;
      Database link dropped.
      SQL>create public database link prepaid connect to test identified by test using ‘prepaid’;
      Database link created.
      SQL>alter system set global_names=true;
      System altered.
      SQL>show parameter global_names
      NAME TYPE VALUE
      ------------------------------------ ----------- ------------------------------
      global_names boolean TRUE
      SQL>select * from dual@prepaid;

    D
      -
      X
      可以看到,当global_names=true时,如果创建的db link名字与远程数据库的实例名一致,还是可以访问的。

    展开全文
  • oracle 使用dblink方式 连接远程数据库,内有详细描述,亲测可以
  • 依赖包:mysql-connector-odbc-5.3.6-1.el6.x86_64.rpm和unixODBC,前置条件:Oracle和MySQL字符集需要一致,否则Oracle查询出来的数据是乱码。
  • DBLINk

    2012-07-07 12:28:07
    DBLINk
  • oracle通过odbc方式,连接到sqlserver数据库。比透明网关方式更加简单
  • NULL 博文链接:https://czwlucky.iteye.com/blog/964093
  • greenplum数据库4.3版本创建dblink使用contrib包postgresql-8.3.23.tar.gz
  • 前几天编写一个存储过程,需要访问远程数据库的字段,于是建立一个dbLink并建了同义词: CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl IDENTIFIED BY orcl USING 'orcl'; CREATE SYNONYM mtb FOR mytable...
  • DBLink的作用是在局域网内,通过一台服务器上面的数据库访问另外一台服务器上面数据库的功能。下面这篇文章主要给大家介绍了关于Oracle中dblink实际应用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们...
  • dblink实战

    2018-05-10 11:19:16
    dblink详解 多台oracle服务器之间数据库连接配置文档,包含详细说明和搭建过程。实战文档,便于刚接触dblink的朋友学习和实战
  • Oracle JDBC DBLink-开源

    2021-07-19 23:52:34
    jdbc dblink 实现,允许在 oracle 和任何其他 jdbc 可访问数据库之间创建 jdbc 链接,以通过 sql 和 pl/sql 启动查询或执行远程存储过程。 这也允许从 10.2.0 达到 Oracle 7.3.4。
  • dblink详解

    2018-05-08 17:53:11
    dblink详解,概念,分几个类型,怎么创建,怎么使用。
  • oracle通过dblink连接mysql,主要参考了网上的文章,由于本人oracle服务端是32位,MySQL是64,附件中包含32位驱动 mysql-connector-odbc-5.2.4-ansi-win32.msi
  • 快速判断dblink语句.txt

    2019-11-01 16:47:57
    在执行dblink sql操作时会同步两端数据库的scn, 使scn小的库和scn大的库一致。极端情况下可能会导致scn小的数据库的scn被耗尽,造成该数据库无法正常工作.因此在进行sql审核时dblink sql语句也是非常重要一个关注项...
  • oracle DBLink

    2019-07-29 01:25:20
    NULL 博文链接:https://z-jianwen.iteye.com/blog/815556
  • 主要介绍了oracle跨库查询dblink的用法,结合实例形式较为详细的分析了Oracle中跨库查询dblink的创建、使用及删除等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  •  如果为true,本地建立的dblink名称必须与远程的global_name一致才行。   3.创建dblink CREATE DATABASE LINK数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串';  例1: ...
  • oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下,有需求的朋友可以参考下哈
  • dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink dblink
  • dblink简介

    2018-09-06 16:08:30
    oralce dblink 的用法与简介 oralce dblink 的用法与简介

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,377
精华内容 6,150
关键字:

dblink