Arbeiten mit Oracle-Replikaten für Amazon RDS - Amazon Relational Database Service

Arbeiten mit Oracle-Replikaten für Amazon RDS

Um die Replikation zwischen Oracle DB-Instances zu konfigurieren, können Sie Replikat-Datenbanken erstellen.

Übersicht über Oracle-Replikate

Eine Oracle Replikat-Datenbank ist entweder aufgespielt oder schreibgeschützt. Ein Oracle-Replikat im schreibgeschützten Modus wird als Read Replica bezeichnet. Ein Oracle-Replikat im aufgespielten Modus wird als aufgespieltes Replikat bezeichnet.

Schreibgeschützte und aufgespielte Replikate

Wenn Sie ein Oracle-Replikat erstellen oder ändern, können Sie es in einen der folgenden Modi versetzen:

  • Schreibgeschützt. Dies ist die Standardeinstellung. Active Data Guard überträgt und wendet Änderungen aus der Quelldatenbank auf alle Read-Replica-Datenbanken an.

    Sie können bis zu fünf Lesereplikate aus einer Quell-DB-Instance erstellen. Allgemeine Hinweise zu Read Replicas, die für alle DB-Engines gelten, finden Sie unter Arbeiten mit Lesereplikaten. Informationen zu Oracle Data Guard finden Sie unter Oracle Data Guard-Konzepte und -Administration in der Oracle-Dokumentation.

  • Aufgespielt. In diesem Fall wird für die Replikation Oracle Data Guard verwendet, die Replikatdatenbank akzeptiert jedoch keine Benutzerverbindungen. Die primäre Verwendung für aufgespielte Replikate ist die überregionale Notfallwiederherstellung.

    Ein aufgespieltes Replikat kann keine schreibgeschützte Workload bereitstellen. Das aufgespielte Replikat löscht archivierte Redo-Protokolldateien, nachdem sie angewendet wurden, unabhängig von der Aufbewahrungsrichtlinie für archivierte Protokolle.

Sie können eine Kombination aus aufgespielten und schreibgeschützten DB-Replikaten für dieselbe Quell-DB-Instance erstellen. Sie können ein schreibgeschütztes Replikat in den aufgespielten Modus oder ein aufgespieltes Replikat in den schreibgeschützten Modus versetzen. In beiden Fällen behält die Oracle-Datenbank die Einstellung für die Aufbewahrung archivierter Protokolle bei.

Ausfälle während der Replikation

Wenn Sie ein Oracle-Replikat erstellen, tritt für die Quell-DB-Instance kein Ausfall auf. Amazon RDS erstellt einen Snapshot der Quell-DB-Instance. Dieser Snapshot wird zum Replikat. Amazon RDS legt die erforderlichen Parameter und Berechtigungen für die Quelldatenbank und das Replikat ohne Serviceunterbrechung fest. Wenn Sie ein Replikat löschen, tritt ebenfalls kein Ausfall auf.

Replikatanforderungen für Oracle

Überprüfen Sie vor dem Erstellen eines Oracle-Replikats die folgenden Anforderungen.

Versions- und Lizenzierungsanforderungen für Oracle-Replikate

Überprüfen Sie vor dem Erstellen eines Oracle-Replikats die Versions- und Lizenzierungsanforderungen:

  • Wenn sich das Replikat im schreibgeschützten Modus befindet, stellen Sie sicher, dass Sie über eine Active Data Guard-Lizenz verfügen. Wenn Sie das Replikat in den aufgespielten Modus versetzen, benötigen Sie keine Active Data Guard-Lizenz. Nur die Oracle DB-Engine unterstützt aufgespielte Replikate.

  • Oracle-Replikate sind nur auf der Oracle Enterprise Edition (EE)-Engine verfügbar.

  • Oracle-Replikate sind für Oracle-Version 12.1.0.2.v10 und höhere 12.1-Versionen, für alle 12.2-Versionen und für alle 18-Versionen sowie alle 19-Versionen verfügbar.

  • Oracle-Replikate sind nur für DB-Instances auf der EC2-VPC-Plattform verfügbar.

  • Oracle-Replikate sind nur für DB-Instances verfügbar, die auf DB-Instance-Klassen mit zwei oder mehr vCPUs ausgeführt werden. Eine Quell-DB-Instance kann nicht die Micro-Instance-Klasse db.t3 verwenden.

  • Die Oracle-DB-Engine-Version der Quell-DB-Instance und aller ihrer Replikate muss identisch sein. Amazon RDS aktualisiert die Replikate sofort nach dem Upgrade der Quell-DB-Instance, ungeachtet des Wartungsfensters des Replikats. Für größere Versions-Upgrades von regionsübergreifenden Replikaten führt Amazon RDS automatisch Folgendes durch:

    • Automatisches Generieren einer Optionsgruppe für die Zielversion

    • Kopieren aller Optionen und Optionseinstellungen aus der ursprünglichen Optionsgruppe in die neue Optionsgruppe

    • Verknüpfen des aktualisierten regionsübergreifenden Replikats mit der neuen Optionsgruppe

    Weitere Informationen zum Aktualisieren der DB-Engine finden Sie unter Upgraden der Oracle-DB-Engine.

