ORACLE流复制

ORACLE流复制
Author: Rainny
Date:2009-5-3


ORACLE流复制 (Stream Replication)9I以后推出的 ,在银行 ,电信等大型系统中应用广泛 .相对于 ORACLE前期的复制技术 ,流复制是新推出的技术 ,存在一些 BUG,但它是 ORACLE未来数据同步的趋势 .原因如下 :
(1)相当于实体化视图和高级复制 ,流复制对于 PRIMARY数据库性能的影响更小
(2)流复制相对于高级复制来讲 ,所需的硬件成本要小
(3)流复制更加灵活 ,支持异构数据库对象的同步

数据同步一直是数据库技术中投资成本比较大 ,维护难度大的一点 .我们拿生活中的例子来说 ,最活生生的实例就是银行系统 .我们知道 ,银行系统的数据量非常大 ,所以 ,在全国 ,任何银行都有很多数据中心 ,哪怕是一个省一个数据中心 (像北京 ,上海 ,广州 ,深圳等这样的一线的大城市一个市需要一个数据中心 ),中国大陆就会有 31个数据中心 .最理想的状况是只有一个数据中心 ,这样就不存在同步的问题 ,可是 ,这在现实中不允许 ,由于数据量大 ,如果只使用一个数据库 ,性能无法承受 .银行系统需要同步 ,你比如 ,最简单的例子 ,我们跨省存取款 ,或跨行存取款 ,各个数据中心之间就需要同步来进行结算 ,所以 ,银行要购置大量的昂贵设备来进行这样的数据同步 .银行为什么要对异地存取款收取手续费 ,原因就在此 .同样 ,银行之所以要对借记卡收取年费 ,原因也在于成本 ,对于一个银行帐户 ,即使你很少交易,可是银行要维护这些帐户数据 ,所以需要在硬件存储 ,人力技术上花大量的金钱.大型跨国公司的IT系统和银行的例子类似.另外一个生活中的例子就是电信的系统 ,全国的手机用户这么多 ,而电信和移动需要提供的服务又这么多 ,刚就话费的管理和结算 ,电信公司就要花很多的成本来维护很多省公司的数据中心 ,而各个数据中心的数据同步 ,更需要投很多的钱 .
我们来回顾一下 ORACLE数据同步的技术 .数据同步和复制的概念其实是重叠的 ,数据复制 ,一大部分原因是为了同步 .
(1)DATAGUARD:物理 STANDBY本质是日志传输和应用重做 (介质恢复 ),逻辑 STANDBY本质上是日志挖掘( log miner
(2)实体化视图 :ORACLE早期的版本称为快照 (SNAPSHOT),通过实体化日志捕获主表的变化 ,然后通过刷新机制传送到另一端 .
(3)高级复制 :分两种 :多主体双向同步和实体化视图复制 .多主体实时双向同步本质上是触发器加队列 (TRIGGER+QUEUE),对硬件要求比较高 ,对主数据库的性能也影响也比较大
(4)流复制 :本质上是日志挖掘 (通过 LOG MINER捕获主数据库的逻辑变化记录 LCRs,通过传播,转换成 SQL应用到复制的另一端 )加队列 .原理上和逻辑 STANDBY相似 .只不过逻辑 STANDBY是整个数据库的复制 ,而流复制可以是单个数据库对象的复制 ,所以比逻辑 STANDBY更加灵活 ,所以支技异构数据库对象的同步 .ORACLE 10G对流复制进行了增强 ,通过实时的日志挖掘 ,流复制的性能提升不少 .
Oracle Streams enables information sharing. Using Oracle Streams, each unit of shared information is called a message, and you can share these messages in a stream. The stream can propagate information within a database or from one database to another. The stream routes specified information to specified destinations. The result is a feature that provides greater functionality and flexibility than traditional solutions for capturing and managing messages, and sharing the messages with other databases and applications. Streams provides the capabilities needed to build and operate distributed enterprises and applications, data warehouses, and high availability solutions. You can use all of the capabilities of Oracle Streams at the same time. If your needs change, then you can implement a new capability of Streams without sacrificing existing capabilities.
Using Oracle Streams, you control what information is put into a stream, how the stream flows or is routed from database to database, what happens to messages in the stream as they flow into each database, and how the stream terminates. By configuring specific capabilities of Streams, you can address specific requirements. Based on your specifications, Streams can capture, stage, and manage messages in the database automatically, including, but not limited to, data manipulation language (DML) changes and data definition language (DDL) changes. You can also put user-defined messages into a stream, and Streams can propagate the information to other databases or applications automatically. When messages reach a destination, Streams can consume them based on your specifications.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle复制Oracle Stream Replication)是一种高级的数据复制技术,用于将数据实时地从一个Oracle数据库复制到另一个Oracle数据库。它是Oracle数据库提供的一种异步复制解决方案,可以在分布式环境中实现数据的实时同步和复制Oracle复制基于日志(Redo Log)来捕获和传输数据库的变更信息。它利用数据库的归档日志或在线重做日志中的变更记录,将这些变更记录作为stream)传输到目标数据库,然后在目标数据库上重新应用这些变更,以保持源数据库和目标数据库之间的数据一致性。 Oracle复制具有以下特点: 1. 异步复制:源数据库和目标数据库之间的数据复制是异步进行的,即源数据库不需要等待目标数据库确认复制操作完成。这可以提高复制的效率和性能。 2. 实时同步:Oracle复制能够实现数据的实时同步,变更记录会尽可能快地传输到目标数据库,并在目标数据库上应用。 3. 灵活性:Oracle复制可以根据需求选择复制的对象(表、索引、触发器等),并且可以进行过滤、转换和转发等操作,以满足不同的业务需求。 4. 可靠性:Oracle复制提供了一些机制来确保数据的完整性和一致性,例如事务序列号(Transaction Sequence Number)和确认机制。 通过使用Oracle复制,用户可以在分布式环境中实现数据的实时复制和同步,支持各种应用场景,如数据备份、故障恢复、数据分发等。它是Oracle数据库中强大而灵活的复制解决方案之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值