ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 1、 引言

1、 引言

原创 Linux操作系统 作者:tcczxhj 时间:2009-03-06 16:39:56 0 删除 编辑

1 引言

  Oracle9i开始推出streams,用于提供灵活的复制和容灾解决方案。但是9istreams配置相当的麻烦,少说也有十几个步骤,还容易出错。10gR2则将整个配置过程封装在几个简单的PL/SQL过程中,使得配置过程大大的简化。但是实际的配置步骤还是一样的,Oracle只是利用这些PL/SQL过程先生成对应的脚本,然后再执行脚本进行配置。这个过程可以全自动完成,也可以先将脚本生成到某个指定的目录,我们根据需要修改脚本,然后再执行脚本进行配置,这样就灵活又方便。

Streams的原理:利用高级队列技术,通过logmnr技术从oraclelog中解析出数据,将归档日志解析成DDLDML语句,然后传递到目标库并应用,从而将源库的数据复制到目标库,从而实现数据库之间的同步。当然,复制可以是双向的,也可以是单向的。双向复制还需要考虑数据冲突的问题。而多源复制其实是双向复制的基础上衍生而来的。

解析归档日志这种技术现在应用的比较广泛,Quest公司的shareplex软件及DSG公司的realsync都是这样的产品,一些公司利用这样的产品做应用级的容灾。但shareplex或是realsync都是十分昂贵的,因此你可以尝试用Stream这个Oracle提供的不用额外花钱的功能。Oracle Stream对生产库的影响是非常小的,从库可以是与主库不同的操作系统平台,你可以利用Oracle Stream复制几个从库,从库可用于查询、报表、容灾等不同的功能。

整个的复制过程可以分成三个步骤:捕获(capture),传播(propagation)和应用(apply),利用高级队列(advance queue)来将这三个步骤的数据串起来,通过在步骤中定义不同的规则(rule)来控制需要复制的数据。复制可以基于全库,基于表空间,基于用户或者基于表,提供了相当大的灵活性。

描述一下复制的简单过程如下:

首先捕获进程从日志解析出数据,封装在一个个的逻辑改变记录(LCR:logical change record)中,将这些lcr压进捕获队列中,然后传播进程从捕获队列取得数据压进应用队列中,最后应用进程从应用队列取得LCR并应用到目标库中。 LCR可以分为row LCR(DML操作记录)DDL LCR(DDL操作记录),所以streams复制可以支持DDL操作的复制。

Streams复制需要先进行一次初始化建立基线,然后在此基础上复制增量数据。对于全库的初始化,可以使用RMAN。表空间复制的初始化可以使用transport tablespace,而对于用户复制和表复制,则可以使用exp/imp或者expdb/impdp

说明:该文为根据网络上相关文章资料结合自己的实践整理修改而成。版权属原网络作者所有。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10804699/viewspace-563090/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-06

  • 博文量
    47
  • 访问量
    100713