Optionsanforderungen für Oracle-Replikate

Bevor Sie ein Replikat für Oracle erstellen, überprüfen Sie die Anforderungen für Optionsgruppen:

  • Wenn sich Ihr Oracle-Replikat in derselben AWS-Region befindet wie die Quell-DB-Instance, stellen Sie sicher, dass es zur gleichen Optionsgruppe gehört wie die Quell-DB-Instance. Änderungen an der Quell-Optionsgruppe oder der Quell-Optionsgruppenmitgliedschaft werden von den Replikaten übernommen. Diese Änderungen werden unmittelbar, nachdem sie auf die Quell-DB-Instance angewandt wurden, auf die Replikate angewandt, ungeachtet des Wartungsfensters des Replikats.

    Weitere Informationen über Optionsgruppen finden Sie unter Arbeiten mit Optionsgruppen.

  • Wenn Sie ein regionsübergreifendes Oracle-Replikat erstellen, erstellt Amazon RDS dafür eine dedizierte Optionsgruppe.

    Ein regionsübergreifendes Oracle-Replikat kann nicht aus seiner dedizierten Optionsgruppe entfernt werden. Die dedizierte Optionsgruppe eines regionsübergreifenden Oracle-Replikats kann nicht von anderen DB-Instances verwendet werden.

    Sie können nur die folgenden nicht replizierten Optionen einer dedizierten Optionsgruppe hinzufügen oder entfernen:

    • NATIVE_NETWORK_ENCRYPTION

    • OEM

    • OEM_AGENT

    • SSL

    Um einem regionsübergreifenden Oracle-Replikat weitere Optionen hinzuzufügen, fügen Sie diese der Optionsgruppe der DB-Quell-Instance hinzu. Die Option wird auch auf allen Replikaten der Quell-DB-Instance installiert. Stellen Sie bei lizenzierten Optionen sicher, dass genügend Lizenzen für die Replikate vorhanden sind.

    Wenn Sie ein regionsübergreifendes Oracle-Replikat hochstufen, verhält sich das hochgestufte Replikat genau so wie andere Oracle-DB-Instances, einschließlich der Verwaltung seiner Optionen. Sie können ein Replikat explizit oder implizit hochstufen, indem Sie seine Quell-DB-Instance löschen.

    Weitere Informationen über Optionsgruppen finden Sie unter Arbeiten mit Optionsgruppen.

Sonstige Anforderungen für Oracle-Replikate

Überprüfen Sie vor dem Erstellen eines Oracle-Replikats die folgenden Anforderungen:

  • Wenn eine DB-Instance die Quelle für ein oder mehrere regionenübergreifende Replikate ist, behält sie ihre archivierten Redo-Protokolle bei, bis diese auf alle regionenübergreifenden Replikate angewendet wurden. Die archivierten Redo-Protokolle können zu erhöhter Speichernutzung führen.

  • Ein Anmeldeauslöser auf einer primären Instance muss dem RDS_DATAGUARD-Benutzer und jedem Benutzer, dessen AUTHENTICATED_ENTITY-Wert RDS_DATAGUARD oder rdsdb ist, den Zugriff erlauben. Außerdem darf der Auslöser das aktuelle Schema für den RDS_DATAGUARD-Benutzer nicht festlegen.

  • Um zu vermeiden, dass Verbindungen vom Data Guard-Brokerprozess blockiert werden, aktivieren Sie keine eingeschränkten Sitzungen. Weitere Informationen zu eingeschränkten Sitzungen finden Sie unter Aktivieren und Deaktivieren von beschränkten Sitzungen.

Vorbereiten der Erstellung eines Oracle-Replikats

Führen Sie die folgenden Schritte aus, bevor Sie mit der Verwendung des Replikats beginnen können.

Aktivieren automatischer Sicherungen

Bevor eine DB-Instance als eine Quell-DB-Instance eingesetzt werden kann, müssen Sie automatische Sicherungen auf der Quell-DB-Instance aktivieren. Weitere Informationen zum Ausführen dieses Verfahrens finden Sie unter Aktivieren von automatisierten Sicherungen .

Aktivieren des erzwungenen Protokollierungsmodus

Es wird empfohlen, den erzwungenen Protokollierungsmodus zu aktivieren. Im erzwungenen Protokollierungsmodus schreibt die Oracle-Datenbank Redo-Datensätze, auch wenn NOLOGGING mit DDL-Anweisungen (Data Definition Language) verwendet wird.

