Überwachung von Replikation und Failover

Hier erfahren Sie, wie Sie den Fortschritt, den Verlauf und die Kosten der Kontoreplikation überwachen können.

Unter diesem Thema:

Verwenden Sie Snowsight zur Überwachung der Replikation

Um den Replikationsfortschritt und -status für Replikations- und Failover-Gruppen einer Organisation zu überwachen, verwenden Sie die Seite Replication in Snowsight.

Sie können den Status und die Details von Aktualisierungsoperationen anzeigen, einschließlich:

  • Aktueller Status der letzten Aktualisierungsoperation.

  • Verzögerungszeit des Replikats (Zeit seit der letzten Aktualisierungoperation).

  • Verteilung der Verzögerungszeiten des Replikats auf Gruppen.

  • Datum und Uhrzeit der nächsten geplanten Aktualisierungsoperation

Bemerkung

  • Snowsight listet die Replikations- und Failover-Gruppen auf, für die Ihre Rolle die Berechtigung MONITOR, OWNERSHIP oder REPLICATE hat.

  • Die Details zu Aktualisierungsoperationen sind nur für Benutzer mit der Rolle ACCOUNTADMIN oder der Berechtigung OWNERSHIP für die Gruppe verfügbar.

  • Sie müssen bei dem Quell- oder Zielkonto angemeldet sein, um die Details der Aktualisierungsoperation anzuzeigen. Wenn Sie dies nicht sind, werden Sie aufgefordert, sich anzumelden.

    Sowohl das Quellkonto als auch das Zielkonto müssen denselben Verbindungstyp (öffentliches Internet) verwenden. Andernfalls schlägt die Anmeldung bei dem Zielkonto fehl.

Um den Replikationsstatus der einzelnen Replikations- oder Failover-Gruppen anzuzeigen, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.

  2. Wählen Sie Replication und dann Groups aus.

Auf der Seite Groups werden Details zur Aktualisierungsoperation für alle Gruppen angezeigt, für die Ihre Rolle eine Berechtigung zum Anzeigen hat. Sie können die Kacheln verwenden, um die Ansicht zu filtern.

  • Wenn zum Beispiel die Kachel Status anzeigt, dass Aktualisierungsoperationen fehlgeschlagen sind, können Sie die Kachel auswählen, um fehlerhafte Gruppen zu untersuchen.

  • Die Verzögerungszeit in der Kachel Longest Replication lag bezieht sich auf die Zeitspanne seit der letzten Aktualisierungsoperation. Dies ist die Zeitspanne, die die sekundäre Replikations- oder Failover-Gruppe hinter der primären Gruppe zurückbleibt. Die längste Verzögerungszeit ist die Zeitspanne, die seit der letzten Aktualisierung der ältesten sekundären Replikationsgruppe vergangen ist.

    Wenn Sie beispielsweise drei Failover-Gruppen fg_1, fg_2, fg_3 mit unabhängigen Replikationsplänen von jeweils 10 Minuten, 2 Stunden und 12 Stunden haben, kann die längste Verzögerungszeit bis zu 12 Stunden betragen. Wenn fg_3 jedoch erst kurz zuvor im Zielkonto aktualisiert wurde, wird deren Verzögerungszeit auf 0 zurückgesetzt, und eine andere Failover-Gruppe kann eine längere Verzögerungszeit haben.

  • Sie können einen einzelnen Balken in der Kachel Group Lag Distribution auswählen, um die Ergebnisse auf eine einzelne Gruppe zu filtern.

Sie können Gruppen auch mithilfe des Suchfeldes oder der Dropdown-Menüs filtern:

  • Sie können über das Feld Suchsymbol (Suche) nach dem Namen der Replikations- oder Failover-Gruppe suchen.

  • Wählen Sie Type aus, um die Ergebnisse nach Replikations- oder Failover-Gruppe zu filtern.

  • Wählen Sie Replicating aus, um nach primären (To auswählen) oder sekundären Gruppen (From auswählen) zu filtern.

  • Wählen Sie das Menü Kontosymbol (Konten) aus, um die Ergebnisse nach Kontonamen zu filtern.

  • Wählen Sie Status aus, um die Ergebnisse nach dem Status der Aktualisierungsoperation zu filtern:

    • Refresh Cancelled

    • Refresh Failed

    • Refresh In Progress

    • Refresh Successful

Die folgenden Details werden zu Ihren Replikations- und Failover-Gruppen angezeigt:

