An enterprise is migrating a legacy on-premises Oracle 19c database to an Amazon Aurora PostgreSQL-Compatible Edition DB cluster. The migration strategy utilizes the AWS Schema Conversion Tool (SCT) for schema conversion and AWS Database Migration Service (DMS) for full-load and Ongoing Replication (Change Data Capture - CDC).
The source database contains several tables that do not have primary keys. To prepare the source database for CDC, the database administrator puts the Oracle database in ARCHIVELOG mode and enables database-level minimal supplemental logging by running:
`ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;`
During the migration, the AWS DMS task completes the Full Load phase successfully. However, when the task transitions to the CDC phase, updates to the tables without primary keys are not replicated to the target Aurora DB cluster, and the DMS task log displays errors indicating that target rows cannot be located.
Which of the following describes the root cause of this issue and the correct resolution?
- AAWS DMS requires the Oracle LogMiner engine to capture changes for tables without primary keys. The replication task must be reconfigured to use the Oracle Binary Reader instead of LogMiner by setting the source endpoint connection attribute `useLogminerReader=false` and granting read access to the Oracle redo logs.
- Oracle writes only the modified columns to the redo logs by default, which prevents AWS DMS from identifying target rows for tables without primary keys. To resolve this, supplemental logging must be configured for all columns of these tables on the source database by executing `ALTER TABLE ... ADD SUPPLEMENTAL LOG GROUP ... ALWAYS` for each table.Answer
- CThe AWS DMS source database user lacks the `SELECT ANY TRANSACTION` privilege required to read supplemental log data for non-keyed tables. The database administrator must grant the `SELECT ANY TRANSACTION` privilege to the DMS user and restart the task with the `TargetTablePrepMode` set to `TRUNCATE_BEFORE_LOAD`.
- DAWS DMS does not support CDC replication of tables without primary keys to PostgreSQL targets. The schema must be refactored using AWS SCT to add a surrogate primary key column to the source Oracle tables, followed by enabling database-level primary key supplemental logging using `ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS`.