科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道逻辑备用数据库和Streams的区别及常见性能问题

逻辑备用数据库和Streams的区别及常见性能问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

对于逻辑备用数据库LDG和Streams,其实很多方面是类似的,尤其是downstream模式下的复制,都是利用log miner技术,对日志进行分析,从而捕获数据的变化,并把变更复制到目标数据库。

来源:博客园 2008年10月29日

关键字: 数据库 备用数据库

  • 评论
  • 分享微博
  • 分享邮件

  对于逻辑备用数据库LDG和Streams,其实很多方面是类似的,尤其是downstream模式下的复制,都是利用log miner技术,对日志进行分析,从而捕获数据的变化,并把变更复制到目标数据库。

  逻辑备用数据库和streams比较大的区别是:

  streams支持把多个库的数据汇总到一个数据库中而LDG不支持;

  streams支持双向复制,而LDG不支持......

  我们在实施逻辑备用数据库和streams的时候,经常发现,如果有超大的transaction的时候,数据同步就会很慢,尤其是一条语句要修改几十上百万的时候。

  如何进行性能优化呢?我这里有些思路,也希望大家能够补充:

  1、对大表或操作频繁的表需要提供关键字或唯一索引

  因为如果没有主关键字或唯一索引,需要SUPPLEMENTAL LOG来识别每条变化的记录,这样,你会发现,产生的归档日志量会很多,而且,在目标数据库应用数据变化的SQL时候,由于没有索引,SQL执行也会非常慢

  2、减少huge transaction的出现

  如果你的生产系统经常有一条SQL语句修改几十、上百万条记录的情况,在设计LDG或Streams的时候,就需要留心了。一般的建议是,把这种业务修改成光标的循环,提高commit的频度,从而避免huge transaction

  3、对于downstreams来讲,避免无用数据变更的复制

  有很多系统,都有类似月末结帐的功能,需要进行大量的计算,最后,生成一些最终的结果。如果把所有中间表的数据变化全部复制过去,就会消耗大量的资源、性能也会受到影响。但很多时候,可能真正的需求仅仅是最终的结果表。这个时候,你就可以定义负规则,把不需要关注的表,排除在复制之外

  4、调整并行参数或一些阀值

  有一些参数,可以影响性能,如LDG中的_eager_size等,通过参数调整来影响性能,需要十分小心,这里我就先不详细介绍了。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章