So aktivieren Sie den erzwungenen Protokollierungsmodus

  1. Melden Sie sich mit einem Client-Tool wie SQL Developer bei Ihrer Oracle-Datenbank an.

  2. Aktivieren Sie den erzwungenen Protokollmodus, indem Sie das folgende Verfahren ausführen.

    exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);

Weitere Informationen zu diesem Verfahren finden Sie unter Einstellen der erzwungenen Protokollierung.

Ändern der Protokollierungskonfiguration

Wenn Sie Änderungen an Ihrer Protokollierungskonfiguration planen, empfehlen wir Ihnen, diese Änderungen vorzunehmen, bevor Sie eine DB-Instance zur Quelle für ein oder mehrere Replikate machen. Außerdem wird empfohlen, die Protokollierungskonfiguration nach dem Erstellen der Replikate nicht mehr zu ändern. Änderungen können dazu führen, dass die Redo-Online-Protokollierungskonfiguration nicht mehr mit der Standby-Protokollierungskonfiguration synchron ist.

Sie können die Protokollierungskonfiguration für eine DB-Instance mithilfe der Amazon RDS-Verfahren rdsadmin.rdsadmin_util.add_logfile und rdsadmin.rdsadmin_util.drop_logfile ändern. Weitere Informationen finden Sie unter Hinzufügen von Online-Redo-Log-Dateien und Löschen von Online-Redo-Log-Dateien.

Festlegen des Parameters MAX_STRING_SIZE

Stellen Sie vor dem Erstellen eines Oracle-Replikats sicher, dass die Einstellung des Parameters MAX_STRING_SIZE auf der Quell-DB-Instance und auf dem Replikat identisch ist. Hierzu können Sie sie der gleichen Parametergruppe zuordnen. Wenn Sie unterschiedliche Parametergruppen für die Quelle und das Replikat haben, können Sie MAX_STRING_SIZE auf denselben Wert festlegen. Weitere Informationen zu diesem Parameter finden Sie unter Aktivieren erweiterter Datentypen für eine neue DB-Instance.

Planen von Datenverarbeitungs- und Speicherressourcen

Stellen Sie sicher, dass die Quell-DB-Instance und ihre Replikate in Bezug auf die Datenverarbeitungs- und Speicherkapazität die für ihre Betriebslast angemessene Größe aufweisen. Wenn ein Replikat die Datenverarbeitungs-, Netzwerk- oder Speicherressourcenkapazität erreicht, empfängt oder wendet das Replikat keine Änderungen mehr von seiner Quelle an. Amazon RDS für Oracle greift nicht ein, um eine hohe Replikatverzögerung zwischen einer Quell-DB-Instance und ihren Replikaten zu verringern. Sie können die Speicher- und CPU-Ressourcen eines Replikats unabhängig von seiner Quelle und anderen Replikaten ändern.

Erstellen eines Oracle-Replikats im aufgespielten Modus

Standardmäßig sind Oracle-Replikate schreibgeschützt. Um ein Replikat im aufgespielten Modus zu erstellen, verwenden Sie die Konsole, die AWS CLI oder die RDS-API.

So erstellen Sie ein aufgespieltes Replikat aus einer Oracle DB-Quell-Instance:

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.

  3. Wählen Sie die Oracle DB-Instance, die Sie als Quelle für ein aufgespieltes Replikat verwenden möchten.

  4. Wählen Sie unter Actions (Aktionen) Create replica (Replikat erstellen) aus.

  5. Wählen Sie für Replica mode (Replikatmodus) die Option Mounted (Aufgespielt).

  6. Wählen Sie die Einstellungen, die Sie verwenden möchten. Geben Sie unter DB instance identifier (DB-Instance-Kennung) einen Namen für das Lesereplikat ein. Passen Sie weitere Einstellungen nach Ihrem Bedarf an.

  7. Wählen Sie unter Regions (Regionen) die Region aus, in der das aufgespielte Replikat gestartet wird.

  8. Wählen Sie die Instance-Größe und den Speichertyp aus. Wir empfehlen Ihnen, dieselbe DB-Instance-Klasse und denselben Speichertyp wie bei der Quell-DB-Instance für das Lesereplikat zu verwenden.

  9. Wählen Sie für Multi-AZ deployment (Multi-AZ-Bereitstellung) die Option Create a standby instance (Standby-Instance erstellen), um eine Standby-Version des Replikats in einer anderen Availability Zone zu erstellen, und um einen Failover-Support für das aufgespielte Replikat bereitzustellen. Das Erstellen Ihres aufgespielten Replikats als Multi-AZ-DB-Instance ist unabhängig davon, ob die Quelldatenbank eine Multi-AZ-DB-Instance ist.

  10. Wählen Sie weitere Einstellungen aus, die Sie verwenden möchten.

  11. Wählen Sie Create replica (Replikat erstellen).

