Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

Procédure : utilisation de la copie de base de données (base de données SQL Azure)

Mis à jour: février 2015

Cette rubrique explique comment utiliser la fonctionnalité de copie de base de données pour effectuer une copie de votre base de données SQL Microsoft Azure. La nouvelle base de données créée à la suite de l'opération de copie est une copie entièrement opérationnelle et indépendante de la base de données source. L'opération de copie conserve la couche de service et le niveau de performance de la base de données source. Assurez-vous que le serveur cible dispose d'un quota disponible ; sinon, l'opération échoue. Pour connaître l'ensemble des méthodes et des scénarios disponibles pour la copie des bases de données, consultez Copie de bases de données dans Base de données SQL Azure.

Dans cette rubrique

Le tableau suivant indique les méthodes permettant de créer une copie d'une base de données.

 

Méthode de copie Premium Standard De base Professionnel Web Entre serveurs/régions

Portail de gestion Azure

Prend uniquement en charge les copies sur le même serveur.

ImportantImportant
Pour plus d'informations, consultez la section relative aux restrictions ci-dessous.

Transact-SQL

(instruction CREATE DATABASE avec la clause AS COPY OF)

La copie entre serveurs est prise en charge mais les deux serveurs doivent se trouver dans la même région.

API REST

Prend en charge la copie entre serveurs et entre régions. Pour les bases de données Premium, vous avez la possibilité de configurer une relation de réplication entre régions vous permettant de conserver des copies de la base de données sur des serveurs dans des régions géographiques. Pour plus d'informations, consultez Available Methods to Copy a Database.

PowerShell

Prend en charge la copie entre serveurs et entre régions. Pour les bases de données Premium, vous avez la possibilité de configurer une relation de réplication entre régions vous permettant de conserver des copies de la base de données sur des serveurs dans des régions géographiques. Pour plus d'informations, consultez Available Methods to Copy a Database.

  • Une région base de données SQL Azure peut comprendre plusieurs clusters physiques. Pour l'heure, vous pouvez seulement copier une base de données entre deux clusters différents à l'aide des applets de commande ou de l'API REST. De même, vous pouvez uniquement copier une base de données entre deux abonnements différents via Transact-SQL. Dans le cadre de la gestion des capacités, base de données SQL Azure peut déplacer régulièrement votre serveur vers un cluster différent. Cependant, les serveurs appartenant au même abonnement sont conservés au sein du même cluster.

    Pour déterminer si une copie de base de données est possible : utilisez une commande ping (« ping <server> ») sur les serveurs source et destination pour résoudre leurs adresses IP. Si les adresses IP sont identiques, la copie de base de données est possible. Pour plus d'informations, consultez Utilisation de la commande Ping.

  • La copie de bases de données peut être effectuée au moyen de Transact-SQL, PowerShell ou l'API REST. Cependant, si vous utilisez Transact-SQL, vous êtes limité à la copie entre différents serveurs au sein d'un même cluster. PowerShell et l'API REST prennent en charge la copie vers un autre serveur situé sur un autre cluster physique.

La charge de travail de copie de base de données a un impact sur les performances des serveurs base de données SQL Azure concernés par le processus de copie. Par conséquent, le processus de copie peut nécessiter une durée étendue pour se terminer. Si la copie de base de données échoue, redémarrez le processus de copie quand la demande sur votre base de données source est faible. Vous devrez peut-être suspendre d'autres charges de travail sur la base de données source jusqu'à ce que le processus de copie soit terminé.

