Catégories :

Compte et session DDL

ALTER REPLICATION GROUP

Modifie les propriétés d’un groupe de réplication existant.

À partir du compte source, vous pouvez effectuer les actions suivantes :

  • Renommer le groupe de réplication.

  • Réinitialiser la liste des types d’objets spécifiés activés pour la réplication.

  • Définir ou mettre à jour la planification de la réplication pour l’actualisation automatique des groupes de réplication secondaires.

  • Ajouter ou supprimer les objets de compte des types suivants à un groupe de réplication ou à partir de celui-ci :

    • Bases de données

    • Partages

    • Intégrations de sécurité

    • Intégrations API

  • Ajouter ou supprimer des comptes cibles activés pour la réplication.

  • Déplacer des bases de données ou des partages d’un groupe de réplication vers un autre groupe de réplication.

À partir du compte cible, vous pouvez effectuer les actions suivantes :

  • Actualiser les objets du compte cible à partir du compte source.

  • Suspendre la réplication planifiée.

  • Reprendre la réplication planifiée.

Voir aussi :

CREATE REPLICATION GROUP , DROP REPLICATION GROUP , SHOW REPLICATION GROUPS

Dans ce chapitre :

Syntaxe

Compte source

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

Compte cible

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> REFRESH

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> SUSPEND

ALTER REPLICATION GROUP [ IF EXISTS ] <secondary_name> RESUME

Paramètres

Compte source

name

Spécifie l’identificateur pour le groupe de réplication.

RENAME TO new_name

new_name

Spécifie le nouvel identificateur pour le groupe de réplication. Le nouvel identificateur ne peut pas être utilisé si l’identificateur est déjà en place pour une réplication différente ou un groupe de basculement différent.

Pour plus de détails, voir Exigences relatives à l’identificateur.

SET ...

Spécifie une ou plusieurs propriétés à définir pour le groupe de réplication (séparées par des espaces, des virgules ou de nouvelles lignes) : Pour plus de détails sur les propriétés que vous pouvez définir, voir CREATE REPLICATION GROUP.

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

Spécifie une liste de bases de données, séparées par des virgules, à ajouter à la liste des bases de données pour lesquelles la réplication est activée. Pour ajouter une base de données, DATABASES doit être inclus dans la liste des types d’objets spécifiés. Si la liste des types d’objets ne comprend pas déjà DATABASES, vous devez l’ajouter.

db_name

Spécifie l’identificateur de la base de données.

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

Spécifie une liste de bases de données, séparées par des virgules, à déplacer d’un groupe de réplication vers un autre groupe de réplication. Le groupe de réplication vers lequel les bases de données sont déplacées doit inclure DATABASES dans la liste des types d’objets spécifiés.

db_name

Spécifie l’identificateur de la base de données.

move_to_rg_name

Spécifie l’identificateur du groupe de réplication vers lequel les bases de données sont déplacées.

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

Spécifie une liste de bases de données, séparées par des virgules, à supprimer de la liste des bases de données pour lesquelles la réplication est activée.

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

Spécifie une liste de partages, séparés par des virgules, à ajouter à la liste des partages pour la réplication. Pour ajouter un partage, SHARES doit être inclus dans la liste des types d’objets spécifiés. Si la liste des types d’objets ne comprend pas déjà SHARES, vous devez l’ajouter.

share_name

Spécifie l’identificateur du partage.

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

Spécifie une liste de partages, séparés par des virgules, à déplacer d’un groupe de réplication vers un autre groupe de réplication. Le groupe de réplication vers lequel les partages sont déplacés doit inclure SHARES dans la liste des types d’objets spécifiés.

share_name

Spécifie l’identificateur du partage.

move_to_rg_name

Spécifie l’identificateur du groupe de réplication vers lequel les partages sont déplacés.

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

Spécifie une liste de partages, séparés par des virgules, à supprimer de la liste des partages pour lesquels la réplication est activée.

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

Spécifie une liste de comptes cibles, séparés par des virgules, à ajouter au groupe de réplication principal pour activer la réplication des objets spécifiés dans le compte source vers le compte cible.

org_name

Nom de votre organisation Snowflake.

target_account_name

Compte cible vers lequel vous activez la réplication des objets spécifiés.

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

Spécifie une liste de comptes cibles, séparés par des virgules, à supprimer du groupe de réplication principal pour désactiver la réplication des objets spécifiés dans le compte source vers le compte cible.

org_name

Nom de votre organisation Snowflake.

target_account_name

Compte cible sur lequel vous désactivez la réplication des objets spécifiés.

IGNORE EDITION CHECK

