Exporter (0) Imprimer
Développer tout

ALTER FEDERATION (Base de données SQL Azure)

Mis à jour: avril 2014

Cette rubrique est obsolète. La version actualisée est disponible à la page Référence SQL 14 Transact-SQL. Consultez la rubrique ALTER FEDERATION.

ImportantImportant
La mise en œuvre actuelle des fédérations sera hors service avec les couches de service Web et Business. Envisagez de déployer des solutions de partitionnement personnalisées pour maximiser l'évolutivité, la souplesse et les performances. Pour plus d'informations sur le partitionnement personnalisé, consultez la rubrique Montée en puissance parallèle de bases de données SQL Azure.

Permet de modifier la distribution des données au sein d'une fédération.

Conventions de syntaxe (Base de données SQL Azure)


ALTER FEDERATION federation_name
{
    SPLIT AT (distribution_name = boundary_value)
    | DROP AT ([LOW|HIGH] distribution_name = boundary_value)
}[;]

federation_name
Nom de la fédération à créer. Le nom doit être unique au sein de la Base de données SQL et être conforme aux règles applicables aux identificateurs. Il est de type sysname.

distribution_name
Nom de la clé de fédération. Le nom est un identificateur qui fait référence à la clé de fédération. Il est utilisé avec des instructions liées aux fédérations (CREATE TABLE … FEDERATED ON(...) ou USE FEDERATION). distribution_name doit être conforme aux règles applicables aux identificateurs et de type sysname.

Boundary_value est le point de division pour l'opération de repartitionnement. La valeur limite doit être une valeur valide pour le type de données spécifié par la clé de fédération de la fédération. Dans le cas d'une opération SPLIT, range_low et range_high deviennent la valeur des nouveaux membres de fédération créés dans le cadre de cette opération.

SPLIT AT (distribution_name = boundary_value)
Déplace les données du membre de fédération qui contient actuellement la valeur limite dans deux nouveaux membres de la fédération. Toutes les lignes des tables fédérées contenant des instances de clé de fédération < boundary_value sont copiées dans l'un des nouveaux membres de fédération de destination. Les instances de >= boundary value sont copiées dans l'autre nouveau membre de fédération. Tous les autres objets tels que les tables de référence, les procédures stockées, les fonctions, les utilisateurs et les autorisations définies sur les objets sont clonés aux nouveaux membres de la fédération.

DROP AT ([LOW|HIGH] distribution_name = boundary_value)
Supprime un membre de fédération et étend la plage d'un membre de fédération adjacent pour combler le vide créé par l'opération DROP. Cette opération a un impact à la fois sur le membre de fédération supprimé et sur le membre de fédération adjacent qui sera étendu pour combler le vide. LOW ou HIGH détermine le membre de fédération qui sera supprimé à la boundary_value de la fédération spécifiée. La valeur limite doit correspondre à une valeur de partition existante (range-high ou range_low des membres de la fédération) dans la fédération.

Lors de l'opération DROP, aucune comparaison de schémas n'est effectuée entre les membres de fédération concernés. L'opération DROP ne nécessite pas de copie physique de données. Elle réinitialise les connexions et modifie les éléments db_name() des membres de fédération concernés.

DROP est une opération asynchrone.

Propriétés de l'opération SPLIT

  • L'instruction ALTER FEDERATION ... SPLIT doit être la seule instruction du traitement et ne peut pas faire partie d'une transaction externe.

  • L'instruction ALTER FEDERATION … SPLIT peut être exécutée uniquement si une connexion est établie à la base de données racine de fédération.

  • Seule une commande DROP ou SPLIT peut être active à la fois sur les membres de fédération concernés. Il peut y avoir de nombreuses commandes DROP et SPLIT actives en même temps dans la mesure où ils fonctionnent sur ​​les différents membres d'une fédération.

  • Tous les membres de fédération de destination (les membres de la fédération créée dû à une opération de SLIPT) héritent des propriétés MAXSIZE et EDITION du membre de fédération source.

  • L'opération SPLIT est une opération atomique. Tous les membres de destination doivent être correctement créés et synchronisés pour que l'opération SPLIT aboutisse.

  • L'opération SPLIT est une opération asynchrone.

    Pendant l'exécution de SPLIT

    • Tous les objets, schémas et métadonnées système normaux (non fédérés) sont copiés du membre de fédération source faisant l'objet du fractionnement (SPLIT) vers le membre de fédération de destination. Cette liste comprend notamment les utilisateurs, les rôles, les autorisations d'objet, les procédures stockées, les vues, les tables fédérées ou de référence et les index. Les statistiques de distribution marquées pour recalcul sont l'unique exception. Les statistiques marquées avec NORECOMPUTE sont conservées et ne sont pas recalculées dans les tables fédérées après des opérations de repartitionnement.

    • Tous les schémas de table fédérée sont copiés du membre de fédération source faisant l'objet du fractionnement (SPLIT) vers le membre de fédération de destination.

    • Les données utilisateur contenues dans les tables fédérées sont déplacées vers les membres de fédération de destination en fonction de la valeur limite.

    • Les données utilisateur contenues dans tous les tables de référence sont clonées puis déplacées vers le membre de fédération de destination.

    À la fin de SPLIT ;

    • Le nouveau membre de fédération contient toutes les données à jour des membres de fédération de destination correspondants.

    • La vue sys.federation_members est mise à jour pour inclure les nouveaux membres de fédération de destination avec leurs valeurs de plage. Le membre de fédération source est supprimé et n'existe plus dans sys.databases ni sys.federation_members.

    • Toutes les connexions existantes aux membres de fédération sources sont déconnectées. Lors d'une nouvelle tentative, les nouvelles connexions sont acheminées vers les nouveaux membres de fédération.