Pour copier une base de données à l'aide de Transact-SQL, votre connexion a besoin des autorisations suivantes :

  • Sur les deux serveurs : la connexion doit avoir le même nom de connexion et le même mot de passe sur les deux serveurs base de données SQL Azure.

  • Sur le serveur de destination : la connexion doit être membre du rôle dbmanager au niveau du serveur. Remarque : le principal au niveau du serveur de votre serveur base de données SQL Azure n'est pas membre du rôle dbmanager, mais il possède automatiquement les mêmes autorisations. Pour plus d'informations sur la gestion des connexions dans base de données SQL Azure, consultez Gestion des bases de données et des connexions dans Base de données SQL Azure.

  • Sur le serveur source : la connexion doit être propriétaire de la base de données source. Seule la connexion qui a créé la base de données source, le propriétaire de la base de données, ou le principal au niveau du serveur peuvent copier la base de données vers une autre base de données.

Une fois ces conditions d'autorisation remplies, votre connexion peut exécuter les instructions ALTER DATABASE et DROP DATABASE de base de données SQL Azure sur la nouvelle base de données. Dans le cadre de la copie d'une base de données à l'aide de PowerShell ou de l'API REST, les autorisations utilisent une authentification basée sur les certificats.

noteRemarque
La modification du propriétaire de base de données à l'aide de l'instruction ALTER AUTHORIZATION ON DATABASE n'est pas prise en charge par base de données SQL Azure. Vous pouvez créer des utilisateurs supplémentaires à l'intérieur de la base de données de base de données SQL Azure et les ajouter au rôle db_owner au niveau de la base de données. Ces utilisateurs supplémentaires peuvent être liés à une connexion autre que celle qui a créé initialement la base de données. Toutefois, ces utilisateurs supplémentaires ne peuvent pas effectuer de copie de base de données.

ImportantImportant
Les paramètres d'audit de base de données ne sont pas copiés dans la nouvelle base de données. Si vous avez besoin de réaliser un audit sur la nouvelle base de données, vous devez activer cette fonctionnalité une fois la base de données active. Si la nouvelle base de données se trouve dans la même région que la base de données d'origine, vous pouvez utiliser le même compte de stockage Azure. Si la nouvelle base de données se trouve dans une région différente de celle de la base de données d'origine, vous devez utiliser un compte de stockage situé dans la même région que la nouvelle base de données. Pour plus d'informations sur l'audit pour Base de données SQL Azure, consultez Audit de base de données.

Icône de flèche utilisée avec le lien Retour en haut [Top]

  1. Connectez-vous au portail de gestion Azure à l'aide de votre compte Microsoft.

  2. Accédez à l'onglet BASES DE DONNÉES SQL.

  3. Mettez en surbrillance la base de données dans la liste Bases de données puis, dans la barre de commandes au bas de l'écran, cliquez sur Copier. Cela a pour effet d'ouvrir la boîte de dialogue Copier les paramètres de la base de données. Attribuez un nom à la nouvelle base de données puis, dans la boîte de dialogue, cliquez sur Activer pour démarrer l'opération de copie.

  1. Démarrez PowerShell, puis connectez-vous à votre abonnement Azure.

  2. Utilisez l'applet de commande Start-AzureSqlDatabaseCopy pour créer une copie de votre base de données.

    Remarque : le paramètre –ContinuousCopy pour cette applet de commande n'est pas utilisé dans ce cas. Ce paramètre ne sert qu'à configurer la géo-réplication. Pour plus d'informations sur la géo-réplication, consultez Continuité des activités de l'entreprise dans la Base de données SQL Azure.

  3. Exemple d'utilisation : Cet exemple copie la base de données « Orders » dans la base de données « Orders Copy ». La base de données initiale et la copie se trouvent sur le même serveur, « abc ».

    PS C:\>Start-AzureSqlDatabaseCopy -ServerName "abc" -DatabaseName "Orders" -PartnerDatabase "Orders Copy"
    
    

  • Connectez-vous à la base de données master à l'aide de la connexion du principal au niveau du serveur ou de la connexion qui a créé la base de données que vous souhaitez copier. Les connexions qui ne sont pas le principal au niveau du serveur doivent être membres du rôle dbmanager pour pouvoir copier des bases de données. Pour plus d'informations sur les connexions et sur la connexion au serveur, consultez respectivement Gestion des bases de données et des connexions dans Base de données SQL Azure et Développement de base de données SQL Azure : Rubriques de procédures.

  • Commencez à copier la base de données source avec l'instruction CREATE DATABASE. L'exécution de cette instruction initie le processus de copie de la base de données. S'agissant d'un processus asynchrone, l'instruction CREATE DATABASE renvoie avant que la copie de la base de données soit terminée.

  • Surveillez le processus de copie en interrogeant les vues sys.databases et sys.dm_database_copies.

    • Pendant que la copie est en cours, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur COPYING.

    • Si la copie échoue, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur SUSPECT. Dans ce cas, exécutez l'instruction DROP sur la nouvelle base de données et réessayez ultérieurement.

    • Si la copie aboutit, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur ONLINE. Dans ce cas, la copie est terminée et la nouvelle base de données est une base de données normale, qui peut être modifiée indépendamment de la base de données source.

  • (Facultatif) Si vous décidez d'annuler la copie pendant qu'elle est en cours, exécutez l'instruction DROP DATABASE sur la nouvelle base de données. L'exécution de l'instruction DROP DATABASE sur la base de données source a aussi pour effet d'annuler le processus de copie.

