Migrer une base de données SQL de Windows vers Linux


Ce tutoriel vous présente deux approches distinctes pour migrer une base de données SQL Server d'un serveur Windows vers un serveur Linux.

Cette page décrit les méthodes suivantes:

La méthode de migration idéale est influencée par le temps d'arrêt acceptable pour une base de données spécifique et sa taille. La technique la plus fréquemment utilisée est la méthode de sauvegarde et de restauration.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

Assurez-vous de disposer des éléments suivants :

  • Un projet Google Cloud et un cloud privé virtuel (VPC) avec une connectivité aux contrôleurs de domaine Active Directory.
  • Sous-réseau à utiliser pour les instances de machine virtuelle (VM) Windows Server Failover Cluster (WSFC).

Pour suivre ce guide, vous avez également besoin d'un Google Cloud projet:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Une fois que vous avez terminé ce tutoriel, évitez de continuer à payer des frais en supprimant les ressources que vous avez créées. Consultez la section Effectuer un nettoyage pour en savoir plus.

Les sections suivantes expliquent comment migrer une base de données SQL Server d'un serveur Windows vers un serveur Linux.

Importer une base de données SQL sous Linux

Cette section explique comment exporter une base de données SQL à partir d'un serveur SQL basé sur Windows et l'importer dans un serveur SQL basé sur Linux à l'aide de SQL Server Management Studio (SSMS).

Prérequis

Pour importer une base de données SQL sous Linux, vous avez besoin des éléments suivants:

  • Machine Windows avec les éléments suivants:

    • SQL Server installé.
    • SSMS installé.
    • La base de données SQL que vous souhaitez migrer est présente sur cette machine. Ce tutoriel utilise un exemple de base de données AdventureWorks2022.
  • Machine Linux avec SQL Server installé

Exporter une base de données SQL à partir d'un SQL Server basé sur Windows

