Warum ist meine AWS-DMS-Aufgabe bei der Verwendung von Binary Reader für Amazon RDS for Oracle fehlgeschlagen?

Lesedauer: 3 Minute
0

Warum ist meine AWS Database Migration Service (AWS DMS)-Aufgabe bei der Verwendung von Binary Reader für Amazon Relational Database Service (Amazon RDS) für Oracle fehlgeschlagen?

Kurzbeschreibung

Während der Change Data Capture (CDC)-Phase bietet Oracle zwei Methoden zum Lesen der Redo-Protokolle: Oracle LogMiner und Binary Reader. Der Oracle LogMiner ist eine SQL-Schnittstelle, die auf die Online- und archivierten Redo-Protokolle zugreift. Der Binary Reader ist eine AW- DMS-Funktion, die die Redo-Protokolle direkt liest und analysiert.

Bei der Verwendung von Binary Reader für Migrationen mit vielen Änderungen sind die Auswirkungen auf die Oracle-Quelle im Vergleich zur Verwendung von Oracle LogMiner geringer. Dies liegt daran, dass die Archivprotokolle kopiert und dann auf der Replikations-Instance geparst werden. Bei Migrationen mit vielen Änderungen bietet der Binary Reader in der Regel eine bessere CDC-Leistung als Oracle LogMiner. Achten Sie darauf, eine ausreichende Netzwerkbandbreite bereitzustellen, um Engpässe in der Netzwerkleistung zu vermeiden.

Wenn die Voraussetzungen für die Verwendung von Binary Reader nicht erfüllt sind, können zwei Arten von Fehlern auftreten:

  • Berechtigungsfehler
  • Zusätzliche Verbindungsattributfehler

Lösung

Berechtigungsfehler

AWS DMS verwendet den Binary Reader, indem Verzeichnisse in der Quelldatenbank erstellt werden. Das AWS-DMS-Benutzerkonto muss also über die erforderlichen Berechtigungen verfügen, um auf den Oracle-Quellendpunkt zuzugreifen und die erforderlichen Verzeichnisse zu erstellen. Wenn AWS DMS keine Berechtigungen hat, sehen Sie ähnliche Protokolleinträge wie diesen:

Nachrichten

[SOURCE_CAPTURE]E: OCI error 'ORA-00604: error occurred at rMeecursive SQL level 1 ORA-20900: Invalid path used for directory: /rdsdbdata/log/arch ORA-06512: at "RDSADMIN.RDSADMIN", line 321 ORA-06512: at line 2' [1022307] (oradcdc_bfilectx.c:164)“

Um diese Fehler zu beheben, verwenden Sie den primären Amazon-RDS-Benutzer als AWS-DMS-Benutzer. Die Verzeichnisse werden automatisch erstellt, wenn eine AWS-DMS-Aufgabe ausgeführt wird. Wenn die Verzeichnisse nicht angelegt werden, melden Sie sich zunächst mit dem primären Benutzer bei der Oracle-Datenbank an. Führen Sie dann diese Befehle aus, um zu testen, ob diese Verzeichnisse erstellt werden können:

SQL> exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;
SQL> exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;

Überprüfen Sie die Ergebnisse, indem Sie die Tabelle all_directories abfragen:

SQL> select directory_path from all_directories where directory_name in ('ONLINELOG_DIR','ARCHIVELOG_DIR');
DIRECTORY_PATH
--------------------------------------------------------------------------------
/rdsdbdata/log/arch
/rdsdbdata/log/onlinelog

Nachdem Sie die erforderlichen Verzeichnisse ONLINELOG_DIR und ARCHIVELOG_DIR erstellt haben, starten Sie Ihre AWS-DMS-Aufgabe neu.

Zusätzliche Verbindungsattributfehler

Wenn Sie den Binary Reader verwenden, Ihnen aber die erforderlichen zusätzlichen Verbindungsattribute für Ihre Oracle-Quelle fehlen, wird dieser Protokolleintrag angezeigt:

Nachrichten

[TASK_MANAGER]E: ORA-00604: error occurred at recursive SQL level 1 ORA-20900: Invalid path used for directory: awsdms_dir_test ORA-06512: at "RDSADMIN.RDSADMIN", line 321 ORA-06512: at line 2 ; Invalid RDS Oracle binary reader db settings, replacePathPrefix should be set to TRUE and usePathPrefix should be set to '/rdsdbdata/log/'; Invalid RDS Oracle binary reader db settings, useAlternateFolderForOnline should be set to TRUE; Invalid RDS Oracle binary reader db setting, oraclePathPrefix should not be empty; Invalid RDS Oracle binary reader db settings; Failed while preparing stream component 'st_0_4MGMBIOJCILNOU3UHICCDBCNFQ'.; Cannot initialize subtask; Stream component 'st_0_4MGMBIOJCILNOU3UHICCDBCNFQ' terminated [1020418] (replicationtask.c:2680)“

Um den Binary Reader zum Erfassen von Änderungsdaten für eine Quelle in Amazon RDS für Oracle zu verwenden, fügen Sie dem Quellendpunkt diese zusätzlichen Verbindungsattribute hinzu:

useLogMinerReader=N;useBfile=Y;replacePathPrefix=true;usePathPrefix=/rdsdbdata/log/;useAlternateFolderForOnline=true;oraclePathPrefix=/rdsdbdata/db/ORCL_A/;accessAlternateDirectly=false

Ähnliche Informationen

Benutzerkontoberechtigungen für eine von AWS verwaltete Oracle-Quelle für AWS DMS erforderlich

Zugriff auf Online- und archivierte Redo-Protokolle

Eine On-Premises-Oracle-Datenbank mithilfe eines Oracle-Bystanders und AWS DMS zu Amazon RDS for PostgreSQL migrieren

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr