ALTER REPLICATION GROUP

Modifica as propriedades de um grupo de replicação existente.

A partir da conta de origem, você pode realizar as seguintes ações:

  • Renomear o grupo de replicação.

  • Redefinir a lista de tipos de objetos especificados habilitados para replicação.

  • Definir ou atualizar o cronograma de replicação para atualização automática de grupos de replicação secundários.

  • Adicionar ou remover objetos de conta dos seguintes tipos para ou de um grupo de replicação:

    • Bancos de dados

    • Compartilhamentos

    • Integrações de segurança

    • Integrações de API

  • Adicionar ou remover contas alvo habilitadas para replicação.

  • Mover bancos de dados ou compartilhamentos de um grupo de replicação para outro grupo de replicação.

A partir da conta de destino, você pode realizar as seguintes ações:

  • Atualizar os objetos na conta de destino a partir da conta de origem.

  • Suspender a replicação programada.

  • Retomar a replicação programada.

Consulte também:

CREATE REPLICATION GROUP, DROP REPLICATION GROUP, SHOW REPLICATION GROUPS

Sintaxe

Conta de origem

ALTER REPLICATION GROUP [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
  [ OBJECT_TYPES = <object_type> [ , <object_type> , ... ] ]
  [ REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]

ALTER REPLICATION GROUP [ IF EXISTS ] <name> SET
  OBJECT_TYPES = INTEGRATIONS [ , <object_type> , ... ] ]
  ALLOWED_INTEGRATION_TYPES = <integration_type_name> [ , <integration_type_name> ... ] ]
  [ REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  ADD <db_name> [ , <db_name> ,  ... ] TO ALLOWED_DATABASES

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  MOVE DATABASES <db_name> [ , <db_name> ,  ... ] TO REPLICATION GROUP <move_to_rg_name>

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  REMOVE <db_name> [ , <db_name> ,  ... ] FROM ALLOWED_DATABASES

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  ADD <share_name> [ , <share_name> ,  ... ] TO ALLOWED_SHARES

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  MOVE SHARES <share_name> [ , <share_name> ,  ... ] TO REPLICATION GROUP <move_to_rg_name>

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  REMOVE <share_name> [ , <share_name> ,  ... ] FROM ALLOWED_SHARES

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  ADD <org_name>.<target_account_name> [ , <org_name>.<target_account_name> ,  ... ] TO ALLOWED_ACCOUNTS
  [ IGNORE EDITION CHECK ]

ALTER REPLICATION GROUP [ IF EXISTS ] <name>
  REMOVE <org_name>.<target_account_name> [ , <org_name>.<target_account_name> ,  ... ] FROM ALLOWED_ACCOUNTS

Conta de destino

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> REFRESH

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> SUSPEND

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> RESUME

Parâmetros

Conta de origem

name

Especifica o identificador do grupo de replicação.

RENAME TO new_name

new_name

Especifica o novo identificador do grupo de replicação. O novo identificador não pode ser usado se o identificador já estiver sendo usado para uma replicação ou grupo de failover diferente.

Para obter mais detalhes, consulte Requisitos para identificadores.

SET ...

Especifica uma (ou mais) propriedades a serem definidas para o grupo de replicação (separadas por espaços em branco, vírgulas ou novas linhas). Para obter mais detalhes sobre as propriedades que você pode definir, consulte CREATE REPLICATION GROUP.

ADD db_name [ , db_name ,  ... ] TO ALLOWED_DATABASES

Especifica uma lista separada por vírgulas de bancos de dados a serem adicionados à lista de bancos de dados habilitados para replicação. Para adicionar um banco de dados, DATABASES deve ser incluído na lista de tipos de objetos especificados. Se a lista de tipos de objetos ainda não inclui DATABASES, você deve adicioná-lo.

db_name

Especifica o identificador do banco de dados.

MOVE DATABASES db_name [ , db_name ,  ... ] TO REPLICATION GROUP move_to_rg_name

Especifica uma lista separada por vírgulas de bancos de dados para passar de um grupo de replicação para outro grupo de replicação. O grupo de replicação para o qual os bancos de dados estão sendo movidos deve incluir DATABASES na lista de tipos de objetos especificados.

db_name

Especifica o identificador do banco de dados.

move_to_rg_name

Especifica o identificador do grupo de replicação para o qual os bancos de dados estão sendo movidos.

REMOVE db_name [ , db_name ,  ... ] FROM ALLOWED_DATABASES

Especifica uma lista separada por vírgulas de bancos de dados a serem removidos da lista de bancos de dados habilitados para replicação.

ADD share_name [ , share_name ,  ... ] TO ALLOWED_SHARES

Especifica uma lista separada por vírgulas de compartilhamentos para a lista de compartilhamentos para replicação. Para adicionar uma ação, SHARES deve ser incluído na lista de tipos de objetos especificados. Se a lista de tipos de objetos ainda não inclui SHARES, você deve adicioná-lo.

share_name

Especifica o identificador do compartilhamento.

MOVE SHARES share_name [ , share_name ,  ... ] TO REPLICATION GROUP move_to_rg_name

Especifica uma lista separada por vírgulas de compartilhamentos para passar de um grupo de replicação para outro grupo de replicação. O grupo de replicação para o qual os compartilhamentos estão sendo movidos deve incluir SHARES na lista de tipos de objetos especificados.

share_name

Especifica o identificador do compartilhamento.

move_to_rg_name

Especifica o identificador do grupo de replicação para o qual os compartilhamentos estão sendo movidos.

REMOVE share_name [ , share_name ,  ... ] FROM ALLOWED_SHARES

Especifica uma lista separada por vírgulas de compartilhamentos a serem removidos da lista de compartilhamentos habilitados para replicação.

ADD org_name.target_account_name [ , org_name.target_account_name ,  ... ] TO ALLOWED_ACCOUNTS

Especifica uma lista separada por vírgulas de contas de destino a adicionar ao grupo de replicação primário para permitir a replicação e de objetos especificados na conta de origem para a conta de destino.

org_name

Nome de sua organização no Snowflake.

target_account_name

Conta de destino na qual você está habilitando a replicação dos objetos especificados.

REMOVE org_name.target_account_name [ , org_name.target_account_name ,  ... ] FROM ALLOWED_ACCOUNTS

Especifica uma lista separada por vírgulas de contas de destino a remover do grupo de replicação primário para desativar a replicação de objetos especificados na conta de origem para a conta de destino.

org_name

Nome de sua organização no Snowflake.

target_account_name

Conta de destino na qual você está desativando a replicação dos objetos especificados.

IGNORE EDITION CHECK

Permite replicar objetos para contas em edições inferiores em um dos seguintes cenários:

  • O grupo de replicação primário apenas com objetos e/ou bancos de dados de compartilhamento está em uma conta Business Critical (ou superior), mas uma ou mais contas aprovadas para replicação estão em edições inferiores. O Business Critical Edition é destinado a contas Snowflake com dados extremamente confidenciais.

  • Um grupo de replicação primária com qualquer tipo de objeto está em uma conta Business Critical (ou superior) e um acordo assinado de associado comercial está em vigor para armazenar dados PHI na conta por regulamentos HIPAA e HITRUST. No entanto, nenhum contrato desse tipo está em vigor para uma ou mais contas aprovadas para replicação, independentemente de serem contas Business Critical (ou superiores).

Ambos os cenários são proibidos por padrão em um esforço para ajudar a evitar que os administradores de contas Business Critical (ou superiores) repliquem inadvertidamente dados confidenciais para contas em edições anteriores.

Conta de destino

secondary_name

Especifica o identificador do grupo de replicação.

REFRESH

Atualiza os objetos na conta de destino (atual) a partir da conta de origem.

SUSPEND

Suspender a atualização programada do grupo de replicação secundário (se o grupo de replicação primário tiver atualizações programadas definidas usando a propriedade REPLICATION_SCHEDULE).

Nota

Suspender a replicação programada não suspende uma operação de atualização que está atualmente em andamento. Isso suspende o cronograma para que nenhuma atualização adicional seja programada depois que a atual for concluída.

RESUME

Retomar a atualização programada do grupo de replicação secundário (se o grupo de replicação primário tiver atualizações programadas definidas usando a propriedade REPLICATION_SCHEDULE).

Notas de uso

  • Os seguintes privilégios mínimos são necessários:

    • Para atualizar um grupo de replicação secundário usando ALTER REPLICATION GROUP … REFRESH, uma função deve ter o privilégio OWNERSHIP ou REPLICATE sobre o grupo de replicação.

    • Para fazer quaisquer outras mudanças no grupo de replicação, somente um usuário com uma função com o privilégio OWNERSHIP no grupo pode executar esse comando SQL.

    • Para adicionar um banco de dados a um grupo de replicação, a função ativa deve ter o privilégio MONITOR sobre o banco de dados.

    • Para adicionar um compartilhamento a um grupo de replicação, a função ativa deve ter o privilégio OWNERSHIP sobre a ação.

  • Identificadores de grupos de failover e grupos de replicação em uma conta devem ser únicos.

  • Objetos que não sejam bancos de dados e compartilhamentos precisam estar no mesmo grupo de replicação.

  • Um banco de dados só pode ser adicionado a um grupo de replicação ou failover.

  • Para mover bancos de dados ou compartilhamentos de um grupo de replicação (o grupo de origem) para outro grupo de replicação (o grupo de destino):

    • Ambos os grupos devem ser do mesmo tipo: REPLICATION GROUP.

    • Ambos os grupos devem ter as mesmas contas listadas na lista allowed_accounts.

    • Se o último banco de dados do grupo de origem for movido para outro grupo, a propriedade allowed_databases para o grupo de origem é definida como NULL. O mesmo comportamento se aplica aos compartilhamentos.

    • Se o grupo de destino não tiver o tipo de objeto que está sendo movido (databases ou shares) na lista object_types, ele deverá ser explicitamente adicionado ao grupo de destino antes de você mover os objetos.

  • Para obter a lista de contas em sua organização que estão habilitadas para replicação, use o comando SHOW REPLICATION ACCOUNTS.

  • Para obter a lista de grupos de replicação em sua organização, use o comando SHOW REPLICATION GROUPS. A coluna allowed_accounts lista todas as contas de destino habilitadas para replicação a partir de uma conta de origem.

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

Executado a partir da conta de origem

Adicione myorg.myaccount3 à lista de contas de destino para as quais a replicação dos objetos especificados da conta de origem está habilitada:

ALTER REPLICATION GROUP myrg ADD myorg.myaccount3 TO ALLOWED_ACCOUNTS;

Redefina a lista de tipos de objetos para replicação na conta de origem:

ALTER REPLICATION GROUP myrg SET
  OBJECT_TYPES = DATABASES, SHARES;

Adicione o bancos de dados db1 à lista de bancos de dados habilitados para replicação:

ALTER REPLICATION GROUP myrg
  ADD db1 to ALLOWED_DATABASES;

Adicione o compartilhamento s2 à lista de compartilhamento habilitados para replicação:

ALTER REPLICATION GROUP myrg
  ADD s2 TO ALLOWED_SHARES;

Mova o banco de dados db1 para outro grupo de replicação, myrg2:

ALTER REPLICATION GROUP myrg
  MOVE DATABASES db1 TO REPLICATION GROUP myrg2;

Defina o tempo de atualização programado como 15 minutos:

ALTER REPLICATION GROUP myrg SET
  REPLICATION_SCHEDULE = '15 MINUTE';

Executado a partir da conta de destino

Atualize os objetos no grupo de replicação myrg na conta de destino:

ALTER REPLICATION GROUP myrg REFRESH;

Suspenda as atualizações automáticas:

ALTER REPLICATION GROUP myrg SUSPEND;