Syniti DR

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

メタデータは複数作成できますか?同時に使用できますか?

DBMotoのメタデータは、複数作成することは可能です。
これにより運用環境とテスト環境それぞれのメタデータを用意できます。
しかし、複数のメタデータを同時に使用することはできません。それぞれのメタデータ内にあるレプリケーションは、それぞれのメタデータを有効化していない限り動作しません。
メタデータの切り替えは、メタデータ上で右クリックして表示されるメニューの、「既定のメタデータにする」で可能です。
metadata_switch

マルチメンバーファイル(テーブル)からレプリケーションができません。

AS400上のマルチメンバーファイルとなっているテーブルからレプリケーションしようとすると、ステータスは成功なのに処理件数が0件のまま動かないことがあります。

これはマルチメンバーファイルの仕様上の制限でSELECTクエリが実行できないためです。
テーブルのエイリアスを作成していただければSELECTクエリで結果が取得できるため、レプリケーションできるようになります。
エイリアスを作成するクエリの一例は以下の通りです。

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1)
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2)

Amazon EC2上のDBMotoからAmazon Redshiftへの接続ができません。

EC2上のWindowsに用意したDBMotoからRedshiftに接続しようとするとフリーズすることがあります。
これは、EC2上のインスタンスのNIC設定に由来する問題です。レジストリ上からMTU値を設定します。
次の場所にあるレジストリ内にMTU値を示すレジストリエントリーを追加します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\(アダプタのID)
追加するレジストリは、DWORD型で、値の名前は MTU 、データの値は 1500 に設定します。設定後コンピュータを再起動して、新しい値を適用します。
詳細は下記Amazon様ページをご覧いただきますよう、お願いいたします。
データベースへの接続が中断された – Amazon Redshift

DBMotoでOracleのマテリアライズドビューはレプリケーションできますか?

リフレッシュとミラーリングが可能です。
 
ミラーリング時の注意点として、DBMotoは差分データの取得にトランザクションログを用いていますが、マテリアライズビューにあるレコードに対するUPDATE操作をOracleが内部で行う際、UPDATEではなくDELETEとINSERTを組み合わせて行っているため、トランザクションログの数が1つではなく、2つになっています。
 
DBMotoのレコード処理件数表示はトランザクションログをベースにしている都合上、マテリアライズドビューのリフレッシュモードが「完全」の場合は、ビュー上の全レコード数×2、「部分」の場合は、UPDATE対象レコードの数×2の数が、レコード処理件数として表示されます。これはOracle側の仕様によるものです。

スクリプトで、.Net Frameworkの○○という関数が動きません。

スクリプトに記述した、.Net Frameworkの関数が動作しないことがあります。

これは、その関数の動作に必要な.Net FrameworkのライブラリがDBMotoに読み込まれていないのが原因です。

DBMotoでは本体の動作に不要な.Net Frameworkのライブラリは読み込まないようになっております。
適宜リファレンスで必要な.Net Frameworkのライブラリを読み込んでください。

■例
SHA256CryptoServiceProvider関数を利用する場合、System.Core.dllというライブラリを呼び出す必要があります。
Microsoft公式のSHA256CryptoServiceProvider解説ページ
このDLLファイルは、C:\Windows\Microsoft.NET\Framework64\vX.X.XXXX(Xは任意のバージョン数値)にありますので、ここへのリファレンスを追加してください。(64bit版の場合)

メール設定において、SMTPポート番号465番で指定したが、エラーでメールが送信されない。

こちらはDBMotoで使用している.NET Frameworkの仕様による問題です。
仕様上SMTP over SSLのポート番号である465番を使用したメールの送信ができないようになっております。
別のポート番号をご利用ください。

レコードの全消去時に他データべースへのレプリケーションをどのように行いますか?

AS/400でレコードの全消去を含む操作(CLRPFMやCPYF(REPLACEオプション))を行った場合、他データベースに対してこの変更をTRUNCATEとして他データベースに反映します。しかしレコードが対象ではなく、ファイルそのものを置き換えている場合など(RSTOBJ等)の場合、変更は他データベースへ反映されません。

ログ出力先をWindowsイベントログにした場合historyファイルはどこにありますか?

Windowsイベントログでの運用の場合、historyファイルはご使用いただけません。

必要とされる回線の帯域の目安はありますか?

回線が速ければレプリケーション速度も向上しますが、回線が遅くてもレプリケーションは十分可能です。ISDN回線を使用しているお客様もいらっしゃいます。

ネットワーク障害が発生した場合、復旧処理は自動で行われますか?

自動で行われます。

DBMoto導入によってDBにかかる負荷はどの程度でしょうか?

DBMotoはDBに対するクライアントツールとしてのアクセスしか行わないため大きな負荷はかかりません。DBに対するエージェント導入も不要です。

リフレッシュ時にはまずターゲットのレコードを一度削除するようですが、削除しないようにできますか?

スクリプトで実現可能です。

インターネット越しでレプリケーションすることは可能ですか?例えば大阪と東京など。

可能です。

DBMotoの疑似PKを使ってレプリケーションしていますが、キーが重複していても重複キーエラーが発生しません。

疑似PKの重複キーチェックは行われません。重複キーエラーが出るのはDBのPK使用時に重複していた場合のみです。

Oracleでエラー「ORA-03113」が発生しました。

OracleとDBMoto間のネットワーク障害によるものです。

万が一の障害発生時の復旧方法は?

リフレッシュをする方法と、トランザクションIDを任意の位置に戻す方法の2通りあります。

大量トランザクション時、レプリケーションステータスが「Mirroring」で成功数、合計数は0のままで何も動作していないように見える状態がかなり長い時間続いている。

ステータスがMirroringで動いていないように見えるときは、実際にはトランザクションログの参照を行っています。大量トランザクション処理時は時間がかかるケースがあります。

UPDATE時のみレプリケーション対象外とすることは可能ですか?

スクリプトで対応可能です。

ミラーリング・シンクロナイゼーションの処理速度を上げる方法はありますか?

Data Replicator Option画面にある「Thread Execution Factor」の値を増やすことで処理速度の向上が期待できます。

ミラーリングの真っ最中にスケジュールリフレッシュの時間になった場合はどのような挙動になりますか?

ミラーリングプロセス終了後にリフレッシュされます。強引に割り込むことはありません。

レプリケーションに必要な最低限の権限を教えてください。

下記ブログ記事をご参照ください。

https://www.climb.co.jp/blog_dbmoto/archives/560

シンクロナイゼーション(双方向)における処理シーケンスを教えてください。

以下の流れとなります。

ソースのトランザクションログを検索⇒ターゲットのトランザクションログを検索⇒ソースからターゲットへの更新処理⇒ターゲットからソースへの更新処理

DBMotoインストーラ起動時にライセンスエラーが表示されます。

.NET Framework 2.0 SP2がインストールされていないのが原因です。

WindowsXPやWindowsServer2003・2003R2の場合、デフォルトではインストールされていないので、別途インストールが必要です。また、.NET Framework4.0単独では動作いたしません。

レプリケーション定義を作成してもステータスがstoppedのままでレプリケーションが動いてくれません。

レプリケーション定義を作成した後に、Data Replicatorを起動する必要があります。

ミラーリング開始後すぐに終了してしまいます。再開してもすぐ終了します。

ミラーリング時にはPKの設定が必要です。DBに設定されているかご確認ください。もしされていない場合は、DBMotoから疑似PKを設定することも可能です。