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社提供のバッチを適用するか、当該バージョン以外を使用する。
以上です。
関連したトピックス
- DBMoto独自のLog Serverを用いたOracle差分レプリケーション ~BLOB対応、パフォーマンス向上~【DBMoto Ver8.5新機能②】
- 双方向レプリケーションでデータベースのBCPを【リアルタイムレプリケーションツールDBMoto】
- DBMotoのレプリケーション結果比較確認機能で整合性チェック&データ修復
- DBMotoのエラー通知をもっと柔軟に、フィルタ設定で必要な通知のみをメール送付
- PostgreSQLからの差分連携(LSA)セットアップ手順【Syniti DR】
- RDS PostgreSQLからの差分セットアップ【Syniti DR 9.6】
- Oracle Log Miner と Redo Logについて【リアルタイムレプリケーションツールDBMoto】
- Oracleに接続する際のOracleクライアントの設定について【リアルタイムレプリケーションツールDBMoto】
- Oracle RAC One Node環境を構成してみました ステップ1 Oracle Linux環境の導入
- Oracleのエラー「ORA-12516」が発生する場合の対処法【リアルタイムレプリケーションツールDBMoto】