Catégories :

Compte et session DDL

ALTER FAILOVER GROUP

Modifie les propriétés d’un groupe de basculement.

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

  • Renommez le groupe de basculement.

  • Réinitialisez la liste des types d’objets spécifiés pour lesquels la réplication et le basculement sont activés.

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

  • Ajoutez ou supprimez des objets de compte des types suivants dans ou à partir d’un groupe de basculement :

    • Bases de données

    • Partages

    • Intégrations de sécurité

    • Intégrations API

  • Ajoutez ou supprimez des comptes cibles activés pour la réplication et le basculement.

  • Déplacez des partages ou des bases de données vers un autre groupe de basculement.

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

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

  • Promouvoir un groupe de basculement secondaire en principal (c’est-à-dire basculer le groupe d’objets de basculement).

  • Suspendre la réplication planifiée.

  • Reprendre la réplication planifiée.

Voir aussi :

CREATE FAILOVER GROUP , DROP FAILOVER GROUP , SHOW FAILOVER GROUPS

Dans ce chapitre :

Syntaxe

Compte source

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

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

ALTER FAILOVER 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 FAILOVER GROUP [ IF EXISTS ] <name>
  ADD <db_name> [ , <db_name> ,  ... ] TO ALLOWED_DATABASES

ALTER FAILOVER GROUP [ IF EXISTS ] <name>
  MOVE DATABASES <db_name> [ , <db_name> ,  ... ] TO FAILOVER GROUP <move_to_fg_name>

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

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

ALTER FAILOVER GROUP [ IF EXISTS ] <name>
  MOVE SHARES <share_name> [ , <share_name> ,  ... ] TO FAILOVER GROUP <move_to_fg_name>

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

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

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

Compte cible

ALTER FAILOVER GROUP [ IF EXISTS ] <name> REFRESH

ALTER FAILOVER GROUP [ IF EXISTS ] <name> PRIMARY

ALTER FAILOVER GROUP [ IF EXISTS ] <name> SUSPEND

ALTER FAILOVER GROUP [ IF EXISTS ] <name> RESUME

Paramètres

Compte source

name

Spécifie l’identificateur pour le groupe de basculement.

RENAME TO new_name

new_name

