数据库同步过程中既要保证数据库装载的效率,又要保证数据库每个交易的原子性,即保证一个事务中多条SQL语句执行的成功出于以上目
数据库同步过程中既要保证数据库装载的效率,又要保证数据库每个交易的原子性,即保证一个事务中多条SQL语句执行的成功出于以上目的,我们选择多表并发加多断点方式来进行同步,原理是取出需要同步的事务,按照表及SQL语句量进行划分,分给不同的进程来执行,每个进程有一个断点,当一个表的某一条SQL语句执行出错的时候,该进程会记录下此断点,该表停止同步,其他表的数据同步继续进行,当手工处理完该表出错的SQL语句后,该进程根据标志把错误表需要同步的SQL语句重新执行或跳过,这样同步进程会继续,并且个别表的错误不会影响整体的同步
那么原子性如何能够在同步过程中保持一致呢?借助网格断点就可以达到该目的。网格断点实际上就是把交易的SCN号和每条SQL语句的表顺序进行关联,记录该SCN号中的某条SQL语句执行情况的流水文件,日志分析进程按照表名创建多个网格文件,,内容是SCN号以及执行语句,按照SCN号来排序,这样每个同步进程就可以读取属于自己的相关表文件,并按照SCN号的顺序进行并发装载,这样保证同一时点的数据是按照SCN号进行装载的,保证了在备库上查询统计的一致性。
本文档主要讲述的是Subversion安装使用说明文档;Subversion是一个自由/开源的版本控制系统,正逐步替代CVS。Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。 Subversion可支持版本化的目录、真实的版本历史、原子提交、版本化的无数据、可选的网络层、一致的数据操作、高效的分支和标签操作和可修改性。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
当每个进程执行成功后就会修改自己对应的断点文件,所以当系统出现异常的时候我们就会检查所有的断点文件,这样数据库就可以根据断点情况继续同步,对于不同的DDL和DML语句进行相应的错误处理。










