利用DB Link两步搞定Oracle两个数据库间的表同步

Posted 零度anngle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用DB Link两步搞定Oracle两个数据库间的表同步相关的知识,希望对你有一定的参考价值。

一、实现目标:

         要实现从源表:AAA到目标表:BBB的数据同步。

二、在目标机上建立Oracle DB Link:


     1、 在network/admin/tnsname.ora文件中加入源库的连接信息,如:

AAA=
  (DESCRIPTION 
=
    (ADDRESS 
= (PROTOCOL = TCP)(HOST = 10.5.1.3)(PORT = 1521 ))
    (CONNECT_DATA 
=

      (SERVER 
=  DEDICATED)
      (SERVICE_NAME 
=
 AAA)
    )
  )


    2、在目标机上用sqlplus user/pwd登录。
    3、用如下命令建立DB Link:

create public database link AAA_LINK connect to user identified by pwd using 'AAA' ;

        命令说明:
              CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
              如果建立成功,会提示:Database link created。

三、使用如下脚本,即可同步数据表:

# !/bin/sh
# to sync table A to BBB database from AAA database

sqlplus user/pwd@BBB <<EOF    #这里是BBB上的数据库和密码还有实例名,请按照实际情况修改
truncate  table A;
insert into A 
select * from b_schema.A@AAA_LINK#这里是指向要同步的来源表,表名必须是<表所有者>.<表名>@<dblink name>

commit;



        PS:需要DB支持Advanced replication功能,是否支持,可用如下SQL查看:

select * from v$option where PARAMETER='Advanced replication';

如果是返回True就表示支持。

以上是关于利用DB Link两步搞定Oracle两个数据库间的表同步的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中创建db link 已经确定创建成功了。在创建视图时为啥还会报不能找到db link呢?

Oracle建立DB-LINK

oracle 使用db_link 导入导出小结

Oracle Database Link 的创建和使用小见

两步搞定 TLS1.2 + HSTS + HTTP/2 配置

突出重围:Oracle 10.2.0.5应用SCN补丁解决DB Link预警实践