`
nakupanda
  • 浏览: 416627 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle使用快照和触发器同步不同数据库中的表数据

阅读更多
假设有数据库db1和db2 , 表db1.t_task_msg, db2.t_task_msg
现在同步db1.t_task_msg数据到db2.t_task_msg

1, 在db2建立到db1的连接source_link
create database link source_link
   connect to db1_user identified by db1_pwd
   using
'(DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = orcl)
  )
  )'
;


2,在db1上创建要同步的表的快照日志
create snapshot log on t_task_msg;


3,在db2上创建快照并设置刷新时间
create snapshot sn_t_task_msg 
refresh fast Start with sysdate next sysdate with primary key
as select * from t_task_msg@source_link;
或
create snapshot sn_t_task_msg as select * from t_task_msg@source_link;
Alter snapshot sn_t_task_msg refresh fast Start with sysdate next sysdate with primary key;


4,创建一个触发器, 当快照有更新时, 更新db1中的数据
create or replace trigger tr_t_task_msg
  after  insert or update or delete on sn_t_task_msg
  for each row
begin
  if deleting then
      delete from t_task_msg where fid=:old.fid;
  end if;
  if inserting then
      insert into t_task_msg(fid,fserviceid,fcontent,fuserid,fstate,finserttime)
      values(:new.fid,:new.fserviceid,:new.fcontent,:new.fuserid,:new.fstate,:new.finserttime);
  end if;
  if updating then
     update t_task_msg set fserviceid=:new.fserviceid, fcontent=:new.fcontent, fuserid=:new.fuserid, fstate=:new.fstate, finserttime=:new.finserttime where fid=:old.fid;
  end if;
end tr_t_task_msg;
分享到:
评论

相关推荐

    利用oracle快照dblink解决数据库表同步问

    其中,Oracle快照(Snapshot)与dblink结合使用是一种常见的解决方案,用于实现两个不同数据库之间表数据的同步。本文将详细介绍如何通过创建Oracle的dblink以及利用快照技术来实现这一目标。 #### 创建dblink 为了...

    基于快照的Oracle数据同步研究.pdf

    Oracle的快照同步机制通过在源数据库创建数据表(例如,表A),并在目标数据库创建对应的快照,实现数据的实时或定时同步。在目标数据库中,快照通常是只读的,但通过触发器,可以将快照中的更改写入到目标数据库的...

    触发器实现数据同步-毕业设计

    首先,文章介绍了数据库和数据同步的基本概念。数据库作为存储和管理信息的重要工具,经历了从早期的文件系统到关系型数据库,再到分布式和异构数据库的发展历程。数据库语言,如SQL,是操作和查询数据的主要手段。...

    Oracle数据库中快照的使用

    Oracle数据库中的快照是一种强大的工具,它允许用户创建一个数据库中的表或视图的本地副本,这个副本可以用来加速查询并保持与源数据的一致性。快照是通过捕获源表的特定时刻数据状态来实现的,它可以是快速刷新或...

    oracle实现数据同步

    本文将详细介绍如何使用 dblink 和 Oracle 快照技术来实现在两台 Oracle 服务器之间进行数据同步,包括创建 dblink、设置快照、创建触发器等步骤,并提供实际的操作示例。 #### 二、创建 dblink 首先需要在目标...

    快照数据同步

    【快照数据同步】是一种确保两个数据库间数据一致性的重要技术,尤其在分布式系统和数据仓库环境中广泛应用。在数据同步过程中,源数据库中的数据变化会被实时或定时地反映到目的数据库中,以保持两者间的同步。 **...

    oracle 跨实例 数据同步

    本文将详细介绍如何在两台Oracle数据库服务器之间实现跨实例的数据同步,主要通过Oracle提供的DBLink和快照技术来实现。 #### 二、名词解释 - **源数据库**:即被同步的数据库,通常指的是原始数据所在的数据库。 -...

    oracle数据导入到Mysq库

    Oracle导出文件通常包含数据库对象的完整定义和数据,通过这个文件,工具可以更灵活地在不同时间点执行导入。 总结,Oracle到MySQL的数据迁移是一项技术性强且需谨慎操作的任务。"oracle2mysql"工具简化了这一过程...

    Oracle数据库快照的使用

    Oracle数据库快照是一种高效的数据同步和查询优化工具,它允许用户在不同的数据库之间创建和维护一个数据的子集,这个子集就是快照。快照是基于源表或视图的查询结果,可以用于减少数据传输量,提高查询速度,并在...

    Oracle数据复制技术研究.pdf

    Oracle数据库是全球范围内广泛使用的关系型数据库管理系统,其数据复制技术研究对于数据库性能优化、数据可靠性和数据一致性管理具有重要意义。文中提到的Oracle数据复制技术主要包括了数据复制类型和数据复制方法两...

    oracle数据库同步交换的方法-我收集的常见

    1. **物化视图(Materialized Views)**:物化视图是Oracle数据库提供的一种数据同步机制,允许将一个或多个表的数据复制到另一个数据库的物化视图中。通过在物化视图上添加触发器,可以实现实时或定期的数据更新,...

    使用Oracle物化视图实现数据同步复制的研究与实现.pdf

    【Oracle物化视图实现数据同步复制】 ...通过深入理解和正确使用物化视图,可以在不牺牲系统灵活性的情况下,保证数据的实时同步和一致性,这对于分布式数据库系统和数据仓库的构建具有重要意义。

    分布式数据库 case

    数据复制是分布式数据库中的关键技术,它允许数据在不同的数据库之间保持同步,确保数据的可用性和一致性。 数据复制可以分为三种主要类型: 1. 同一数据库内的数据复制:将一个表中的数据复制到同一数据库内的另一...

    oracle10g同步复制实例

    Oracle 10g 同步复制实例是一种在分布式环境中实现数据实时或近实时同步的技术,主要应用于需要在多个地点保持数据一致性的应用系统。在Red Hat Enterprise Linux Server 5.3上运行的Oracle Database 10g Enterprise...

    Oracle基于日志的数据备份

    CDC允许系统跟踪和捕获数据库中的数据变更,从而有效地进行数据迁移和同步,无需依赖复杂的算法或第三方工具。 在ETL(提取、转换、加载)流程中,传统的增量抽取通常涉及在数据上添加时间戳、全记录比对或关键字段...

    sql server 数据库同步

    合并复制与事务性复制相同,通常也是从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布服务器和订阅服务器上所做的后续数据更改和架构修改。订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次...

    Oracle复制技术在地震前兆元数据交换中的应用.pdf

    Oracle快照复制是一种数据库复制解决方案,它允许数据在多个数据库之间保持同步,特别适用于分布式系统中的数据管理和交换。在地震前兆元数据交换中,这一技术被用来确保各地震台站、区域中心和国家级中心之间的数据...

    Oracle数据库系统讲义.pptx

    Oracle数据库服务器的并行服务器选件和并行查询选件是针对大规模并行处理(MPP)和集群环境设计的,能实现并行查询和数据装载,显著提升处理速度。分布式选件则支持跨地域的分布式数据库功能,包括透明的数据复制和...

Global site tag (gtag.js) - Google Analytics