OracleをソースDBとしたミラーリングレプリケーションにおいて注意点があります。
▼問題点
OracleのテーブルにTimestamp型のフィールドが存在する場合、Oracleからのミラーリングレプリケーション時に
ターゲットDBでTimestamp型のレコードのナノ秒が失われることがある。
※例
2010-09-16-11.08.22.123000
(ソースDB:Oracleで左記のようにTimestamp型レコードを追加・更新する)
↓
2010-09-16-11.08.22.000000
(ミラーリング後、ターゲットDBで左記のようにTimestamp型レコードのナノ秒が000000になってしまうことがある)
▼事象発生条件
下記3つの条件を満たすことで発生します。
・OracleがソースDBであり、ミラーリングかシンクロナイゼーションレプリケーションの場合
・Oracleのバージョンが9.2.0.6 / 10.2.0.1 / 10.2.0.2 / 10.2.0.3 / 10.2.0.4
・Oracle側でTimestamp型レコードに更新があるか、レコード自体の追加を行う
※リフレッシュレプリケーションの場合は問題ありません。
※ターゲットがOracleの場合のミラーリングは問題ありません。
▼原因
Oracleバージョン固有のログマイナー(log miner)のバグです。
▼回避策
問題バージョンにてOracle社提供のバッチを適用するか、当該バージョン以外を使用する。
以上です。