最近我正在使用Tungsten Replicator在异构数据库之间进行复制。我们有一个 mysql master 和一个 oracle slave。根据文档,这样的设置应该可以工作。我正在使用 tungsten-replicator-2.0.5。我打电话
$TUNGSTEN_HOME/tools/configure \
--verbose \
--home-directory=$INSTALL_HOME \
--cluster-hosts=$MA_HOST,$SL_HOST \
在主节点上用于在两个节点上创建基本安装。注意:由于异构设置,使用安装程序(推荐)失败,因为安装程序无法在从节点上找到 mysql 实例。通过在 conf 目录中添加 static-$SERVICENAME.properties 并修改 conf/services.properties 来配置复制器实例(replicator.host=$HOSTNAME,replicator.masterListenPortStart=12112,replicator.rmi_port=20000)。
由于 SQL 语句中缺少“时间戳”关键字,在 tungsten 模式中针对 trep_commit_seqno 发出更新语句时,启动复制器会导致 ORA-01850。只是为了克服这个错误,我将 update_timestamp 和 extract_timestamp 的数据类型更改为 varchar。复制器现在正在启动并在复制的地方进行一些简单的插入,但是当测试脚本发出
DROP TABLE IF EXISTS table1;
由于“IF EXISTS”子句,复制因 ORA-00933 而失败。我不确定这是否是我的配置错误,或者 tungsten 总体上是否存在这两种产品之间 DDL 语句差异的问题。有人用钨成功地建立了类似的复制吗?