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 aborde les méthodes suivantes :

La méthode de migration idéale dépend du temps d'arrêt acceptable pour une base de données spécifique et de 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 :

Pour obtenir une estimation des coûts en fonction de votre utilisation prévue, utilisez le 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.
  • Un sous-réseau à utiliser avec les instances de machine virtuelle (VM) du cluster de basculement Windows Server (WSFC).

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

  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.

  6. 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 vers 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 vers Linux, vous avez besoin des éléments suivants :

  • Une machine Windows avec les éléments suivants :

    • SQL Server est 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 sur laquelle SQL Server est installé.

Exporter une base de données SQL depuis un serveur SQL basé sur Windows

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

  1. Sur la machine Windows, créez un dossier sur le lecteur 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 Bases de données.
  5. Effectuez un clic droit sur votre base de données cible, sélectionnez Tâches, puis cliquez sur Exporter l'application de niveau Données…. L'assistant "Exporter 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 "Exporter 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 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 serveur SQL Server cible.

Importer une base de données vers Linux

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

  1. Ouvrez SSMS.
  2. Dans la fenêtre "Connexion", saisissez l'adresse IP du serveur cible, puis cliquez sur 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 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 Terminer pour lancer l'importation.

    Importer les paramètres du fichier bacpac.

  10. Cliquez sur Fermer pour fermer l'assistant d'importation. La base de données est prête pour les 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 détaillé 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 :

  • Une machine Windows avec les éléments suivants :

  • Une machine Linux sur laquelle SQL Server est installé.

Sauvegarder votre base de données sur votre machine Windows

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

  1. Ouvrez SSMS sur la machine Windows.
  2. Dans la fenêtre "Connexion", saisissez "localhost".
  3. Dans l'explorateur d'objets, développez 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éer une sauvegarde

  5. Dans la fenêtre "Sauvegarder la base de données", vérifiez que Type de sauvegarde est défini sur Complète et que Sauvegarder sur est défini sur 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 base de données SQL.

  6. Cliquez sur OK pour lancer la sauvegarde.

Copier le fichier de sauvegarde sur votre machine Linux

Vous pouvez utiliser un client Secure Copy Protocol (SCP) 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 Git Bash Shell pour importer le fichier.

  1. Ouvrez une invite de commandes sur votre machine Windows et accédez au répertoire contenant le fichier de sauvegarde créé dans la section Sauvegarder votre base de données sur votre machine 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 sur 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. À partir de 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

Vous pouvez restaurer la base de données sur une machine Linux à l'aide de SSMS en procédant comme suit :

  1. Ouvrez SSMS sur votre machine 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, effectuez 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 "Restaurer la base de données", définissez Source sur 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 depuis le serveur Windows n'existe pas sur le serveur Linux.

  1. Dans le menu de gauche, cliquez sur Fichiers.
  2. Cochez la case 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.

Étapes suivantes