Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$DATABASE_REFRESH_PROGRESS , SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB

Mit der Funktionsfamilie SYSTEM$DATABASE_REFRESH_PROGRESS kann der Status einer Datenbankaktualisierung in verschiedenen Dimensionen abgefragt werden:

  • SYSTEM$DATABASE_REFRESH_PROGRESS gibt ein JSON-Objekt zurück, das den aktuellen Aktualisierungsstatus für eine sekundäre Datenbank nach Namen angibt.

  • SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB gibt ein JSON-Objekt zurück, das den aktuellen Aktualisierungsstatus für eine sekundäre Datenbank durch eine Aktualisierungsabfrage angibt.

Bemerkung

Diese Funktionen geben die Datenbankaktualisierungsaktivitäten der letzten 14 Tage zurück.

Syntax

SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )

SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )

Argumente

Name_der_Sekundärdatenbank

Name der sekundären Datenbank. Dieses Argument ist optional, wenn die sekundäre Datenbank die aktive Datenbank der aktuellen Sitzung ist.

Beachten Sie, dass der gesamte Name in einfache Anführungszeichen gesetzt werden muss.

Abfrage-ID

ID der Datenbank-Aktualisierungsabfrage. Die Abfrage-ID kann von der Seite History History tab der Weboberfläche abgerufen werden.

Ausgabe

Die Funktion gibt die folgenden Elemente in einem JSON-Objekt zurück:

Spaltenname

Datentyp

Beschreibung

phaseName

TEXT

Name der bisher abgeschlossenen (oder laufenden) Replikationsphasen. Die Liste der Phasen finden Sie in den Nutzungshinweisen.

resultName

TEXT

Status der Replikationsphase.

startTimeUTC

NUMBER

Zeitpunkt, zu dem die Replikationsphase begann. Das Format ist die Epochenzeit.

endTimeUTC

NUMBER

Zeitpunkt, zu dem die Phase beendet ist, falls anwendbar. Das Format ist die Epochenzeit.

details

VARIANT

Ein separates JSON-Objekt, das die Gesamtzahl der Bytes in der Datenaktualisierung sowie die Anzahl der in der Phase bisher kopierten Bytes anzeigt. Wenn die Aktualisierungsanweisung zuvor fehlgeschlagen ist oder abgebrochen und erneut initiiert wurde, gibt das Objekt die Anzahl der Bytes an, die beim zweiten Versuch übersprungen wurden. Das Objekt details ist in den Phaseninformationen Copying Primary Data und Copying Replica Data enthalten.

Nutzungshinweise

  • Gibt nur Ergebnisse für Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) zurück.

  • Die folgende Liste zeigt die Verarbeitungsreihenfolge der Phasen:

    1. SECONDARY_UPLOADING_INVENTORY

    2. PRIMARY_UPLOADING_METADATA

    3. PRIMARY_UPLOADING_DATA

    4. SECONDARY_DOWNLOADING_METADATA

    5. SECONDARY_DOWNLOADING_DATA

    6. COMPLETED / FAILED / CANCELED

Beispiele

Im folgenden Beispiel wird der aktuelle Aktualisierungsstatus für die angegebene sekundäre Datenbank abgerufen. Die Ergebnisse werden in einem JSON-Objekt zurückgegeben:

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');

Im folgenden Beispiel werden die gleichen Details wie im vorherigen Beispiel abgerufen, die Ergebnisse werden jedoch in relationale Spalten getrennt und die Zeitstempel werden in TIMESTAMP_LTZ umgewandelt:

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM table(flatten(INPUT=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS('mydb1'))));

Im folgenden Beispiel wird der Status für die angegebene Datenbankaktualisierungsabfrage abgerufen. Die Ergebnisse werden in einem JSON-Objekt zurückgegeben:

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b');

Im folgenden Beispiel werden die gleichen Details wie im vorherigen Beispiel abgerufen, die Ergebnisse werden jedoch in relationale Spalten getrennt und die Zeitstempel werden in TIMESTAMP_LTZ umgewandelt:

SELECT value:phaseName::string AS "Phase",
  value:resultName::string AS "Result",
  TO_TIMESTAMP_LTZ(value:startTimeUTC::numeric,3) AS "startTime",
  TO_TIMESTAMP_LTZ(value:endTimeUTC::numeric,3) AS "endTime",
  value:details AS "details"
  FROM TABLE(FLATTEN(input=> PARSE_JSON(SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB('4cbd7187-51f6-446c-9814-92d7f57d939b'))));