Spalte

Beschreibung

Name

Name der Replikations- oder Failover-Gruppe.

Is Replicating

Gibt an, ob die Gruppe in ein Zielkonto oder aus einem Quellkonto repliziert wird.

Wenn diese Spalte verfügbare Ziele enthält, gibt es keine sekundären Replikations- oder Failover-Gruppen. Die Anzahl der verfügbaren Ziele gibt die Anzahl der Zielkonten an, in die die primäre Gruppe repliziert werden kann.

Status

Zeigt den Status der letzten Aktualisierungsoperation an.

Sie müssen bei dem Quell- oder Zielkonto angemeldet sein, um auf die Replikationsdetails zugreifen zu können. Wenn Sie nicht angemeldet sind, wählen Sie Sign in aus, um den Status der Aktualisierungsoperation für die sekundäre Gruppe anzuzeigen.

Sowohl das Quellkonto als auch das Zielkonto müssen denselben Verbindungstyp (öffentliches Internet) verwenden. Andernfalls schlägt die Anmeldung bei dem Zielkonto fehl.

Replication Lag

Die Zeitdauer seit der letzten Aktualisierungsoperation. Dies ist die Zeitspanne, die die sekundäre Replikationsgruppe hinter der primären Replikationsgruppe zurückliegt.

Next Refresh

Datum und Uhrzeit der nächsten geplanten Aktualisierungsoperation.

Sie können eine Replikations- oder Failover-Gruppe auswählen, um detaillierte Informationen über jede Aktualisierungsoperation anzuzeigen. Weitere Informationen dazu finden Sie im Abschnitt zum Replikationsverlauf in Snowsight.

Fortschritt von Aktualisierungsoperationen überwachen

In diesem Abschnitt finden Sie Informationen darüber, wie Sie den Replikationsfortschritt für eine bestimmte Replikations- oder Failover-Gruppe mit Snowsight oder SQL überwachen können.

Verwenden Sie Snowsight zur Überwachung des Fortschritts von Aktualisierungsoperationen

Sie können den Status einer laufenden Aktualisierungsoperation und die Details historischer Aktualisierungsoperationen in Snowsight anzeigen.

  1. Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.

  2. Wählen Sie Replication und dann Groups aus.

  3. Wählen Sie den Namen einer Replikations- oder Failover-Gruppe aus.

Weitere Informationen zur Detailansicht finden Sie im Abschnitt zum Replikationsverlauf in Snowsight.

Verwenden Sie SQL, um den Fortschritt der Aktualisierungsoperationen zu überwachen

Um den Fortschritt der Aktualisierung einer Replikations- oder Failover-Gruppe zu überwachen, fragen Sie die Tabellenfunktion REPLICATION_GROUP_REFRESH_PROGRESS, REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB (in Snowflake Information Schema) ab.

Beispiel

Anzeigen des Fortschritts der letzten Aktualisierungsoperation für die Failover-Gruppe myfg:

SELECT phase_name, start_time, end_time, progress, details
  FROM TABLE(INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_PROGRESS('myfg'));
Copy

Replikationsverlauf anzeigen

Sie können den Replikationsverlauf mit Snowsight oder mit SQL anzeigen.

Bemerkung

Sie können den Replikationsverlauf für die Replikations- und Failover-Gruppen anzeigen, für die Ihre Rolle die Berechtigung MONITOR, OWNERSHIP oder REPLICATE hat.

Verwenden Sie Snowsight zur Anzeige des Replikationsverlaufs

Sie können den Replikationsverlauf und die Details zu jeder Aktualisierungsoperation für eine bestimmte Replikations- oder Failover-Gruppe auf der Detailseite der Gruppe anzeigen.

  1. Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.

  2. Wählen Sie Replication und dann Groups aus.

  3. Wählen Sie den Namen einer Replikations- oder Failover-Gruppe aus.

Die folgenden Informationen zu der Gruppe werden angezeigt:

  • Gruppentyp (Replikationsgruppe oder Failover-Gruppe)

  • Replikationsplan (z. B. alle 10 Minuten)

  • Dauer der einzelnen Aktualisierungsoperationen

  • Verzögerungszeit der Replikate (Zeitspanne seit dem letzten Aktualisierungsoperation)

  • Datum und Uhrzeit der nächsten geplanten Aktualisierungsoperation

