精华内容
下载资源
问答
  • 查询数据库dblink

    2020-09-11 02:20:37
    查询数据库dblink查询方法:1、执行select * from dba_db_links;语句。bai2、在PL/SQL中,在左边浏览器du中点击database links就可以看到数据库链路了。zhi创建Create database link语句:create public database ...

    查询方法

    方法1:执行select * from dba_db_links;语句。bai
    方法2:在PL/SQL中,在左边浏览器du中点击database links就可以看到数据库链路了。zhi

    创建Create database link语句:

    create public database link 链路名 connect to 用户 identified by 口令 using ‘连接dao字符串’;

    展开全文
  • 目录 dblink简介 dm到dm搭建dblink 1 准备条件 2 操作步骤 2.1 创建dmmal.ini 2.2 修改配置文件 2.3 重启数据库实例 2.4 创建测试表 ...2.3 测试数据库dblink连接 2.4 结果测试 总结 dblink简介 ...

     

    目录

    1、dblink简介

    2.1  准备条件

    2 .2 操作步骤

    2.2.1 创建dmmal.ini

    2.2.2 修改配置文件

    2.2.3 重启数据库实例

    2.2.4 创建测试表

    2.2.6  结果测试

    3.1 准备条件

    3.2 操作步骤

    3.2.1 oracle创建用户、测试表及启动监听,配置oracle客户端

    3.2.2 配置dm到数据库链接

    3.2.3 测试数据库dblink连接

    3.2.4 结果测试

    4、总结



    1、dblink简介

         达梦数据库的外部链接是一种数据库的实体对象,记录了远程数据库的连接信息,用于建立与远程数据的联系。用户可以通过数据库的外部链接对象透明地操作远程数据库的数据,对远程数据库的表进行查询和增删改操作,也可以调用远程的存储过程。数据库的外部链接对象可以是公用的(数据库中所有用户使用),也可以是私有的(特定用户使用)。

    2、dm到dm搭建dblink

       以下操作步骤用于创建 DM 到 DM 的外部链接,并使用外部链接对远程库做增、删、改、查的操作 

    2.1  准备条件

         (1)两台数据库机器A 、B,均安装了达梦数据库。
         (2)两台数据库机器A 、B,均关闭了防火墙和selinux。
         (3)两台数据库机器A 、B的实例名不能一致,两个数据库的字符集必须一致。

    环境介绍

     

    数据库版本

    IP

    主机名

    A

    DM Database Server x64 V7 ENT

    192.168.6.7

    meng1

    B

    DM Database Server x64 V7 ENT

    192.168.6.6

    meng2

    2 .2 操作步骤

     

    2.2.1 创建dmmal.ini
     

    两台数据库机器,第一台为目的主机A(被连接的机器),另外一台为测试机B(用来连接的机器),首先我们在两台机器的数据库实例下面创建dmmal.ini 文件
    创建的内容如下:

    [dmlink1]    #自定义
    mal_inst_name  = DMSERVER   #A主机的实例名,和dm.ini中的INSTANCE_NAME保持一致
    mal_inst_host = 192.168.6.7  #A主机的ip地址
    mal_inst_port = 5236        #A主机的实例端口,和dm.ini中的PORT_NUM保持一致
    mal_host = 192.168.6.7   #A主机的ip地址
    mal_port = 61142       #系统监听TCP连接端口(自定义)
    
    [dmlink2]    #自定义
    mal_inst_name  = DMSERVER2   #B主机的实例名,和dm.ini中的INSTANCE_NAME保持一致
    mal_inst_host = 192.168.6.6   #B主机的ip地址
    mal_inst_port = 5236        #B主机的实例端口,和dm.ini中的PORT_NUM保持一致
    mal_host = 192.168.6.6   #B主机的ip地址
    mal_port = 61142      #系统监听TCP连接端口(自定义)
    

    注意:两台机器的dmmal.ini必须一致,A和B的实例名不能一样

    2.2.2 修改配置文件


    修改两台主机的dm.ini文件中的MAL_INI参数,改为1

     

    2.2.3 重启数据库实例


    重启两台主机的数据库实例

     

    2.2.4 创建测试表


    在A主机创建一个表test用来让B主机用外部连接进行操作
    (1)登录进入数据库实例


    (2)创建表test


    在B(192.168.6.6)主机建立外部连接操作A(192.168.6.7)主机

    建立外部连接语法如下:

    create public link 外部连接名 connect with A主机登录用户 identified by A主机登录用户密码 using 'A主机ip/a主机系统监听TCP连接端口'

    实际建立如下:

     

    2.2.6  结果测试

    在B主机中使用外部连接操作刚才在A主机中建立的数据库,插入一条数据,并提交。


    然后去A主机中查询一下数据


    达梦DBLINK搭建成功!

     

    3、dm到oracle搭建dblink

     

    3.1 准备条件

    (1)一台数据库机器A安装了oracle数据库并启动监听。

    (2)一台机器B安装了DM数据库和oracle数据库客户端。

    (3)关闭防火墙和selinux。

    环境介绍

     

    数据库版本

    IP

    A

    Oracle Database 11g 11.2.0.4.0 - 64bit

    192.168.6.6

    B

    DM Database Server x64 V7 ENT

    192.168.6.111

    3.2 操作步骤

    3.2.1 oracle创建用户、测试表及启动监听,配置oracle客户端

     

    3.2.1.1  A(oracle)机器执行:

    (1) 连接数据库创建测试用户user01密码user01,创建测试表test

    create user01 identified by user01;

    grant dba to user01;

    conn user01/user01

    create table test (id int);

    insert into test values(1);

    commit;

    (2) 确认是否开启监听

    lsnrctl status

    lsnrctl start

    lsnrctl stop

     

    3.2.1.1  B(dm+oracle客户端)机器执行

    1.部署配置oracle客户端

     

    下载安装包解压到B(dm)机器:

    根据访问数据的版本下载对应客户端。每种包又分.zip、.rpm两种格式包,zip包相当于解压后免安装版,rpm包需要安装版。

     

     

    (1)打开网页链接打开下图

    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

    (2)下载basic,sqlplus,sdk包,根据oracle的版本号下载如下图所示的压缩包(示范的oracle版本为11.2.0.4),需要oracle账号可以免费注册。

     

     

    (3)下载的压缩包解压并合并

     

    (4)使用xftp拷贝到达梦数据库安装路径/dmdbms/bin目录下面,数据库安装在linux上,需要赋予775的权限,部分如下图所示。

    [dmdba@meng2 ~/dmdbms/bin/instantclient_11_2]$cp * ../
    
    [root@meng2 bin]# chmod 755 *

     

    3.2.2 配置dm到数据库链接

    3.2.2.1 将libclntsh.so.11.1 复制一个名字为:libclntsh.so  ,如下图所示:

    /home/dmdba/dm/dmdbms/bin/>cp libclntsh.so.11.1 libclntsh.so

     

    3.2.2.2 在上述目录新建目录

    /home/dmdba/dm/dmdbms/bin/>mkdir -p ./network/admin

    3.2.2.3 在上述目录新建tnsnames.ora文件,并编辑数据库链接信息

    PROD=   --链接名
      (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.6.111)(PORT = 1521)) 
    -–A(oracle)机器
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID =PROD)
        )
      )
    

     

    3.2.2.4 配置环境变量

     

    
    [dmdba@meng2 ~]$vi .bash_profile
    
    export ORACLE_HOME=/home/dmdba/dm/dmdbms/bin
    
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    
    export LD_LIBRARY_PATH=$ORACLE_HOME
    
    export PATH=$ORACLE_HOME:$PATH
    
    
    
    source .bash_profile

     

     

    3.2.3 测试数据库dblink连接

    3.2.3.1 只有能够连接上oracle才能创建dblink

    sqlplus username/passwd@PROD

    3.2.3.2 创建dblink,测试连接

    方法一:
    
    create or replace link LL connect 'ORACLE' with user01 identified by "user01" using 'PROD';
    
    方法二:
    
    create or replace public LINK test connect 'ORACLE' with user01 identified by "user01"
    
    using '(DESCRIPTION =
    
        (ADDRESS_LIST =
    
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.111)(PORT = 1521))
    
        )
    
        (CONNECT_DATA =
    
          (SERVER = DEDICATED)
    
          (SID = PROD )   
    
        )
    
      )';

     

     

    3.2.4 结果测试

    测试能否查询oracle的数据

    select * from test@test

    4、总结

     综上,达梦数据库同构和异构之间的dblink搭建完成。通过验证环境工作正常,根据整个搭建过程总结以下几点:

    1.达梦到达梦数据库之间的dblink依赖于dmmal系统,达梦通过mal系统实现redo日志传输,以及其他实例间的消息通讯。达梦到达梦之间的dblink搭建较为简单。

    2.达梦到oracle数据库之间的dblink搭建稍微复杂,需要配置oracle客户端及环境变量,确保通过客户端可以连上服务端。

    3.搭建过程中注意关闭防火墙和selinux。

     

     

     

     

     

     

    展开全文
  • 达梦数据库dblink

    2021-02-03 13:01:33
    DBLINK(Database Link)数据库链接,可以理解成是一个通道,如果想通过本地数据库去访问另一个数据库中表是的数据时,本地数据库中要创建远程数据库DBLINK,通过DBLINK本地数据库可以访问远程数据库中的表的数据,...

    一、什么是DBLINK
    DBLINK(Database  Link)数据库链接,可以理解成是一个通道,如果想通过本地数据库去访问另一个数据库中表是的数据时,本地数据库中要创建远程数据库的DBLINK,通过DBLINK本地数据库可以访问远程数据库中的表的数据,DM的DBLINK借助达梦自身的MAL系统实现。

    二、测试环境
    实例名                       IP地址        
    DMSERVER                 10.12.21.104
    V103                        10.12.21.103

    要求具备条件1:
    两台服务器之间能通,且将两台数据库服务器之间防火墙,SELINUX 关闭。(本人在实验的时候做了一次蠢事,防火墙使用service iptable stop 停掉后,后面有重启主机忘记再次停了,之后做DBLINK的测试,死活不行,建议在开始就将防火墙给禁掉。chkconfig iptables off)

    要求具备条件2:
    达梦安装需要用dm.key 否则DBLINK配置开启MAL不成功,必须进行安全功能设置,如果不配置dm.key就无法进行安全功能配置。

    要求具备条件3:
    两台数据库的实例名不能一致,如果一致则配置MAL时会报错,达梦数据库无法启动

    要求具备条件4:
    数据库字符集一致
     

    查看instance_name

    配置dmmal
    1)修改服务器dm.ini的配置文件

    2)配置dmmal.ini

    3)重启数据库服务
    [dmdba@v3 V103]$ DmServiceV103 start
    Starting DmServiceV103:                                    [ OK ]
    [dmdba@v4 DAMENG]$ DmServiceDM1 start
    Starting DmServiceDM1:                                     [ OK ]

    4)检查mal端口

    $netstat -an|grep 5232

    5)创建dblink

    在104上创建访问V103数据库的dblink

    SQL> CREATE or replace PUBLIC LINK V103 CONNECT 'DAMENG' WITH SYSDBA IDENTIFIED BY SYSDBA USING '10.12.21.103/5232';
    操作已执行
    已用时间: 35.196(毫秒). 执行号:106.
    SQL> select * from dba_db_links;

    行号     OWNER  DB_LINK USERNAME HOST              CREATED                                                                                             
    ---------- ------ ------- -------- ----------------- ----------------------------------------------------------------------------------------------------
    1          PUBLIC V103    SYSDBA   10.12.21.103/5232 2021-02-03 11:52:37.378232

    6)测试dblink连接

    7)删除dblink

    drop public link V103;

    可能报错:

    1)seLinux、防火墙关闭

    [root@v3 ~]# systemctl stop firewalld
    [root@v3 ~]# systemctl disable firewalld
    [root@v3 ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    [root@v3 ~]# service iptables stop
    Redirecting to /bin/systemctl stop iptables.service
    Failed to stop iptables.service: Unit iptables.service not loaded.

    2)字符集不一致导致的。

    此处的端口是mal_port而不是数据库端口

    3)无区分大小写,

     

    展开全文
  • Oracle-不同数据库DBLINK导数据使用说明
  • 数据库dblink设置错误

    2013-10-21 21:43:11
    先说一下怎么配置oracle数据库dblink 其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。  创建可以采用两种方式:  1、已经配置本地服务  ...

    先说一下怎么配置oracle数据库dblink


    其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。
            创建可以采用两种方式:
             1、已经配置本地服务
            create public database link fwq12 connect to fzept identified by neu using 'fjept'        

    CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
          2、未配置本地服务
    create database link linkfwq
       connect to fzept identified by neu
       using '(DESCRIPTION =
         (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
         )
         (CONNECT_DATA =
           (SERVICE_NAME = fjept)
         )
       )';
    host=数据库的ip地址,service_name=数据库的ssid。

    ------------------------------------------------------------------------------------------------------------------------------

    数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先 
    在每个数据库服务器上设置链接字符串。 
      
      1、  链 接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名: 
      
    2、创建数据库链 接, 
    进入系统管理员SQL>操作符下,运行命令: 
      
    SQL>create public database link beijing connect to scott identified by tiger  
                using ''tobeijing''; 
      
    则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据: 
      
    SQL>select * from emp@beijing;  
      
    这样就可以把深圳和北京scott 用户的数据做成一个整体来处理。 
      
    3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym 
      
    SQL>create synonym bjscottemp for emp@beijing; 
      
    于 是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。 
      
    4、查看所有的数据库链接,进入系统管理 员SQL>操作符下,运行命令: 
      
    SQL>select owner,object_name from dba_objects where object_type=''DATABASE LINK''; 


    刚好用到, 取消dblink
    3、查看数据库连接
    sql> select owner, db_link from dba_db_links; 
    ower    db_link
    public   TEST.US.ORACLE.COM

    4、 删除数据库连接
    先从第三步中查看数据库连接,取得其db_link的名称

    sql>drop public database link TEST.US.ORACLE.COM
    数据库连接巳丢弃

    比如:在一个数据库B中访问数据库A中的 表:

    1.在数据库B中创建数据库链:
    CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 identified by 密码 using ''连接说明''
    其中,连接说明必须为如下格式:
    (DESCRIPTION =
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME=ORCL)
    )
    )

    2. 访问链接数据库中的对象的语法:
    用户名.数据库对象@数据库链接名

    3.查看所有的数据库链接:
    select owner,object_name from dba_objects where object_type=''DATABASE LINK'';

    4. 例子:
    创建一个数据库链接:
    CREATE PUBLIC DATABASE LINK DBL_ORCL CONNECT TO province identified by province_pwd 
    using ''(DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
    )
    (CONNECT_DATA =
    (service_name=ORCL)
    )
    )'';

    在B库中执行下面的语句,访问A库中的 province.tj_ryxx 表:
    select * from province.tj_ryxx@DBL_ORCL;

    (以上是转载)

    但是今天在配置dblink的时候就出现了用户名和密码错误的问题,总结如下:


    A : 你要连接的机器
    B:  创建db link的机器
    1, using后面的串必须是B的连接串;因为你是要在B上,创建A的db link的;--开发者比较容易犯这个错,因为总会连接很多的其他开发者的机器
    2, 密码用""引起来,这个原因很奇怪,没有见过; --ora-01017,ora-02063, 用户名和密码错误;
    3, A和B的机器的GLOBAL_NAMES需要一样,数据库的默认设置;--ora-12154,这个错误网上的解答就比较多了;
        但是现在是A和B的不一样,所以我把A和B上执行了: ALTER SYSTEM SET GLOBAL_NAMES=FALSE;


    展开全文
  • 先说一下怎么配置oracle数据库dblink 其实dblink和数据库中的view差不多,建dblink的时候需要知道待读取数据库的ip地址,ssid以及数据库用户名和密码。  创建可以采用两种方式:  1、已经配置本地服务  ...
  • 达梦数据库DBLINK初探

    2021-05-26 19:47:16
    通过多台数据库主库间的相互通讯,用户可以透明地操作远程数据库的数据,使应用程序看起来只有一个大型数据库。用户远程数据库中的数据请求,都被自动转换为网络请求,并在相应结点上实现相应的操作。用户可以建立一...
  • oracle数据库dblink连接

    2021-06-10 10:46:17
    数据库监听服务:lsnrctl start; lsnrctl stop;lsnrctl status; 数据库启动:dbstart;dbshut;
  • Oracle数据库DBLink

    2012-06-17 22:01:40
    当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建...
  • 达梦数据库 DBLINK问题

    2016-01-08 06:58:46
    小弟使用DBLINK做俩达梦数据库间的同步,使用JOB调用存储过程,能够将数据同步插入。但是运行一段时间后,数据库服务会死掉,求教!!!!看网上说oracle的link 一般都需要用完之后关闭link,请问达梦的这个是怎么写...
  • 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建...
  • oarcle数据库dblink 创建

    2013-12-13 18:28:16
    当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建...
  • 添加dblink拓展 执行 create extension dblink; 拓展中出现dblink时,表示添加拓展成功。 创建dblink SELECT dblink_connect('myconn', '...dbname为你要远程操作的数据库的名字。 查询 select * from dblink(...
  • 如何分析数据库dblink 连接情况

    千次阅读 2017-10-23 11:13:09
    服务器A 进程有大量业务操作通过dblink 连接到数据库B:dblink 经常被滥用,dblink 使用完后,开发人员并会主动去关闭dblinke 连接,而数据库自己也不会主动去端口dblink 连接,而该dblink 会占用一个本地连接 ...
  • 方法二:可使用功能ora数据库DBLINK功能,实现跨库查询; 下面直接copy其内容分享: 首先了解下环境:在tnsnames.ora中配置两个数据库别名:orcl(用户名:wangyong 密码:1988)、orcl2(用户名:wangyong
  • 在目标数据库建一张临时表Create global temporary table test3 on commit preserve rows as select * from TEST1 ;在目前数据库执行insert into test3 select * from test1 where username='4444';MERGE INTO TEST2...
  • 数据库dblink简介

    千次阅读 2010-10-21 15:17:00
     数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先在每个数据库服务器上设置链接字符串。 <br /> 1、 链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,...
  • AB两个服务器,在A服务器建立了链接B库的dblink,B库有6个表,只有两个表不能通过跨库查询,其他的表都可以实现跨库查询, 跨库查询语句如下: select * from stu@Blink 报错如下ORA-02068: following severe error ...
  • 达梦数据库dblink(外部链接对象)

    千次阅读 2019-02-18 11:07:00
    达梦数据库外部链接外部链接简介创建外部链接创建到DAMENG的外部链接创建到ORACLE的外部链接使用外部链接 外部链接简介 达梦数据库的外部链接是一种数据库的实体对象,记录了远程数据库的连接信息,用于建立与...
  • 11G数据库版本号:11.2.0.1.0  10G数据库版本号:10.2.0.1.0  查询没问题,调用存储过程就会报错, 错误代码:  错误:ORA-04052:在查找远程对象MRP.WMS_INTERFACE_P@WMS.COM.CN时出错  ORA-00604:递归 SQL...
  • Oracle同义词与数据库dblink

    千次阅读 2011-04-11 15:59:00
    参考:http://blog.csdn.net/xyjnzy/archive/2007/12/04/1915427.aspx<br />    一、DBLINK相关操作 两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个...
  • create or replace view SCADA_NET_HISTORY_V as select a1."DeviceName", a1."DeviceNo", m1."SeckId", m1."MeterName", t1."TypeName", c1."ChannelNo", ...and m2."MeterId"=c2."MeterId
  • 我想访问远程服务器的数据库来更新本地服务器的数据库。 host=192.168.1.67 user=root password=123456 dbname=postgres 然后如何建立dplink (PostgreSQL文件中已经有了dplink.sql 和 dplink.io)
  • 创建dlink:1.确定用户是否有创建DBLink的权限:select * from user_sys_privs where privilege like upper('%DATABASE LINK%');...补充:查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需
  • 在之前的两篇文章中,章郎虫分别介绍了dblink和postgres_fdw两个扩展。今天我在这里初略地说下使用dblink和postgres_fdw后的实际感受和区别。 postgres_fdw远程可写功能是9.3版本出来后才新加的,而dblink也可以在...
  • 产品名字--随意起个   ------------------------------------------------------------------------------------------------------------ 安全项配置
  • 关于oracle数据库建立dblink远程其他数据库 业务场景: db1数据库中的tb1数据表里的数据实时同步至db2数据库中的tb2数据表里。 一、建立dblink 在db1数据库建立dblink,如下: create public database link ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,741
精华内容 1,096
关键字:

数据库dblink