当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-05-26

    本文导语: 利用dblink 做Oracle到oracle的定时同步,以刚为卡中心做的一个同步为例 推荐阅读: 利用Oracle DBLink进行表同步 Oracle DBLink使用 Oracle通过DBLink访问GreenPlum  ORA-01017/ORA-02063 DBLink建立错误问题分析及解决 Oracle 创建DBLink 报错:ORA-01017...

利用dblink 做Oracle到oracle的定时同步,以刚为卡中心做的一个同步为例

推荐阅读:

利用Oracle DBLink进行表同步

Oracle DBLink使用

Oracle通过DBLink访问GreenPlum 

ORA-01017/ORA-02063 DBLink建立错误问题分析及解决

Oracle 创建DBLink 报错:ORA-01017、ORA-02063

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;


    
 
 

您可能感兴趣的文章:

  • Linux系统下利用java连接Oracle 10G
  • linux c 怎样利用pro*c/c++操作 win2000 下 oracle 谢谢
  • 利用多个转储文件导出大量Oracle数据
  • Oracle利用存储过程造数据
  • 怎样利用JDBC连接oracle数据库?谢谢!!!
  • 利用windows任务计划实现oracle的定期备份
  • 利用ASP来实现Oracle数据记录的分页显示
  • 有关java.sql.ResultSet 利用SetDate往 oracle 中插入时间和日期的问题!!
  • 利用Oracle9i XML DB来解决复杂编码问题
  • C#利用ODP.net连接Oracle数据库的操作方法
  • 利用可更新ResultSet的updateBinaryStream()可以把图片存到mySql数据库,却不能存到Oracle数据库,怎么办?
  • Oracle 低权限数据库账户得到 OS 访问权限 提权利用
  • 利用导出/导入功能实现重新组织Oracle数据库表空间
  • Oracle10g使用sql获得ADDM报告以及利用ADDM监控表的dml情况
  • Oracle数据库中利用ASSM改善分段存储
  • 利用Oracle threshold(度量阀值)监控表空间
  • linux下利用oci开发oracle的问题?
  • 如何利用crond通过NTP同步系统时间
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样实现利用fprintf,输出定长字串,位数不足时在左侧填入指定字符填充。。
  • 利用ftp,怎样在远程主机上实现类似cp的功能???
  • 求助!!!怎么实现micro2440利用独立的IP地址上互联网?
  • PXA270下利用IIS通道实现音频,重复启动死机问题求解
  • 如何利用ebtables实现Vlan Qos
  • 利用文件系统过滤驱动实现 类似还原卡功能 的原理是什么?
  • Linux下利用MC35实现GPRS上网的问题
  • 如何利用gawk实现下列功能?
  • 利用smsmanager实现后台发送短信示例
  • C#利用反射来判断对象是否包含某个属性的实现方法
  • 我怎么利用smb实现与window的共享啊
  • 利用C++实现从std::string类型到bool型的转换
  • 菜鸟问题:请大家用简单的代码描述一下,如何利用接口实现多重继承!
  • 如何利用java实现屏幕拷贝的问题
  • 利用MySQL函数实现判断视频扩展名的代码
  • python利用elaphe制作二维条形码实现代码
  • 利用iptables实现简单路由的问题
  • 利用管道实现sudo命令免输入密码的方法
  • 不太明白,利用RMI实现JAVA分布式应用 和 EJB实现JAVA分布式应用有什么区别。
  • 求推荐Linux下利用epoll实现大规模并发服务器架构设计与实现方面的论文or书籍。
  • linux c下利用srand和rand函数生成随机字符串
  • 请问:Linux下用C编程计算CPU利用率和内存利用率?
  • linux下利用(cat,strings,head,sed)命令生成随机字符串
  • 在2003下利用vmware安装了linux,又利用host-only方式上了网,问题如下多谢指点!!!
  • Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行
  • 大虾 紧急求助!!!!如何求得当前机子的处理器利用率和内存利用率?
  • 如何利用libpcap和Python嗅探数据包
  • 利用ASP来实现Oracle数据记录的分页显示 iis7站长之家
  • windows堆栈溢出利用的七种方式
  • 求RADIUS的动态分配IP的问题(利用IPPOOL)
  • iowait和cpu利用率的权衡问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,