已有网友开始测试DataSync了, 先期在20张表上做测试, 这个测试是在正合场合使用的, 将运行在小型机上的数据准实时地拷到报表数据库中, 以分担小型机上的查询压力, 目前运行良好. 客户在享受到体验后, 要求另一个用户的几百张表, 也这样处理, 比较忙的表并不多, DataSync应当可以完成同步的任务, 但准备工作却不轻, 目前的源库的数据量有30GB.

    为了解决这个问题, 推出了物化视图助手程序(mviewlog), 可以生成准备工作中所需的脚本. 使用方法如下:

D:\>mviewlog
DataSync: Oracle Data Replication Utility, Release 3.0.1
(c) Copyright Lou Fangxin (AnySQL.net) 2010, all rights reserved.

Usage: mviewlog user/pass@tns

    以Oracle的SCOTT用户为例, 第一次运行时, 给出了生成物化视图日志的语句, 主要针对还没有建物化视图的并且有主键定义的表.

# Tables can be replicated by datasync:
  CREATE MATERIALIZED VIEW LOG ON EMP WITH SEQUENCE, PRIMARY KEY;
  CREATE MATERIALIZED VIEW LOG ON DEPT WITH SEQUENCE, PRIMARY KEY;

    建好物化视图日志后, 再运行一次, 就得到了其他所有的准备脚本.

# Log tables without proper index:
  CREATE INDEX I_OG$_DEPT_IND ON MLOG$_DEPT (SEQUENCE$$) ONLINE;
  CREATE INDEX I_OG$_EMP_IND ON MLOG$_EMP (SEQUENCE$$) ONLINE;

# Configuration file example of datasync utility:
  DEPT  # DEPTNO          # MLOG$_DEPT # DEPT
  EMP    # EMPNO          # MLOG$_EMP  # EMP

# Command for datacopy utility:
  datacopy user1=scott/tiger user2=<user2> table=DEPT
  datacopy user1=scott/tiger user2=<user2> table=EMP

    这三部份内容分别为: 为日志表建立索引的SQL语句, DataSync的配置文件内容, 及DataCopy初始化数据的命令. 使用DataSync同步数据的步骤为, 首先在源库上建立物化视图日志, 其次为建立特化日志表的索引, 第三步使用DataCopy从源库初始化数据到目标库(表结构需要自行建立), 最后一步是使用DataSync进行增量同步.

    虽然有Shareplex及Golden Gate可以选择, 并且它们很先进, 但如果源库的写压力不是很高, 并且不想用牛刀来搞复制, 可以试试DataSync, AnySQL一直努力为DBA创造使用方便的工具及脚本.