Sie können die Daten auf der Seite nach Status und Zeitraum filtern:

  • Wählen Sie Status aus, um die Ergebnisse nach dem Status der Aktualisierungsoperation zu filtern:

    • Refresh Cancelled

    • Refresh Failed

    • Refresh In Progress

    • Refresh Successful

  • Wählen Sie Duration aus, um folgende Details zur Aktualisierungsoperation anzuzeigen:

    • Last hour

    • Last 24 hours

    • Last 7 days

    • All

    Wenn Sie All auswählen, werden die Aktualisierungsoperationen der letzten 14 Tage angezeigt.

Die Details zu jeder Aktualisierungsoperation umfassen die folgenden Spalten:

Spalte

Beschreibung

Query ID

Abfrage-ID der Aktualisierungsoperation.

Status

Zeigt den Status der Aktualisierungsoperation an. Gültige Werte sind Successful, Failed, In Progress.

Ended

Datum und Uhrzeit, zu der die Aktualisierungsoperation beendet wurde.

Duration

Zeitdauer für die Ausführung der Aktualisierungsoperation.

Die Dauer ist nach Replikationsphasen aufgeschlüsselt und farblich gekennzeichnet. Die Breite jedes farbigen Segments zeigt an, wie viel Zeit in dieser Phase verbracht wurde.

Die Abbildung unten dient nur als Referenz. Diese Darstellung ist verfügbar, wenn Sie die Aktualisierungsoperation auswählen, um weitere Details anzuzeigen.

Farbcodes für Replikationsphase und -dauer.

Transferred

Anzahl der replizierten Bytes.

Objects

Anzahl der replizierten Objekte.

Wählen Sie eine Zeile aus, um zusätzliche Details zu einer bestimmten Aktualisierungsoperation anzuzeigen:

  • Dauer der einzelnen Replikationsphasen

  • Fehlermeldung (bei fehlgeschlagenen Aktualisierungsoperationen)

  • Liste der replizierten Datenbankobjekte nach Typ und Anzahl

  • Anzahl der replizierten Datenbanken und Datenbanknamen

Verwenden Sie SQL, um den Replikationsverlauf anzuzeigen

Um den Replikationsverlauf einer bestimmten Replikations- oder Failover-Gruppe innerhalb eines bestimmten Datumsbereichs anzuzeigen, führen Sie eine der folgenden Abfragen aus:

Beispiele

Abfragen der Information Schema-Tabellenfunktion REPLICATION_GROUP_REFRESH_HISTORY, um den Kontoreplikationsverlauf der Failover-Gruppe myfg in den letzten 7 Tagen anzuzeigen:

SELECT PHASE_NAME, START_TIME, END_TIME, TOTAL_BYTES, OBJECT_COUNT
  FROM TABLE(information_schema.replication_group_refresh_history('myfg'))
  WHERE START_TIME >= CURRENT_DATE() - INTERVAL '7 days';
Copy

Abfragen der Account Usage-Ansicht REPLICATION_GROUP_REFRESH_HISTORY, um den Kontoreplikationsverlauf im aktuellen Monat anzuzeigen:

SELECT REPLICATION_GROUP_NAME, PHASE_NAME, START_TIME, END_TIME, TOTAL_BYTES, OBJECT_COUNT
  FROM snowflake.account_usage.replication_group_refresh_history
  WHERE START_TIME >= DATE_TRUNC('month', CURRENT_DATE());
Copy

Replikationskosten überwachen

Um die Credit-Nutzung für die Replikation zu überwachen, können Sie folgende Abfragen ausführen:

Beispiele

Abfragen der Tabellenfunktion REPLICATION_GROUP_USAGE_HISTORY, um die in den letzten 7 Tagen für die Kontoreplikation verbrauchten Credits anzuzeigen:

SELECT start_time, end_time, replication_group_name, credits_used, bytes_transferred
  FROM TABLE(information_schema.replication_group_usage_history(date_range_start=>DATEADD('day', -7, CURRENT_DATE())));
Copy

Abfragen der Account Usage-Ansicht REPLICATION_GROUP_USAGE_HISTORY, um die von der Replikations- oder Failover-Gruppe für die Kontoreplikationsverlauf im aktuellen Monat verbrauchten Credits anzuzeigen:

SELECT start_time, 
  end_time, 
  replication_group_name, 
  credits_used, 
  bytes_transferred
FROM snowflake.account_usage.replication_group_usage_history
WHERE start_time >= DATE_TRUNC('month', CURRENT_DATE());
Copy