Permet de répliquer des objets vers des comptes sur des éditions inférieures dans l’un des scénarios suivants :

  • Le groupe de réplication principal se trouve dans un compte Business Critical (ou supérieur), mais un ou plusieurs des comptes approuvés pour la réplication se trouvent sur des éditions inférieures. Business Critical Edition est destiné aux comptes Snowflake contenant des données extrêmement sensibles.

  • Le groupe de réplication principal se trouve dans un compte Business Critical (ou supérieur) et un accord de partenariat commercial signé est en place pour stocker des données PHI dans le compte conformément aux réglementations HIPAA et HITRUST, mais aucun accord de ce type n’est en place pour un ou plusieurs des comptes approuvés pour la réplication, qu’il s’agisse ou non de comptes Business Critical (ou supérieurs).

Les deux scénarios sont interdits par défaut dans le but d’empêcher les administrateurs de comptes Business Critical (ou supérieurs) de répliquer par inadvertance des données sensibles vers des comptes sur des éditions inférieures.

Compte cible

secondary_name

Spécifie l’identificateur pour le groupe de réplication.

REFRESH

Actualise les objets du compte cible (actuel) à partir du compte source.

SUSPEND

Suspendez l’actualisation planifiée du groupe de réplication secondaire (si le groupe de réplication principal a une planification planifiée automatique définie à l’aide de la propriété REPLICATION_SCHEDULE).

Note

La suspension de la réplication planifiée ne suspend pas une opération d’actualisation en cours. Elle suspend la planification de sorte qu’aucune actualisation supplémentaire ne soit prévue après la fin de l’actualisation en cours.

RESUME

Reprenez l’actualisation planifiée du groupe de réplication secondaire (si le groupe de réplication principal a une planification planifiée automatique définie à l’aide de la propriété REPLICATION_SCHEDULE).

Notes sur l’utilisation

  • Les privilèges minimaux suivants sont requis :

    • Pour actualiser un groupe de réplication secondaire à l’aide de ALTER REPLICATION GROUP … REFRESH, un rôle doit posséder le privilège OWNERSHIP ou REPLICATE sur le groupe de réplication.

    • Pour apporter d’autres modifications au groupe de réplication, seul un utilisateur avec un rôle doté du privilège OWNERSHIP sur le groupe peut exécuter cette commande SQL.

    • Pour ajouter une base de données à un groupe de réplication, le rôle actif doit disposer du privilège MONITOR sur la base de données.

    • Pour ajouter un partage à un groupe de réplication, le rôle actif doit avoir le privilège OWNERSHIP sur le partage.

  • Les identificateurs des groupes de basculement et des groupes de réplication d’un compte doivent être uniques.

  • Les objets autres que les bases de données et les partages doivent être dans le même groupe de réplication.

  • Une base de données ne peut être ajoutée qu’à un seul groupe de réplication ou de basculement.

  • Pour déplacer des bases de données ou des partages d’un groupe de réplication (le groupe d’origine) vers un autre groupe de réplication (le groupe de destination) :

    • Les deux groupes doivent être du même type : REPLICATION GROUP.

    • Les deux groupes doivent avoir les mêmes comptes répertoriés dans la liste allowed_accounts.

    • Si la dernière base de données du groupe d’origine est déplacée vers un autre groupe, la propriété allowed_databases du groupe d’origine prend la valeur NULL. Le même comportement s’applique aux partages.

    • Si le type d’objet à déplacer (databases ou shares) ne figure pas dans la liste object_types du groupe d’origine, il doit être explicitement ajouté au groupe de destination avant de déplacer les objets.

  • Pour récupérer la liste des comptes de votre organisation qui sont activés pour la réplication, utilisez la commande SHOW REPLICATION ACCOUNTS.

  • Pour récupérer la liste des groupes de réplication de votre organisation, utilisez la commande SHOW REPLICATION GROUPS. La colonne allowed_accounts répertorie tous les comptes cibles activés pour la réplication à partir d’un compte source.

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

Exécution depuis le compte source

Ajoutez myorg.myaccount3 à la liste des comptes cibles vers lesquels la réplication des objets spécifiés depuis le compte source est activée :

ALTER REPLICATION GROUP myrg ADD myorg.myaccount3 TO ALLOWED_ACCOUNTS;

Réinitialisez la liste des types d’objets pour la réplication dans le compte source :

ALTER REPLICATION GROUP myrg SET
  OBJECT_TYPES = DATABASES, SHARES;

Ajoutez la base de données db1 à la liste des bases de données pour lesquelles la réplication est activée :

ALTER REPLICATION GROUP myrg
  ADD db1 to ALLOWED_DATABASES;

Ajoutez le partage s2 à la liste des partages pour lesquels la réplication est activée :

ALTER REPLICATION GROUP myrg
  ADD s2 TO ALLOWED_SHARES;

Déplacez la base de données db1 vers un autre groupe de réplication, myrg2 :

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

Définissez l’intervalle d’actualisation planifiée à 15 minutes :

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

Exécution depuis le compte cible

Actualisez les objets du groupe de réplication myrg dans le compte cible :

ALTER REPLICATION GROUP myrg REFRESH;

Suspendez les actualisations automatiques :

ALTER REPLICATION GROUP myrg SUSPEND;
Revenir au début