カスケード制約に関する考慮事項

Oracle GoldenGateによって取得されるカスケード更新および削除はバイナリ・ログに記録されないため、取得されません。これはMySQLとMariaDBの両方で有効です。たとえば、表間に親子関係がある親表でdelete文を実行すると、子表ではカスケード削除が適宜発生しますが、バイナリ・ログには記録されません。親表の削除または更新レコードのみがバイナリ・ログに記録され、Oracle GoldenGateによって取得されます。

詳細は、https://mariadb.com/kb/en/replication-and-foreign-keys/およびhttps://dev.mysql.com/doc/refman/8.0/en/innodb-and-mysql-replication.htmlを参照してください。

カスケード操作のレプリケーションを正しく処理するには、ソースでカスケード削除および更新を無効にし、親レコードを変更する前に子レコードを明示的に削除または更新するようにアプリケーションをコーディングすることをお薦めします。または、ターゲット親表にソース親表と同じカスケード制約が構成されていることを確認する必要がありますが、これにより、特に双方向レプリケーションの場合にソースとターゲットの間で非同期状態が発生する可能性があります。