利用dblink实现oracle对oracle数据库的同步

简介: 利用dblink 做oracle到oracle的定时同步,以刚为卡中心做的一个同步为例1、创建需要的dblink连接的数据库(若已经有,则不需要) 例:查看 dblink : select * from dba_db_links; 创建 dblink : create database link ECARDRYXX connect to WPENG usin
利用dblink 做oracle到oracle的定时同步,以刚为卡中心做的一个同步为例

1、创建需要的dblink连接的数据库(若已经有,则不需要)
 
例:
查看 dblink :  select * from dba_db_links; 
 
创建 dblink :
 
create database link ECARDRYXX
  connect to WPENG
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 202.120.85.118)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ORA92)
    )
  )';
 
 
2. 创建需要同步到对方数据的视图:
 
例:
create or replace view ryxx as
select ryjbxx.userid outid, xyzzjg.bmmc college, xszzjg.bmmc departname, ryjbxx.major,
       ryjbxx.typeof, ryjbxx.sfsf, ryjbxx.cn, ryjbxx.email, decode(sys_user.STATUS, '2', 'Yes', '4', 'No', 'No') inetUserStatus
       from
(
select t1.xh userid, t1.xym , t1.xsm , t2.zymc major,
       'student' typeof, t1.sfsf sfsf, t1.xm cn, t1.dzxx email
       from idc_u_xs.xs_xsjbxx t1, idc_u_jwmis.jw_zyxx t2
       where  t1.zyh = t2.zydh(+)                                     -- 本科生
union all
select t1.xh userid, t1.xym, t1.xsm, t2.zymc, 'student' typeof, '' sfsf, t1.xm cn, t1.email email
       from idc_u_yjs.yjs_yjsjbxx t1, idc_u_yjs.yjs_dict_bsxkzydm t2
       where t1.zydm = t2.zydm(+)                                     -- 研究生
union all
select t1.zgh userid, '' xym, '' xsm, '' major, 'teacher' typeof, '' sfsf,  t1.xm cn, t1.dzxx email
       from idc_u_rs.rs_zzryjbxx t1                                   --  在职人员
union all
select t1.zgh userid, '' xym, '' xsm, '' major, 'teacher' typeof, '' sfsf,  t1.xm cn, t1.dzxx email
       from idc_u_rs.rs_xjrylsb t1                                    -- 新增人员
) ryjbxx, idc_u_pub.sys_user, idc_u_rs.rs_zzjg xyzzjg, idc_u_rs.rs_zzjg xszzjg
where
      ryjbxx.userid = sys_user.userid
      and ryjbxx.xym = xyzzjg.bmbh(+)    --  学院组织机构
      and ryjbxx.xym = xszzjg.bmbh(+)    --   院系组织机构

3. 创建需要执行同步的pl/sql :
 
例如:
   为了使用更模块化,更集中,建议同面向同一个库的pl/sql,写在同一个包下。
 
CREATE OR REPLACE PACKAGE ECARD IS
       PROCEDURE RYXXSYNC;
END;
 
CREATE OR REPLACE PACKAGE BODY ECARD IS
       PROCEDURE RYXXSYNC IS
       BEGIN
            delete from wpeng.ryxx@ecardryxx; --删除数据
            insert into wpeng.ryxx@ecardryxx(outid, college, departname, major, typeof, sfsf, cn, email, inetuserstatus)
                   select outid, college, departname, major, typeof, sfsf, cn, email, inetuserstatus from ryxx;  --插入最新数据
       END;
END;
 

4. 创建job,定时执行同步:
 
例:
打开 sql命令窗口:
 
variable ryxxsyncjob number; 
 
 
begin
     dbms_job.submit(:ryxxsyncjob, 'ECARD.RYXXSYNC;',
                                   SYSDATE, 'TRUNC(SYSDATE) + 1 + 2/24');  --每天凌晨两点执行。
     commit;
end;


目录
相关文章
|
24天前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
28天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
38 7
|
28天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
27 6
|
28天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
21 5
|
2月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
37 3
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
2月前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
32 1
|
17天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
32 1
|
19天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
32 4
|
26天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
139 1

推荐镜像

更多