Syniti DR

マルチデータベース対応 レプリケーションツール

DB2 UDBにはどのドライバで接続するのでしょうか?

Ritmo/DB2というドライバを使用します。DBMotoに同梱されております。

どのようにして差分レプリケーションが行われますか?

DB2 Logを参照する方法と、トリガーログテーブルを作成する方法があります。DB2 Logを使用する場合、予めdb2udbreadlogという拡張ファイル(DBMotoに同梱済み)をDB2側に格納する必要があります。

Oracleへ接続するドライバのダウンロード先を教えてください。

以下のサイトからOracleクライアント又はODACをダウンロード可能です。
http://www.oracle.com/technetwork/jp/database/windows/downloads/index.html
また、Oracleデータベースのバージョンに関わらず、ドライバのバージョンは11を使用してください。

ビューはレプリケーションに対応していますか?

対応しておりません。

データタイプBLOB/CLOBには対応していますか?

対応しておりますが、ミラーリングとシンクロナイゼーションについては、
Log Server経由のみ対応しています。

Oracle RACに対応していますか?

対応しております。

アーカイブログを参照した差分レプリケーションは可能ですか?

可能です。

Oracle10gのレプリケーション設定時にドライバエラーが出ます

DBMoto側のOracleクライアントドライバを最新の11gにしてください。Oracle側の既知不具合です。

どのようにして差分レプリケーションが行われますか?

Redoログを参照します。事前にサプリメンタルロギングの設定が必要ですが、DBMotoから行うことが可能です。

DBMOTOLIBにジャーナルレシーバを作成してもよいですか?

可能ですが非推奨です。DBMOTOLIBにはDBMotoからAS/400のジャーナルを参 照するためのプロシージャが存在しますので、DBMOTOLIBにプロシージャ以外のデータが存在するとレプリケーションのパフォーマンスに影響が出る場合があります。

ジャーナルレシーバはテーブル単位で作成する必要がありますか?それともまとめて1つでも問題ないですか?

1つにまとめても問題ありません。DBMotoではテーブル単位でレプリケーション定義を作成し、定義ごとにトランザクションIDを管理することが可能なためです。

AS/400にはどのドライバで接続するのでしょうか?

Ritmo/iというドライバを使用します。DBMotoに同梱されております。

古いジャーナルは削除しても問題ないですか?

DBMotoから参照しているジャーナルより前のものについては削除して問題ありません。

ジャーナルがAS/400側で自動で切り替わった場合、DBMotoが参照するジャーナルも自動で切り替わりますか?

自動で切り替わります。

どのようにして差分レプリケーションが行われますか?

AS/400のミラーリングではトランザクションログとして「ジャーナル・レシーバ」を参照しますので、予め物理ファイルに対してジャーナルを起動しておく必要があります。
また、DBMotoからジャーナルを参照するためのプロシージャをAS/400のライブラリに対して作成する必要がありますが、DBMotoでAS/400の接続設定を行う際に簡単に作成することができます。

シンクロナイゼーションでレコードを更新してもレプリケーションされないことがあり、エラーも出力されません。

シンクロナイゼーションではDBMotoでの接続ユーザでレコードの更新をかけた場合にはレプリケーションされず、エラーも出力されません。これは無限ループを回避するための仕様です。シンクロナイゼーションを利用する場合、DBMotoで使用する接続ユーザは他のアプリケーションでは使用しないDBMoto専用のユーザを用意してください。

マルチシンクロナイゼーションにおいて、ソースとターゲットの複数で同じタイミングで同一レコードの更新をかけた場合、どのサーバのレコードが優先されますか?

ソースとターゲットで同一レコードの更新があった場合の挙動は以下から選択可能です。
・ソースDBを優先する
・ターゲットDBを優先する
・TimeStampの早いほうを優先する
・カスタムスクリプト(上記3つ以外の挙動を設定したい場合など)
さらにターゲットの複数サーバで同一レコードの更新があった場合には、TimeStampの早いほうが優先されます。

レプリケーション対象外のフィールドがある場合に固定の値を必ず挿入する設定は可能ですか?

可能です。Expressionという機能を使用し、固定値を入れることも可能ですし、現在日時を挿入するなど、関数を使用することも可能です

自前の関数を定義して使用することは可能ですか?

可能です。スクリプトとしてオリジナルの関数を定義し、Expression という機能で呼び出すことが可能です。

データを加工したり変換してレプリケーションすることは可能ですか?

可能です。Expressionという機能を使用し、VB.NET の関数を使用できます。

DBMotoで使用する通信の種類とポートを教えてください。

TCP/IPで通信し、DB で使用するデフォルトポートを使用します。例えばOracleの場合はデフォルトで1521を使用します。

ミラーリングでソースに対してレコードの更新や削除を行った際に、ターゲット側にレコードが存在しなかった場合にはどのような挙動になりますか?

エラーメッセージ「ターゲットにレコードが存在しません」をログファイルに出力し、更新時にはターゲットに対して登録処理が行われます。オプション設定変更により登録処理を行わないようにもできます。

DB障害が発生してレプリケーションが停止した際の復旧が心配です。データの不整合が発生してしまうのでは?

DBMotoは最後に更新したトランザクションIDを常に保持しておりますので、DB障害復旧後には、障害発生前の最後のトランザクションIDからレプリケーションを再開します。よって通常はデータの不整合が発生することはまずありません。

スケジュール機能はありますか?

はい、あります。
リフレッシュを定期的に実行するリフレッシュスケジュール、ミラーリングを実行する日時を制限するミラーリングスケジュールの設定が可能です。
スケジュールは時・分・秒、年・月・日・曜日単位で細かく設定でき、複数設定も可能です。

ソースDBとターゲットDBで文字コードが異なっていても大丈夫?

問題ありません。DBMotoで文字コード変換を吸収します。
DBMoto内部ではUnicodeで処理され、双方のDBに対して文字コード変換を行います。