Pour exporter une base de données SQL à partir d'un SQL Server basé sur Windows, procédez comme suit:

  1. Sur la machine Windows, créez un dossier sur le disque C et nommez-le export (c:\export).
  2. Ouvrez SSMS.
  3. Dans la fenêtre "Connection" (Connexion), saisissez localhost, puis cliquez sur Connect (Se connecter).
  4. Dans l'explorateur d'objets, développez Databases (Bases de données).
  5. Effectuez un clic droit sur votre base de données cible, sélectionnez Tasks (Tâches), puis cliquez sur Export Data-Tier Application (Exporter l'application de niveau de données). L'assistant d'exportation des données s'ouvre.

    Exporter des données.

  6. Dans l'assistant d'exportation de données, sélectionnez Suivant.

  7. Dans l'onglet "Paramètres", configurez l'assistant d'exportation des données pour enregistrer le fichier de package de sauvegarde (BACPAC) (.bacpac) sur le disque local.

  8. Spécifiez le dossier et le nom du fichier, comme suit:

    c:\export\MigrationFile.bacpac
    
  9. Cliquez sur Suivant.

  10. Vérifiez les paramètres spécifiés, puis cliquez sur Finish (Terminer) pour lancer le processus d'exportation. Le fichier .bacpac est créé à l'emplacement de votre choix. Vous pouvez désormais l'importer dans un SQL Server cible.

Importer une base de données sur un système Linux

Pour importer une base de données SQL dans un SQL Server basé sur Linux, procédez comme suit:

  1. Ouvrez SSMS.
  2. Dans la fenêtre "Connection" (Connexion), saisissez l'adresse IP du serveur cible, puis cliquez sur Connect" (Se connecter).
  3. Effectuez un clic droit sur le dossier Databases (Bases de données) dans l'explorateur d'objets, puis sélectionnez Import Data-tier Application (Importer une application de niveau de données).
  4. Spécifiez le fichier .bacpac créé lors de la procédure d'exportation.

    c:\export\MigrationFile.bacpac
    
  5. Cliquez sur Suivant.

  6. Spécifiez AdventureWorks2022.

    AdventureWorks2022
    
  7. Vérifiez que le chemin d'accès aux données et aux journaux affiche les paramètres par défaut de l'instance Linux.

  8. Cliquez sur Suivant.

  9. Vérifiez les paramètres d'importation, puis cliquez sur Finish (Terminer) pour lancer l'importation.

    Importez les paramètres du fichier BACPAC.

  10. Cliquez sur Close (Fermer) pour fermer l'assistant d'importation. La base de données est prête à recevoir des connexions.

Migrer à l'aide de la sauvegarde et de la restauration SQL

Vous pouvez migrer une base de données de SQL Server sur Windows vers SQL Server sur Linux à l'aide de la fonctionnalité de sauvegarde et de restauration. Cette section fournit un guide par étapes pour vous aider à transférer votre base de données vers l'environnement Linux à l'aide de cette méthode.

Prérequis

Pour migrer une base de données à l'aide de la méthode de sauvegarde et de restauration, vous avez besoin des éléments suivants:

  • Machine Windows avec les éléments suivants:

  • Une machine Linux avec SQL Server installé

Sauvegarder votre base de données sur votre ordinateur Windows

Vous pouvez sauvegarder une base de données dans un fichier sous Windows à l'aide de SSMS, comme suit:

  1. Ouvrez SSMS sur l'ordinateur Windows.
  2. Dans la fenêtre "Connexion", saisissez localhost.
  3. Dans l'explorateur d'objets, développez Databases (Bases de données).
  4. Effectuez un clic droit sur votre base de données cible, sélectionnez Tasks (Tâches), puis cliquez sur Back Up (Sauvegarder).

    Créez une sauvegarde.

  5. Dans la fenêtre "Backup Database" (Sauvegarder la base de données), vérifiez que Backup type (Type de sauvegarde) est défini sur Full (Complète) et que Back up to (Sauvegarder sur) est défini sur Disk (Disque). Notez le nom et l'emplacement du fichier de sauvegarde. Par exemple, l'emplacement par défaut d'une sauvegarde de base de données sur SQL Server 2022 est C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup.

    Options de sauvegarde de la base de données SQL.

  6. Cliquez sur OK pour lancer la sauvegarde.

Copiez le fichier de sauvegarde sur votre machine Linux

Vous pouvez utiliser un client SCP (Secure Copy Protocol) pour importer le fichier de sauvegarde sur votre machine Linux. La procédure suivante utilise un client de ligne de commande SCP. Toutefois, vous pouvez également utiliser WinSCP ou le shell Git Bash pour importer le fichier.

  1. Ouvrez une nouvelle invite de commande sur votre ordinateur Windows, puis accédez au répertoire contenant le fichier de sauvegarde créé dans la section Sauvegarder votre base de données sur votre ordinateur Windows. Exemple :

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. Utilisez la commande scp pour copier le fichier sur la machine Linux cible. L'exemple suivant utilise le fichier MigrationBackup.bak créé précédemment.

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    Remplacez LINUX_INTERNAL_IP par l'adresse IP de votre machine Linux.

    Copiez le fichier de sauvegarde sur la machine cible.

Déplacer le fichier de sauvegarde

Pour restaurer la base de données dans SQL Server sur une machine Linux, vous devez vous assurer que le fichier de sauvegarde se trouve à l'emplacement par défaut appartenant à l'utilisateur mssql, c'est-à-dire /var/opt/mssql.

Pour déplacer le fichier de sauvegarde vers le répertoire mssql, procédez comme suit:

  1. Depuis la machine Windows, connectez-vous à la machine Linux cible à l'aide de SSH.

    ssh sysadmin@LINUX_INTERNAL_IP
    

    Remplacez LINUX_INTERNAL_IP par l'adresse IP de votre machine Linux.

  2. Créez un répertoire de sauvegarde.

    sudo mkdir -p /var/opt/mssql/backup
    
  3. Déplacez le fichier de sauvegarde dans le répertoire que vous venez de créer.

    sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
    

Restaurer la base de données

Pour restaurer la base de données sur une machine Linux à l'aide de SSMS, procédez comme suit:

  1. Ouvrez SSMS sur votre ordinateur Windows.
  2. Dans la fenêtre "Connexion", saisissez l'adresse IP ou le nom d'hôte de la machine Linux.
  3. Spécifiez les informations de connexion et le mot de passe.
  4. Cliquez sur Se connecter.

    Sélectionnez le fichier de sauvegarde à restaurer.

  5. Dans l'explorateur d'objets, faites un clic droit sur le dossier Databases (Bases de données), puis sélectionnez Restore Database (Restaurer la base de données).

  6. Dans la fenêtre "Restore Database" (Restaurer la base de données), définissez Source sur Device (Appareil), puis cliquez sur ... pour ouvrir la boîte de dialogue de sélection de la sauvegarde.

  7. Dans la boîte de dialogue "Sélectionner un appareil de sauvegarde", cliquez sur Ajouter.

  8. Dans l'explorateur de fichiers, cliquez sur le répertoire \var\opt\mssql\backup, puis sélectionnez le fichier de sauvegarde importé.

  9. Cliquez sur OK pour accepter la sélection et fermer la boîte de dialogue.

  10. Vérifiez le support de sauvegarde renseigné, puis cliquez sur OK.

    Sélectionnez le fichier de sauvegarde à restaurer.

Avant de commencer à restaurer votre base de données sur une machine Linux, vous devez mettre à jour l'emplacement des fichiers de base de données restaurés sur votre machine Linux, car le chemin d'accès du serveur Windows n'existe pas sur le serveur Linux.

  1. Dans le menu de gauche, cliquez sur Fichiers.
  2. Sélectionnez Relocate all files to folder (Déplacer tous les fichiers dans le dossier) pour déplacer les fichiers restaurés vers le répertoire de données par défaut de SQL Server.
  3. Cliquez sur OK pour lancer le processus de restauration.
  4. Vérifiez la restauration en listant toutes les bases de données sur le serveur. La base de données restaurée doit être listée.

    SELECT Name FROM sys.Databases
    GO
    
  5. Exécutez d'autres requêtes sur votre base de données migrée.

    USE AdventureWorks2022
    SELECT top 100 * FROM [Person].[Person]
    GO
    

Effectuer un nettoyage

Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étape suivante