L'exemple de code suivant initie le processus de copie de la base de données. L'exemple copie la base de données Database1A vers une nouvelle base de données nommée Database1B sur le même serveur base de données SQL Azure.

-- Execute on the master database.
-- Start copying.
CREATE DATABASE Database1B AS COPY OF Database1A;

Les exemples de code suivants peuvent être utilisés pour surveiller le processus de copie de base de données en interrogeant les vues sys.databases et sys.dm_database_copies afin d'obtenir des informations sur la nouvelle base de données nommée Database1B.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantImportant
L'instruction suivante renvoie un jeu de résultats uniquement pendant que la copie est en cours. Une fois que la copie est terminée, et que la nouvelle base de données est en ligne, cette requête ne renvoie plus de résultats.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Icône de flèche utilisée avec le lien Retour en haut [Top]

  • Connectez-vous à la base de données master du serveur de destination, le serveur base de données SQL Azure où la nouvelle base de données sera créée. Utilisez une connexion avec les mêmes nom et mot de passe que le propriétaire de la base de données de la base de données source sur le serveur base de données SQL Azure source. Sur le serveur de destination, la connexion doit également être membre du rôle dbmanager ou être la connexion du principal au niveau du serveur. Pour plus d'informations sur les connexions et sur la connexion au serveur, consultez respectivement Gestion des bases de données et des connexions dans Base de données SQL Azure et Développement de base de données SQL Azure : Rubriques de procédures.

  • Commencez à copier la base de données source avec l'instruction base de données SQL Azure CREATE DATABASE. L'exécution de cette instruction sur le serveur de destination initie le processus de copie de base de données. S'agissant d'un processus asynchrone, l'instruction CREATE DATABASE renvoie avant que la copie de la base de données soit terminée.

  • Surveillez le processus de copie en interrogeant les vues sys.databases et sys.dm_database_copies.

    • Pendant que la copie est en cours, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur COPYING.

    • Si la copie échoue, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur SUSPECT. Dans ce cas, exécutez l'instruction DROP sur la nouvelle base de données et réessayez ultérieurement.

    • Si la copie aboutit, la colonne state_desc de la vue sys.databases pour la nouvelle base de données a la valeur ONLINE. Dans ce cas, la copie est terminée et la nouvelle base de données est une base de données normale, qui peut être modifiée indépendamment de la base de données source.

  • (Facultatif) Si vous décidez d'annuler la copie pendant qu'elle est en cours, exécutez l'instruction DROP DATABASE sur la nouvelle base de données. L'exécution de l'instruction DROP DATABASE sur la base de données source a aussi pour effet d'annuler le processus de copie.

  • (Facultatif) Une fois que la nouvelle base de données est en ligne sur le serveur de destination, utilisez l'instruction ALTER USER pour remapper les utilisateurs de la nouvelle base de données aux connexions sur le serveur de destination. Tous les utilisateurs dans la nouvelle base de données conservent les autorisations qu'ils détenaient dans la base de données source. L'utilisateur qui a initié la copie de base de données devient propriétaire de la nouvelle base de données et un nouvel identificateur de sécurité (SID) lui est affecté. Après la fin de la copie et avant que d'autres utilisateurs soient remappés, seule la connexion qui a initié la copie, le propriétaire de base de données, est en mesure d'ouvrir une session sur la nouvelle base de données.