Spécifie le nouvel identificateur pour le groupe de basculement. 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 basculement (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 FAILOVER GROUP.

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

Spécifie une liste de bases de données supplémentaires, séparées par des virgules, à activer pour la réplication et le basculement. Pour ajouter des bases 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 FAILOVER GROUP move_to_fg_name

Spécifie une liste de bases de données, séparées par des virgules, à déplacer d’un groupe de basculement vers un autre groupe de basculement. Le groupe de basculement 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_fg_name

Spécifie l’identificateur du groupe de basculement 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 activées pour la réplication et le basculement.

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

Spécifie une liste de partages supplémentaires, séparés par des virgules, à activer pour la réplication et le basculement. Pour ajouter des partages, 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 FAILOVER GROUP move_to_fg_name

Spécifie une liste de partages, séparés par des virgules, à déplacer d’un groupe de basculement vers un autre groupe de basculement. Le groupe de basculement 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_fg_name

Spécifie l’identificateur du groupe de basculement 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 activés pour la réplication et le basculement.

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 basculement principal pour activer la réplication et le basculement des objets spécifiés dans le compte source vers le compte cible. Les groupes de basculement secondaires dans les comptes cibles de cette liste peuvent être promus en tant que groupe de basculement principal en cas de basculement.

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 basculement principal pour désactiver la réplication des objets spécifiés dans le compte source vers le compte cible. La suppression d’un compte cible désactive le basculement du compte actuel vers ce 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 basculement 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 basculement 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 basculement.

REFRESH

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

PRIMARY

Promouvez un groupe de basculement secondaire et ses objets spécifiés dans le compte cible (actuel) en principal (en cas de basculement).

SUSPEND

Suspendez l’actualisation planifiée du groupe de basculement secondaire (si le groupe de basculement principal a planifié des actualisations à l’aide de la propriété REPLICATION_SCHEDULE).

RESUME

Reprend l’actualisation planifiée du groupe de basculement secondaire (si le groupe de basculement principal à des actualisations planifiées en utilisant la propriété REPLICATION_SCHEDULE).

Notes sur l’utilisation

  • Les privilèges minimaux suivants sont requis :

    • Pour actualiser un groupe de basculement secondaire en utilisant ALTER FAILOVER GROUP … REFRESH, un rôle doit avoir le privilège OWNERSHIP ou REPLICATE sur le groupe de basculement.

    • Pour basculer un groupe de basculement secondaire à l’aide de ALTER FAILOVER GROUP … PRIMARY, un rôle doit avoir le privilège OWNERSHIP ou FAILOVER sur le groupe de basculement.

    • Pour apporter d’autres modifications au groupe de basculement, seul 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 basculement, le rôle actif doit avoir le privilège MONITOR sur la base de données.

    • Pour ajouter un partage à un groupe de basculement, 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 basculement.

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

  • La promotion d’un groupe de basculement secondaire en principal (en cas de basculement) échoue si une actualisation est en cours.

  • Si une actualisation est en cours lorsque la planification de la réplication est mise à jour, l’actualisation se poursuit jusqu’à la fin et la prochaine actualisation utilisera la nouvelle planification.

  • Lors du basculement, les actualisations planifiées sur tous les groupes de basculement secondaires sont suspendues. ALTER FAILOVER GROUP ... RESUME doit être exécuté sur chaque groupe secondaire pour reprendre les actualisations automatiques.

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

    • Les deux groupes doivent être du même type : FAILOVER 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 basculement dans votre organisation, utilisez SHOW FAILOVER GROUPS.

  • 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 auxquels la réplication des objets spécifiés et le basculement depuis le compte source sont activés.

ALTER FAILOVER GROUP myfg ADD myorg.myaccount3 TO ALLOWED_ACCOUNTS;

Réinitialisez la liste des types d’objets pour la réplication dans le compte source et ajoutez la base de données db1 :

ALTER FAILOVER GROUP myfg SET
  OBJECT_TYPES = USERS, ROLES, WAREHOUSES, RESOURCE MONITORS, DATABASES
  ALLOWED_DATABASES = db1;

Ajoutez les bases de données db2 et db3 à la liste des bases de données :

ALTER FAILOVER GROUP myfg
  ADD db2, db3 TO ALLOWED_DATABASES;

Déplacez la base de données db3 vers un autre groupe de basculement, myfg2 :

ALTER FAILOVER GROUP myfg
  MOVE DATABASES db3 TO FAILOVER GROUP myfg2;

Déplacez la base de données db2 dans myfg vers un autre groupe de basculement, myfg3, qui n’a actuellement aucune base de données :

  1. D’abord, ajoutez databases à object_types :

    ALTER FAILOVER GROUP myfg3 SET
      OBJECT_TYPES = DATABASES, SHARES;
    
  2. Déplacez db2 vers myfg3 :

    ALTER FAILOVER GROUP myfg
      MOVE DATABASES db2 TO FAILOVER GROUP myfg3;
    

Supprimez toutes les bases de données de la liste des bases de données du compte source pour la réplication et le basculement :

ALTER FAILOVER GROUP myfg
  SET ALLOWED_DATABASES = NULL;

Note

L’exécution de l’instruction ci-dessus supprime toutes les bases de données de la liste des bases de données à répliquer, mais ne supprime pas les objets de base de données de la liste des types d’objets spécifiés pour la réplication et le basculement.

Pour désactiver la réplication et le basculement de toutes les bases de données et supprimer des bases de données de la liste des types d’objets spécifiés :

ALTER FAILOVER GROUP myfg
  REMOVE databases FROM OBJECT_TYPES;

Ajoutez (ou modifiez) l’intervalle pour les actualisations planifiées automatiquement :

ALTER FAILOVER GROUP myfg
  SET REPLICATION_SCHEDULE = '15 MINUTE';

Exécution depuis le compte cible

Actualisez les objets du groupe de basculement myfg dans le compte cible :

ALTER FAILOVER GROUP myfg REFRESH;

Promouvez le groupe de basculement secondaire dans le compte cible actuel en tant que groupe principal :

ALTER FAILOVER GROUP myfg PRIMARY;

Suspendez les actualisations automatiques :

ALTER FAILOVER GROUP myfg SUSPEND;
Revenir au début