Importer ou exporter une instance Azure SQL Database sans autoriser les services Azure à accéder au serveur

S’applique à : Azure SQL Database

Cet article explique comment importer ou exporter une instance Azure SQL Database quand Autoriser les services et ressources Azure à accéder à ce serveur est défini sur DÉSACTIVÉ. Le guide pratique utilise une machine virtuelle Azure pour exécuter SqlPackage afin d’effectuer l’opération d’importation ou d’exportation.

Le paramètre Autoriser les services et ressources Azure à accéder à ce serveur est visible dans le Portail Azure sous le menu Sécurité dans le menu des ressources, Mise en réseau, dans la section Exceptions. Pour plus d’informations sur ce paramètre, consultez Contrôles d’accès réseau Azure SQL Database.

Connectez-vous au portail Azure.

Connectez-vous au portail Azure.

Créer la machine virtuelle Azure

Créez une machine virtuelle Azure en sélectionnant le bouton Déployer sur Azure.

Ce modèle vous permet de déployer une machine virtuelle Windows simple à partir de différentes options de version de Windows intégrant les derniers correctifs. Cette opération déploie une machine virtuelle de taille A2 dans l’emplacement du groupe de ressources et renvoie le nom de domaine complet de la machine virtuelle.

Image showing a button labeled

Pour plus d’informations, y compris un modèle de démarrage rapide Azure, consultez Déployer une machine virtuelle Windows simple.

Connectez-vous à la machine virtuelle.

Les étapes suivantes vous montrent comment vous connecter à votre machine virtuelle à l’aide d’une connexion Bureau à distance.

  1. Une fois le déploiement terminé, accédez à la ressource de machine virtuelle.

  2. Sélectionnez Connecter.

    Un formulaire de fichier .rdp (Remote Desktop Protocol) s’affiche avec l’adresse IP publique et le numéro de port de la machine virtuelle.

    Capture d’écran du portail Azure, connexion à la machine virtuelle, avec le téléchargement de RDP mis en évidence.

    Remarque

    Il existe plusieurs manières de se connecter à une machine virtuelle. Ce tutoriel utilise le protocole RDP (Remote Desktop Protocol) pour vous connecter à la machine virtuelle, mais une solution plus récente en utilisant Azure Bastion est une alternative qui fonctionne bien si vous avez déployé Bastion dans votre environnement. Vous pouvez également utiliser le protocole SSH pour vous connecter à votre machine virtuelle.

  3. Sélectionnez Télécharger le fichier RDP.

  4. Fermez le formulaire Se connecter à la machine virtuelle.

  5. Pour vous connecter à votre machine virtuelle, ouvrez le fichier RDP téléchargé.

  6. Lorsque vous y êtes invité, sélectionnez Connexion.

  7. Entrez le nom d’utilisateur et le mot de passe que vous avez spécifiés au moment de créer la machine virtuelle, puis choisissez OK.

  8. Un avertissement de certificat peut s’afficher pendant le processus de connexion. Choisissez Oui ou Continuer pour établir la connexion.

Installer SqlPackage

Téléchargez et installez la dernière version de SqlPackage. Pour plus d’informations, consultez SqlPackage.

Créer une règle de pare-feu pour autoriser la machine virtuelle à accéder au serveur

Dans un premier temps, ajoutez l’adresse IP publique de la machine virtuelle au pare-feu du serveur. Les étapes suivantes permettent de créer une règle de pare-feu IP au niveau du serveur pour l’adresse IP publique de votre machine virtuelle et d’activer la connectivité à partir de la machine virtuelle.

  1. Sélectionnez Bases de données SQL dans le menu de gauche, puis sélectionnez votre base de données dans la page Bases de données SQL. La page d’aperçu de votre base de données s’ouvre. Elle affiche le nom du serveur complet (par exemple : sql-svr.database.windows.net) et fournit des options pour poursuivre la configuration.

    Capture d’écran du portail Azure, page de vue d’ensemble de la base de données, avec le nom du serveur en évidence.

  2. Copiez ce nom de serveur complet pour vous connecter à votre serveur et à ses bases de données.

  3. Sélectionnez Définir le pare-feu du serveur dans la barre d’outils.

  4. Sur la page Mise en réseau, sous l’onglet Accès public, dans la section Paramètres du pare-feu, sélectionnez Ajouter l’adresse IPv4 de votre client. Cela ajoute l’adresse IP publique de votre machine virtuelle à une nouvelle règle de pare-feu IP au niveau du serveur. Une règle de pare-feu IP au niveau du serveur peut ouvrir le port 1433 pour une seule adresse IP ou une plage d’adresses IP.

  5. Sélectionnez Enregistrer. Une règle de pare-feu IP au niveau du serveur est créée pour l’adresse IP publique de votre machine virtuelle actuelle et ouvre le port 1433 sur le serveur.

