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
Certains types d’intégrations de notification (reportez-vous à Réplication d’intégration)
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
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 sur des comptes dans le scénario suivant :
Un groupe de basculement primaire se trouve dans un compte Business Critical (ou supérieur) et un accord d’associé commercial signé est en place pour stocker les données PHI dans le compte conformément aux réglementations HIPAA et HITRUST. Cependant, 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 de comptes Business Critical (ou supérieurs).
Ce scénario est interdit par défaut.
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 principal 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.
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
oushares
) ne figure pas dans la listeobject_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 :
D’abord, ajoutez
databases
àobject_types
:ALTER FAILOVER GROUP myfg3 SET OBJECT_TYPES = DATABASES, SHARES;Déplacez
db2
versmyfg3
: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;