L'exemple de code suivant initie le processus de copie de la base de données à partir de bipk56ex. L'exemple illustre la copie de la base de données Database1A à partir du serveur base de données SQL Azure nommé vipk56ex5c vers une nouvelle base de données nommée Database2A sur Server2.

-- Execute on the master database of bipk56ex
-- Start copying from Server1 to Server2
CREATE DATABASE Database2A AS COPY OF vipk56ex5c.Database1A;

L'exemple de code suivant surveille le processus de copie de la base de données. L'exemple interroge les vues sys.databases et sys.dm_database_copies sur Server2 afin d'obtenir des informations sur la nouvelle base de données nommée Database2A.

ImportantImportant
L'instruction suivante renvoie un jeu de résultats uniquement pendant que la copie est en cours. Une fois que la copie est terminée, et que la nouvelle base de données est en ligne, cette requête ne renvoie plus de résultats.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantImportant
L'instruction suivante renvoie un jeu de résultats uniquement pendant que la copie est en cours. Une fois que la copie est terminée, et que la nouvelle base de données est en ligne, cette requête ne renvoie plus de résultats.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Icône de flèche utilisée avec le lien Retour en haut [Top]

Si vous souhaitez arrêter la copie avant la fin du processus, vous pouvez utiliser l'instruction DROP DATABASE pour supprimer la base de données de destination. Pour que cela fonctionne, utilisez une connexion qui satisfait les spécifications d'autorisation décrites dans Autorisations, précédemment dans cette rubrique.

Icône de flèche utilisée avec le lien Retour en haut [Top]

  • Lorsque la copie de la base de données se termine, la nouvelle base de données bascule dans l'un des deux états possibles, comme suit :

    • Si la copie aboutit, la nouvelle base de données passe à l'état ONLINE. Une fois la nouvelle base de données en ligne, elle peut être gérée et utilisée indépendamment de la base de données source.

    • Si la copie échoue, la nouvelle base de données passe à l'état SUSPECT. La base de données suspecte n'est pas disponible. Elle n'est pas accessible et ne peut pas être récupérée. Dans ce cas, supprimez la base de données de destination, puis essayez à nouveau de copier la base de données source.

    Pour consulter l'état, interrogez la colonne state_desc dans l'affichage sys.databases.

  • Une fois la copie terminée, la nouvelle base de données a le même niveau de service, le même niveau de performance et la même taille maximale que la base de données source. Pour plus d'informations sur la façon de définir et de modifier la couche de service ou le niveau de performance dans base de données SQL Azure, consultez la rubrique Modification des niveaux de service et de performance de base de données.

  • Une fois le processus de copie entre serveurs terminé, les connexions, les utilisateurs et les autorisations de copie peuvent être gérés indépendamment de la base de données source. Utilisez la connexion du propriétaire de base de données et l'instruction ALTER USER pour mapper les utilisateurs de la nouvelle base de données aux connexions sur le nouveau serveur base de données SQL Azure. Par exemple : ALTER USER userName WITH LOGIN='loginName'.

Icône de flèche utilisée avec le lien Retour en haut [Top]

Voir aussi

Afficher:
© 2015 Microsoft