Propriétés de l'opération DROP

  • L'instruction ALTER FEDERATION ... DROP doit être la seule instruction du traitement et ne peut pas faire partie d'une transaction externe.

  • L'instruction ALTER FEDERATION … DROP peut être exécutée uniquement si une connexion est établie à la base de données racine de fédération.

  • La valeur limite doit correspondre à une limite de plage existante (range_high, range_low) dans la fédération.

  • L'opération DROP est une opération asynchrone.

    Lorsque l'opération DROP commence, l'option LOW ou HIGH et la valeur limite spécifiée déterminent le membre de fédération qui sera abandonné. Un membre de fédération adjacent s'est élargi pour couvrir la plage du membre de fédération supprimé.

    Pendant l'exécution de DROP, aucun transfert de données n'est effectué et aucune comparaison de schémas ne se produit.

    À la fin de DROP ;

    • Le membre de fédération restant est renommé.

    • La table sys.federation_members n'inclut plus le membre de fédération abandonné et porte la plage mise à jour du membre de fédération restant.

    • Toutes les connexions existantes aux membres de fédération sont déconnectées. Le membre de fédération supprimé n'accepte plus les connexions. Le membre de fédération restant déconnecte toutes les connexions existantes.

Considérations de sécurité relatives aux opérations de fédération

Pour pouvoir créer, modifier et supprimer des fédérations, vous devez être connecté à la racine de fédération et être membre du rôle dbmanager sur le serveur. Vous devez également être membre du groupe dbo pour la base de données.

Les instructions SPLIT et DROP nécessitent que vous disposiez d'autorisations CREATE et DROP DATABASE sur les membres de fédération sources et sur le serveur auquel vous êtes connecté. Dans Base de données SQL Microsoft Azure, cela se limite aux membres du rôle de serveur dbmanager. Le propriétaire du membre de fédération source devient le propriétaire du membre de fédération de destination, quel que soit le compte d'utilisateur qui exécute l'opération.

Concurrence des opérations SPLIT et DROP

L'exécution simultanée de plusieurs opérations DROP ou SPLIT est autorisée à condition qu'aucun des membres de fédération source ou de destination ne se chevauchent.

  • DROP AT (LOW distribution_name = boundary_value)

    Supprime le membre de fédération au niveau inférieur (LOW) de la valeur limite et étend le membre de fédération au niveau supérieur (HIGH) de la valeur limite. Prenons pour exemple une fédération (fed1) contenant trois membres de fédération couvrant les plages 0,100 (db1), 100,200 (db2) et 200,300 (db3). L'exécution de ALTER FEDERATION fed1 DROP AT (LOW customer_id=200) produit les effets suivants :

    1. db2 et toutes les données comprise dans la plage 100-200 sont supprimés.

    2. db3 est renommé db4. L'identificateur Dbid de db4 reste inchangé.

    3. db4 couvre à présent la plage 100-300.

  • DROP AT (HIGH distribution_name = boundary_value)

    Supprime le membre de fédération au niveau supérieur (HIGH) de la valeur limite et étend le membre de fédération au niveau inférieur (LOW) de la valeur limite. Prenons pour exemple une fédération (fed1) contenant trois membres de fédération couvrant les plages 0,100 (db1), 100,200 (db2) et 200,300 (db3). L'exécution de ALTER FEDERATION fed1 DROP AT (HIGH customer_id=200) produit les effets suivants :

    1. db3 et toutes les données comprise dans la plage 200-300 sont supprimés.

    2. db2 est renommé db4. L'identificateur Dbid de db4 est le même que celui de db2.

    3. db4 couvre à présent la plage 100-300.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft