Ü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:
Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.
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. Wennfg_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
(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ü
(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.
Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.
Wählen Sie Replication und dann Groups aus.
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'));
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.
Melden Sie sich bei Snowsight an, und navigieren Sie zu Admin » Accounts.
Wählen Sie Replication und dann Groups aus.
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 |
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. ![]() |
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:
Tabellenfunktion REPLICATION_GROUP_REFRESH_HISTORY (in Snowflake Information Schema)
Ansicht REPLICATION_GROUP_REFRESH_HISTORY (in Account Usage)
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';
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());
Replikationskosten überwachen¶
Um die Credit-Nutzung für die Replikation zu überwachen, können Sie folgende Abfragen ausführen:
Tabellenfunktion REPLICATION_GROUP_USAGE_HISTORY (in Snowflake Information Schema)
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())));
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());
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.
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';
Beachten Sie die Ausgabe der Summe der Datenbankbytes:
+--------------------+ | SUM_DATABASE_BYTES | |--------------------| | 22016 | +--------------------+
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';
Beachten Sie die Ausgabe der Summe der verbrauchten Credits und der Summe der übertragenen Bytes:
+--------------+-------------------+ | CREDITS_USED | BYTES_TRANSFERRED | |--------------+-------------------| | 1.357923604 | 22013 | +--------------+-------------------+
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.
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';
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'));