Wie überwache und behebe ich Replikationsverzögerungen, wenn ich das Lesereplikat für eine Amazon-RDS-for-Oracle-Instance verwende?

Letzte Aktualisierung: 18.11.2021

Ich möchte Replikationsverzögerungen überwachen und beheben, wenn ich das Lesereplikat für meine Amazon Relational Database Service (Amazon RDS)-for-Oracle-DB-Instance verwende.

Kurzbeschreibung

Sie können das Lesereplikat für Ihre RDS-for-Oracle-Instance mithilfe der Oracle Active Data Guard-Lizenz konfigurieren. Wenn Sie ein Lesereplikat für Ihre Instance erstellen, arbeiten die primären und Lesereplikat-Instances im Data Guard-Modus mit maximaler Leistung. Weitere Informationen finden Sie in der Oracle-Dokumentation zu den Oracle Data Guard-Schutzmodi.

Sie können das Lesereplikat verwenden, um die Lesevorgänge aus der primären Instance zu exportieren. Sie können das Lesereplikat auch bei einer Notfallwiederherstellung zu einer eigenständigen DB-Instance hochstufen. Weitere Informationen finden Sie unterHochstufen eines Lesereplikats zu einer eigenständigen DB-Instance.

Bevor Sie ein Lesereplikat für Ihre Instance konfigurieren, sollten Sie unbedingt die Einschränkungen in Bezug auf Version und Lizenzierung prüfen. Lesen Sie außerdem Verschiedene Anforderungen und Einschränkungen für Oracle-Replikate.

Behebung

Beachten Sie Folgendes, wenn Sie das Lesereplikat für Ihre RDS-for-Oracle-Instance verwenden:

  • Amazon RDS ist ein verwalteter Service. Daher wird der Replikationsprozess von einem internen RDS_DATAGUARD-Benutzer verwaltet. Dieser Benutzer wird konfiguriert, wenn Sie eine Lesereplikat-Instance erstellen.
  • Sie können den verwalteten Wiederherstellungsvorgang nicht über das Administratorbenutzerkonto stoppen.
  • Sie können das Oracle Data Guard Broker for RDS-Lesereplikat nicht konfigurieren oder ändern.
  • Sie können die Replikation von Daten aus einer primären Instance auf eine Lesereplikat-Instance nicht verzögern.
  • An der Optionsgruppe vorgenommene Änderungen werden auf die Lesereplikat-Instance übertragen. Wenn die Lesereplikate in derselben Region konfiguriert sind, sind sie derselben Optionsgruppe zugeordnet. Weitere Informationen finden Sie unter Optionsanforderungen und Einschränkungen für Oracle-Replikate.

Überwachen der Replikationsverzögerung

Es kann zu einer Replikationsverzögerung kommen, wenn das Replikat mit der primären Instance nicht Schritt halten kann. Um die Replikationsverzögerung in Amazon CloudWatch zu überwachen, sehen Sie sich die Amazon-RDS-Metrik ReplicaLag an. Diese Metrik zeigt die Replikationsverzögerung in Millisekunden. Weitere Informationen finden Sie unter Überwachen der Lesereplikation und Anzeigen von Amazon-RDS-Metriken und -Dimensionen.

Gehen Sie wie folgt vor, um die Replikationsverzögerung in Active Data Guard zu überwachen und zu beheben:

Führen Sie die folgende Abfrage aus, um die Data Guard-Verzögerungsmetriken zu überprüfen:

sql > SELECT name,value,datum_time,time_computed FROM v$dataguard_stats;

Führen Sie die folgende Abfrage aus, um zu prüfen, ob eine Archivprotokolldifferenz zwischen der primären Instance und der Lesereplikat-Instance besteht:

sql >  SELECT archived.thread# THREAD,max(archived.sequence#) PRIMARY,max(applied.sequence#) STANDBY,(max(archived.sequence#) - max(applied.sequence#)) GAP FROM v$archived_log archived,v$archived_log applied WHERE archived.thread#=applied.thread# AND applied.applied='YES' GROUP BY archived.thread#;

Hinweis: RDS for Oracle warnt Sie nicht, wenn eine Replikationsverzögerung vorliegt. Um Benachrichtigungen zu senden, wann immer das Lesereplikat nicht mit der primären Instance Schritt hält, erstellen Sie einen CloudWatch-Alarm für die RDS-Metrik ReplicaLag.

Beheben der Replikationsverzögerung

  • Wenn die primäre Instance nicht verfügbar ist, überprüfen Sie den aktuellen Status der Instance über die Amazon-RDS-Konsole. Prüfen Sie außerdem, ob die Instance von einem beliebigen SQL-Client aus zugänglich ist. Wenn die primäre Instance nicht verfügbar ist (wenn sie sich z. B. im Status incompatible-parameters (inkompatible Parameter) befindet), kann das Lesereplikat mit der primären Instance nicht Schritt halten und fällt zurück. Prüfen Sie Amazon-RDS-Ereignisse, um herauszufinden, warum die primäre Instance nicht verfügbar ist. Korrigieren Sie dann die Instance, um sicherzustellen, dass sie zugänglich ist.
  • Wenn für die primäre Instance eine CPU- oder Arbeitsspeicherüberlastung besteht, kann es zu einer hohen Transportverzögerung kommen. Überwachen Sie die CloudWatch-Metriken für die Instance. Verwenden Sie außerdem Enhanced Monitoring, um festzustellen, ob ein bestimmter Prozess eine ungewöhnlich hohe Arbeitsspeicher- oder CPU-Auslastung verursacht. Weitere Informationen finden Sie unter Anzeigen von Betriebssystemmetriken in der RDS-Konsole. Wenn die CPU-/Arbeitsspeicherlast abnimmt, kann das Replikat mit der primären Instance möglicherweise wieder Schritt halten. Wenn die Überlastung der Instance erwartungsgemäß ist, können Sie die Instance-Klasse, die IOPS oder den Durchsatz nach Bedarf skalieren.
  • Überwachen Sie die alert.log-Dateien für die primäre Instance und das Lesereplikat, um Warnungen oder ORA-Fehler zu identifizieren, die sich auf die Transport- oder Anwendungs-Prozesse auswirken können. Weitere Informationen zum Zugriff auf das Warnungsprotokoll für RDS-Instances finden Sie unter Protokolldateien für Oracle-Datenbanken. Beheben Sie die festgestellten Fehler, um die Verzögerung zu reduzieren.
  • Wenn Sie die Redo-Protokolle in der primären Instance ändern oder ihre Größe ändern, werden die Änderungen in der Standby-Instance nicht repliziert. Um diese Änderungen zu replizieren, müssen Sie die Standby-Instance neu erstellen. Es empfiehlt sich, die Redo-Protokoll-Parameter vor der Konfiguration des Lesereplikats zu aktualisieren. Weitere Informationen finden Sie unter Ändern der Protokollierungskonfiguration.
  • Das Konfigurieren der Lesereplikat-Instance mit weniger Rechen- oder IOPS-Kapazität im Vergleich zur primären Instance kann die Anwendung von Änderungen im Lesereplikat verlangsamen, was zu einer Replikationsverzögerung führt. Überwachen Sie die RDS-Metriken mit CloudWatch, um beide Instances auf Drosselung zu prüfen. Wenn die primäre Instance keine Drosselung aufweist und beim Lesereplikat Drosselung auftritt, ermitteln Sie die Ressource, die gedrosselt wird. Skalieren Sie dann die Speicher- oder Rechenkonfiguration nach Bedarf.