Exporter une base de données à l’aide de SqlPackage

Pour exporter une instance Azure SQL Database à l’aide de l’utilitaire de ligne de commande SqlPackage, consultez Paramètres et propriétés d’exportation. L’utilitaire SqlPackage est fourni avec les dernières versions de SQL Server Management Studio et SQL Server Data Tools. Vous pouvez aussi télécharger la dernière version de SqlPackage.

Pour plus d’informations et les étapes pour créer un fichier BACPAC, consultez Exporter vers un fichier BACPAC.

Nous recommandons l’utilisation de l’utilitaire SqlPackage pour bénéficier de la mise à l’échelle et du niveau de performance dans la plupart des environnements de production. Pour consulter le billet du blog SQL Server Customer Advisory Team sur la migration de SQL Server vers Azure SQL Database à l’aide de fichiers BACPAC (en anglais), rendez-vous ici.

Cet exemple montre comment exporter une base de données en utilisant SqlPackage avec l’authentification universelle Active Directory. Utilisez les valeurs propres à votre environnement.

SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=<servername>.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

Importer une base de données à l’aide de SqlPackage

Pour importer une base de données SQL Server à l’aide de l’utilitaire de ligne de commande SqlPackage, consultez les paramètres et propriétés d’importation. SqlPackage s’appuie sur les dernières versions de SQL Server Management Studio et SQL Server Data Tools. Vous pouvez aussi télécharger la dernière version de SqlPackage.

Pour bénéficier d’une mise à l’échelle et de performances optimales, nous vous recommandons d’utiliser SqlPackage dans la plupart des environnements de production au lieu du portail Azure. Pour consulter le billet du blog SQL Server Customer Advisory Team sur la migration de SQL Server vers Azure SQL Database à l’aide de fichiers BACPAC (en anglais), rendez-vous ici.

La commande SqlPackage suivante importe la base de données AdventureWorks2022 du stockage local vers une base de données Azure SQL. Elle crée une base de données appelée myMigratedDatabase avec un niveau de service Premium et un objectif de service P6. Changez ces valeurs en fonction de votre environnement.

SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2022.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Important

Pour vous connecter à Azure SQL Database derrière un pare-feu d’entreprise, le port 1433 de ce dernier doit être ouvert.

Cet exemple montre comment importer une base de données à l’aide de SqlPackage avec l’authentification universelle Active Directory.

SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"

Considérations relatives aux performances

Étant donné que la vitesse d’exportation varie selon divers facteurs (par exemple, la forme des données), il est impossible d’établir une prévision de vitesse. SqlPackage peut prendre beaucoup de temps, surtout pour les bases de données volumineuses.

Pour obtenir les meilleures performances, vous pouvez essayer les stratégies suivantes :

  1. Vérifiez qu’aucune autre charge de travail n’est en cours d’exécution sur la base de données. Créer une copie avant l’exportation pourrait être la meilleure solution pour faire en sorte qu’aucune autre charge de travail ne s’exécute.
  2. Augmentez l’objectif de niveau de service (SLO) de la base de données pour mieux gérer la charge de travail d’exportation (principalement les E/S en lecture). Si la base de données est actuellement de type GP_Gen5_4, un niveau critique pour l’entreprise peut s’avérer utile pour la charge de travail de lecture.
  3. Vérifiez qu’il existe des index cluster, en particulier pour les tables volumineuses.
  4. Pour éviter les contraintes réseau, les machines virtuelles doivent se trouver dans la même région que la base de données.
  5. Les machines virtuelles doivent être dotées d’un SSD dont la taille autorise la génération d’artefacts temporaires avant le chargement dans le stockage Blob.
  6. Les machines virtuelles doivent disposer d’une configuration suffisante en matière de cœurs et de mémoire pour la base de données en question.

Stocker le fichier BACPAC importé ou exporté

Le fichier BACPAC peut être stocké dans des objets blob Azure ou Azure Files.

Pour obtenir le meilleur niveau de performance, utilisez Azure Files. SqlPackage fonctionne avec le système de fichiers pour pouvoir accéder directement à Azure Files.

Pour réduire les coûts, utilisez des objets blob Azure, qui sont plus économiques qu’un partage de fichiers Azure Premium. Cependant, vous devrez copier le fichier BACPAC entre l’objet blob et le système de fichiers local avant de procéder à l’importation ou à l’exportation. Par conséquent, le processus prend plus de temps.

Pour charger ou télécharger des fichiers BACPAC, consultez Transférer des données avec AzCopy et le stockage Blob et Transférer des données avec AzCopy et le stockage de fichiers.

Selon votre environnement, vous devrez peut-être configurer des pare-feu et des réseaux virtuels dans Stockage Azure.