Auf der Seite Databases (Datenbanken) hat das aufgespielte Replikat die Rolle „Replikat“.

Um ein Oracle-Replikat im aufgespielten Modus zu erstellen, setzen Sie --replica-mode im AWS CLI-Befehl create-db-instance-read-replica auf mounted.

Beispiel

Für Linux, macOS oder Unix:

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-instance-identifier mydbinstance \ --replica-mode mounted

Für Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-instance-identifier mydbinstance ^ --replica-mode mounted

Um ein schreibgeschütztes Replikat in den aufgespielten Zustand zu ändern, setzen Sie --replica-mode im AWS CLI Befehl modify-db-instance auf mounted. Um ein aufgespieltes Replikat in den schreibgeschützten Modus zu versetzen, setzen Sie --replica-mode auf read-only.

Um ein Oracle-Replikat im aufgespielten Modus zu erstellen, geben Sie ReplicaMode=mounted in der RDS-API-Operation CreatedBinstanceReadReplica an.

https://rds.amazonaws.com/ ?Action=CreateDBInstanceReadReplica &DBInstanceIdentifier=myreadreplica &SourceDBInstanceIdentifier=mydbinstance &Version=2012-01-15 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2012-01-20T22%3A06%3A23.624Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature> &ReplicaMode=mounted

Ändern des Oracle-Replikatmodus

Um den Replikatmodus eines vorhandenen Replikats zu ändern, verwenden Sie entweder die Konsole, die AWS CLI oder die RDS-API. Wenn Sie in den aufgespielten Modus wechseln, trennt das Replikat alle aktiven Verbindungen. Wenn Sie in den schreibgeschützten Modus wechseln, initialisiert Amazon RDS Active Data Guard.

Die Wechseloperation kann einige Minuten dauern. Während der Operation ändert sich der Status der DB-Instance in Modifying (Wird geändert). Weitere Hinweise zu Statusänderungen finden Sie unter DB-Instance-Status.

So ändern Sie den Replikatmodus eines Oracle-Replikats von aufgespielt zu schreibgeschützt

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Wählen Sie im Navigationsbereich Databases (Datenbanken) aus.

  3. Wählen Sie die aufgespielte Replikatdatenbank aus.

  4. Wählen Sie Modify aus.

  5. Wählen Sie für Replica mode (Replikatmodus) die Option Read-only (Schreibgeschützt).

  6. Wählen Sie die anderen Einstellungen aus, die Sie ändern möchten:

  7. Klicken Sie auf Continue.

  8. Wählen Sie für Scheduling of modifications (Einplanung von Änderungen) die Option Apply immediately (Sofort anwenden) aus.

  9. Wählen Sie Modify DB Instance (DB-Instance ändern) aus.

Um ein Read Replica in den aufgespielten Modus zu versetzen, setzen Sie --replica-mode im AWS CLI-Befehl modify-db-instance auf mounted. Um ein aufgespieltes Replikat in den schreibgeschützten Modus zu versetzen, setzen Sie --replica-mode auf read-only.

Beispiel

Für Linux, macOS oder Unix:

aws rds modify-db-instance \ --db-instance-identifier myreadreplica \ --replica-mode mode

Für Windows:

aws rds modify-db-instance ^ --db-instance-identifier myreadreplica ^ --replica-mode mode

Um ein schreibgeschütztes Replikat in den aufgespielten Modus zu versetzen, stellen Sie ReplicaMode=mounted in ModifyDBInstance ein. Um ein aufgespieltes Replikat in den schreibgeschützten Modus zu versetzen, stellen Sie ReplicaMode=read-only ein.

https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=myreadreplica &SourceDBInstanceIdentifier=mysourcedb &Version=2012-01-15 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2012-01-20T22%3A06%3A23.624Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature> &ReplicaMode=mode

Fehlerbehebung bei Oracle-Replikaten

Um die Replikationsverzögerung in Amazon CloudWatch zu überwachen zeigen Sie die Amazon RDS ReplicaLag-Metrik an. Weitere Informationen zur zeitlichen Verzögerung bei der Replikation finden Sie unter Überwachen der Lesereplikation.

Wenn die Replikationsverzögerung zu groß ist, können Sie die folgenden Ansichten nach Informationen zur Verzögerung abfragen:

  • V$ARCHIVED_LOG – Zeigt, welche Commits auf das Lesereplikat angewendet wurden.

  • V$DATAGUARD_STATS – Zeigt eine detaillierte Aufschlüsselung der Komponenten, aus denen die Metrik replicaLag besteht.

  • V$DATAGUARD_STATUS – Zeigt die Protokollausgabe der internen Replikationsvorgänge von Oracle.