最近、私はTungsten Replicatorを使用して異種データベース間のレプリケーションに取り組んでいます。mysql マスターと oracle スレーブがあります。ドキュメントによると、そのようなセットアップは機能するはずです。私はタングステン レプリケーター 2.0.5 を使用しています。電話する
$TUNGSTEN_HOME/tools/configure \
--verbose \
--home-directory=$INSTALL_HOME \
--cluster-hosts=$MA_HOST,$SL_HOST \
マスター ノードで、両方のノードで基本的なインストールを作成します。注: インストーラーの使用 (推奨) は、異機種セットアップが原因で失敗します。これは、インストーラーがスレーブ ノードで mysql インスタンスを見つけられないためです。レプリケータ インスタンスは、static-$SERVICENAME.properties を conf ディレクトリに追加し、conf/services.properties (replicator.host=$HOSTNAME、replicator.masterListenPortStart=12112、replicator.rmi_port=20000) を変更することによって構成されます。
レプリケータを起動すると、タングステン スキーマの trep_commit_seqno に対して更新ステートメントを発行すると、SQL ステートメントに「timestamp」キーワードがないため、ORA-01850 が発生しました。このエラーを回避するために、update_timestamp と extract_timestamp のデータ型を varchar に変更しました。レプリケータが起動し、いくつかの単純な挿入がレプリケートされますが、テスト スクリプトが
DROP TABLE IF EXISTS table1;
「IF EXISTS」句が原因で、ORA-00933 が原因でレプリケーションが失敗します。これが私の構成のエラーなのか、それとも一般にタングステンにこれら 2 つの製品の DDL ステートメントの違いによる問題があるのかはわかりません。誰かがタングステンを使用して同様のレプリケーションを成功させましたか?