Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$DATABASE_REFRESH_PROGRESS , SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB — Obsoleto

A família de funções SYSTEM$DATABASE_REFRESH_PROGRESS pode ser usada para consultar o status de uma atualização do banco de dados em várias dimensões:

  • SYSTEM$DATABASE_REFRESH_PROGRESS retorna um objeto JSON indicando o status atual de atualização de um banco de dados secundário pelo nome.

  • SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB retorna um objeto JSON indicando o status atual de atualização de um banco de dados secundário através de uma consulta de atualização.

Nota

Estas funções retornam a atividade de atualização do banco de dados dos últimos 14 dias.

Sintaxe

SYSTEM$DATABASE_REFRESH_PROGRESS( '<secondary_db_name>' )

SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB( '<query_id>' )
Copy

Argumentos

secondary_db_name

Nome do banco de dados secundário. Este argumento é opcional se o banco de dados secundário for o banco de dados ativo na sessão atual.

Observe que o nome completo deve ser delimitado por aspas simples.

query_id

ID da consulta de atualização do banco de dados. A ID da consulta pode ser obtida da página History History tab na interface da Web.

Saída

A função retorna os seguintes elementos em um objeto JSON:

Nome da coluna

Tipo de dados

Descrição

phaseName

TEXT

Nome das fases de replicação concluídas (ou em andamento) até o momento. Para a lista de fases, consulte as notas de uso.

resultName

TEXT

Status da fase de replicação.

startTimeUTC

NUMBER

Hora em que a fase de replicação começou. O formato é hora de época.

endTimeUTC

NUMBER

Hora em que a fase terminou, se aplicável. O formato é hora de época.

detalhes

VARIANT

Um objeto separado JSON que mostra o número total de bytes na atualização de dados, assim como o número de bytes copiados até agora na fase. Se a instrução de atualização anteriormente falhou ou foi cancelada e foi iniciada novamente, o objeto indicará o número de bytes pulados na segunda tentativa. O objeto details está incluído nas informações de fases Copying Primary Data e Copying Replica Data.

Notas de uso

  • Só retorna resultados para administradores de conta (usuários com a função ACCOUNTADMIN).

  • A seguir está a lista das fases na ordem processada:

    1. SECONDARY_UPLOADING_INVENTORY

    2. PRIMARY_UPLOADING_METADATA

    3. PRIMARY_UPLOADING_DATA

    4. SECONDARY_DOWNLOADING_METADATA

    5. SECONDARY_DOWNLOADING_DATA

    6. COMPLETED / FAILED / CANCELED

Exemplos

O exemplo a seguir recupera o status atual de atualização para o banco de dados secundário especificado. Os resultados são retornados em um objeto JSON:

SELECT SYSTEM$DATABASE_REFRESH_PROGRESS('mydb');
Copy

O exemplo seguinte recupera os mesmos detalhes que no exemplo anterior, mas os resultados são separados em colunas relacionais e os carimbos de data/hora são convertidos em TIMESTAMP_LTZ:

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'))));
Copy

O exemplo a seguir recupera o status para a consulta de atualização do banco de dados especificado. Os resultados são retornados em um objeto JSON:

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

O exemplo seguinte recupera os mesmos detalhes que no exemplo anterior, mas os resultados são separados em colunas relacionais e os carimbos de data/hora são convertidos em TIMESTAMP_LTZ:

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'))));
Copy