Replikationskosten für Datenbanken überwachen

Die Kosten für die Replikation einer einzelnen Datenbank, die zu einer Replikations- oder Failover-Gruppe gehört, können berechnet werden, indem die Anzahl der kopierten Bytes für die Datenbank abgerufen und mit den verwendeten Credits verknüpft wird.

Beispiele

Abfrage der Account Usage-Ansichten

In den folgenden Beispielen werden die Kosten für die Datenbankreplikation einer Replikationsgruppe für die letzten 30 Tage berechnet.

  1. Abfragen der Account Usage-Ansicht REPLICATION_GROUP_REFRESH_HISTORY und Berechnen der Gesamtzahl der Bytes, die pro Datenbank repliziert wurden.

    Beispiel: Berechnen der Gesamtzahl der Bytes, die in den letzten 30 Tagen für Datenbanken der Replikationsgruppe myrg repliziert wurden:

    SELECT SUM(value:totalBytesToReplicate) as sum_database_bytes
      FROM snowflake.account_usage.replication_group_refresh_history rh,
        LATERAL FLATTEN(input => rh.total_bytes:databases)
      WHERE rh.replication_group_name = 'MYRG' AND
            rh.start_time >= CURRENT_DATE() - INTERVAL '30 days';
    
    Copy

    Beachten Sie die Ausgabe der Summe der Datenbankbytes:

    +--------------------+
    | SUM_DATABASE_BYTES |
    |--------------------|
    |              22016 |
    +--------------------+
    
  2. Abfragen der Account Usage-Ansicht REPLICATION_GROUP_USAGE_HISTORY und Berechnen der Gesamtzahl der verbrauchten Credits und der Summe der Bytes, die für die Replikation übertragen wurden.

    Beispiel: Berechnen der Gesamtzahl der verbrauchten Credits und der Summe der Bytes, die in den letzten 30 Tagen für die Replikation der Replikationsgruppe myrg übertragen wurden:

    SELECT SUM(credits_used) AS credits_used, SUM(bytes_transferred) AS bytes_transferred
      FROM snowflake.account_usage.replication_group_usage_history
      WHERE replication_group_name = 'MYRG' AND
            start_time >= CURRENT_DATE() - INTERVAL '30 days';
    
    Copy

    Beachten Sie die Ausgabe der Summe der verbrauchten Credits und der Summe der übertragenen Bytes:

    +--------------+-------------------+
    | CREDITS_USED | BYTES_TRANSFERRED |
    |--------------+-------------------|
    |  1.357923604 |             22013 |
    +--------------+-------------------+
    
  3. Berechnen Sie die Replikationskosten für Datenbanken anhand der Werte der für Datenbanken übertragenen Bytes, der Summe der verbrauchten Credits und der Summe aller für die Replikation übertragenen Bytes aus den beiden vorherigen Schritten:

    (<database_bytes_transferred> / <bytes_transferred>) * <credits_used>

    Beispiel:

    (22016 / 22013) * 1.357923604 = 1.35810866)

Abfrage der Tabellenfunktionen des Information Schema

Um Werte für die Aktualisierungsoperationen der letzten 14 Tage zu erhalten, fragen Sie die entsprechenden Tabellenfunktionen des Information Schema ab.

  1. Abfragen der Tabellenfunktion REPLICATION_GROUP_REFRESH_HISTORY, um die Gesamtzahl der Bytes anzuzeigen, die zur Datenbankreplikation der Replikationsgruppe myrg kopiert wurden:

    SELECT SUM(value:totalBytesToReplicate)
      FROM TABLE(information_schema.replication_group_refresh_history('myrg')) AS rh,
      LATERAL FLATTEN(input => total_bytes:databases)
      WHERE rh.phase_name = 'COMPLETED' AND
            rh.start_time >= CURRENT_DATE() - INTERVAL '14 days';
    
    Copy
  2. Abfragen der Tabellenfunktion REPLICATION_GROUP_USAGE_HISTORY, um die Gesamtzahl der verbrauchten Credits und die Summe der Bytes anzuzeigen, die für die Replikation der Replikationsgruppe myrg übertragen wurden:

    SELECT SUM(credits_used), SUM(bytes_transferred)
      FROM TABLE(information_schema.replication_group_usage_history(
        date_range_start => DATEADD('day', -14, CURRENT_DATE()),
        replication_group_name => 'myrg'));
    
    Copy