SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Migration de base de données SQL avec SSMS

La migration de MSSQL entre les serveurs peut être difficile sans les directives appropriées pour vous garder sur la bonne voie. Dans cet article, je vais décrire les différentes façons de migrer des bases de données Microsoft SQL Server entre des serveurs ou des instances. Que vous ayez besoin de déplacer une seule base de données, plusieurs bases de données, des connexions ou des procédures stockées et des vues, nous avons ce qu'il vous faut !

Il existe de nombreuses circonstances dans lesquelles vous devrez déplacer une base de données ou restaurer des bases de données. Les raisons les plus courantes sont :

  • Déplacement vers un tout nouveau serveur.
  • Déplacement vers une autre instance de SQL.
  • Création d'un serveur de développement ou mise en service sur un serveur de production.
  • Restauration de bases de données à partir d'une sauvegarde.

Il existe deux manières principales de déplacer des bases de données SQL. Manuellement avec Microsoft SQL Server Management Studio (SSMS) ou avec la ligne de commande. La méthode que vous choisissez dépend de ce que vous devez accomplir. Si vous déplacez une seule base de données ou seulement quelques-unes, la sauvegarde et la restauration manuelles des bases de données avec SSMS seront l'approche la plus simple. Si vous déplacez beaucoup de bases de données (pensez à plus de 10), l'utilisation de la méthode de la ligne de commande accélérera le processus. La méthode de la ligne de commande nécessite plus de travail de préparation au préalable, mais si vous transférez des dizaines de bases de données, cela vaut bien le temps passé à configurer le script au lieu de migrer chaque base de données individuellement. Si vous n'êtes pas sûr de la méthode à utiliser, essayez d'abord l'approche manuelle pendant que vous vous familiarisez avec le processus. Je recommande de lire jusqu'au bout pour une meilleure compréhension de la méthodologie.

Références utiles pour la terminologie

SSMS – Un acronyme pour Microsoft S QL S toujours M gestion S studio.

Serveur source – Le serveur ou l'instance depuis lequel vous déplacez les bases de données de ou désactivé .

Serveur de destination – Le serveur ou l'instance vers lequel vous transférez les bases de données vers .

La méthode manuelle

Déplacer des bases de données SQL avec la méthode manuelle peut être très facile. C'est le processus préféré pour transférer quelques bases de données ou plus petites. Pour suivre cette partie du guide, vous devez avoir installé MSSQL et Microsoft SQL Server Management Studio (SSMS).

Sauvegarde des bases de données sur le serveur source

1. Commencez par vous connecter au serveur source (le serveur depuis ou depuis lequel vous déplacez les bases de données). Vous voudrez ouvrir Microsoft SQL Server Management Studio en sélectionnant Démarrer > Microsoft SQL Server >  Microsoft SQL Server Management Studio .

2.Connectez-vous au serveur SQL à l'aide de l'authentification Windows ou de l'authentification SQL.

3. Développez le serveur (dans notre cas SQL01 ), développez Bases de données , sélectionnez la première base de données que vous souhaitez déplacer (illustrée ci-dessous).

4. Faites un clic droit sur votre base de données et sélectionnez Tâches puis cliquez sur Sauvegarder .

5. À partir de là, vous êtes maintenant dans la Base de données de sauvegarde filtrer. Vous pouvez choisir un type de sauvegarde tel que Complète ou Différentiel , assurez-vous que la bonne base de données est sélectionnée et définissez la destination de la sauvegarde SQL. Pour notre exemple, nous pouvons laisser la sauvegarde Tapez comme Complet .

6. Sous Sauvegarde Tapez , cochez la case "Copier uniquement la sauvegarde .” Si vous exécutez DPM ou une autre forme de sauvegarde de serveur, la sauvegarde sans l'option Copy-Only causera une rupture dans la chaîne de journal de sauvegarde.

7. Vous verrez un lieu sous Destination pour le chemin de la nouvelle sauvegarde. Généralement, vous allez supprimer cette entrée puis Ajouter un nouveau pour sélectionner un dossier auquel SQL a accès en lecture/écriture. Ajouter une nouvelle Destination de sauvegarde affiche un chemin semblable au suivant :

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Ce chemin C:\ est l'endroit où se trouve votre sauvegarde de base de données stockée. Notez cet emplacement pour référence ultérieure, car il s'agit du chemin par défaut vers les sauvegardes stockées et il devra disposer d'un accès en lecture/écriture approprié pour les services SQL.

Remarque :les utilisateurs avancés peuvent être à l'aise de laisser la destination telle quelle, à condition que les autorisations soient correctes sur le dossier de sortie.

8. Ensuite, ajoutez un nom de fichier à la fin de ce chemin, tel que AdventureWorks2012-081418 .bak – Assurez-vous de terminer le nom de fichier avec l'extension .bak et sélectionnez OK

10. Une fois que vous avez appuyé sur OK sur Sélectionner la destination de sauvegarde invite, vous êtes prêt à sauvegarder la base de données ! Tout ce que vous avez à faire maintenant est de cliquer sur OK , et la base de données commencera à sauvegarder. Vous verrez une barre de progression dans le coin inférieur gauche, et lorsque la sauvegarde est terminée, une fenêtre apparaîtra indiquant 'La sauvegarde de la base de données 'AdventureWorks2012' s'est terminée avec succès. '

Accédez au chemin de destination, noté précédemment, (dans ce cas C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) vous verrez votre fichier nouvellement créé (dans ce cas AdventureWorks2012-081418.bak ) - Toutes nos félicitations! Ce fichier est l'exportation complète de votre base de données et est prêt à être importé sur le nouveau serveur. Si vous avez plusieurs bases de données, répétez les étapes ci-dessus pour chaque base de données que vous déplacez. Après avoir copié tous les processus de base de données à l'étape suivante de restauration des bases de données sur le serveur de destination.

Restauration des bases de données sur le serveur de destination

Vous devriez maintenant avoir un fichier .bak de toutes vos bases de données sur le serveur source. Ces fichiers de base de données doivent être transférés vers le serveur de destination. Il existe de nombreuses façons de déplacer vos données vers le serveur de destination; vous pouvez utiliser USB, Robocopy ou FTP. Après avoir copié une base de données, vous pouvez la stocker sur votre serveur de destination. Pour notre exemple, nous l'avons stockée sur le lecteur C dans un dossier nommé C:\dbbackups .

1. Ouvrez Microsoft SQL Server Management Studio.

2. Connectez-vous au serveur SQL à l'aide de l'authentification Windows ou de l'authentification SQL.

3. Développez le serveur et faites un clic droit sur Bases de données et sélectionnez Restaurer la base de données.

4. La restauration de la base de données l'écran ressemble beaucoup à la Sauvegarde de la base de données screen.Sous Source, vous voudrez sélectionner Device au lieu de Base de données . Sélection de Appareil vous permet de restaurer directement à partir d'un fichier. Une fois que vous avez choisi Appareil , cliquez sur l'icône de navigation […]

5. Sélectionnez Ajouter , puis accédez au dossier dans lequel se trouvent vos fichiers .bak. (Dans ce cas, C:\dbbackups ).

6. Sélectionnez la première base de données .bak que vous souhaitez restaurer et cliquez sur OK.

7. Cliquez sur OK et maintenant vous êtes prêt à importer la base de données. Avant d'importer, jetons un coup d'œil à la section Options sur le côté gauche. Sous Options, vous verrez d'autres configurations pour restaurer des bases de données telles que Remplacer la base de données existante , Conserver les paramètres de réplication et Restreindre l'accès à la base de données restaurée . Dans ce cas, nous ne remplaçons pas une base de données existante, je laisserai donc toutes ces options décochées. Si vous souhaitez remplacer une base de données existante (par exemple, la base de données sauvegardée contient des données plus récentes que sur le serveur de destination ou vous remplacez une base de données de développement ou de production), sélectionnez simplement Remplacer la base de données existante .

Remarque :les utilisateurs avancés peuvent être à l'aise de laisser la destination telle quelle, à condition que les autorisations soient correctes sur le dossier de sortie.

8. Cliquez sur OK commence le processus de restauration comme indiqué par la fenêtre contextuelle qui lit 'Base de données 'AdventureWorks2012' restaurée avec succès.' Vous avez migré votre base de données du serveur source vers le serveur de destination.

Répétez ce processus pour chaque base de données que vous migrez. Vous pouvez ensuite mettre à jour les références de chemin dans vos scripts/applications pour pointer vers le nouveau serveur, vérifier que la migration a réussi.

Migration des connexions Microsoft SQL Server

Après l'importation de vos bases de données, si vous ne parvenez pas à vous connecter à l'aide de votre connexion SQL, vous pouvez recevoir l'erreur «  Échec de la connexion pour l'utilisateur « exemple ». (Microsoft SQL Server, erreur :18456). ' Parce que la base de données est dans le modèle de connexion et d'utilisateur traditionnel , les connexions sont stockées séparément sur le serveur source et les informations d'identification ne sont pas contenues dans la base de données elle-même. À partir de ce moment, le serveur de destination peut être configuré pour utiliser le modèle utilisateur de base de données autonome qui conserve les connexions dans votre base de données et hors du serveur source. Jusque-là, nous devrons nous déplacer et interagir avec les utilisateurs dans le cadre du modèle traditionnel. Continuez ci-dessous pour procéder à la migration de vos utilisateurs SQL.

La sauvegarde et la restauration des bases de données ont déplacé votre relation de connexion SQL vers les bases de données (vos connexions sont toujours associées aux bonnes bases de données avec les autorisations correctes), mais les connexions réelles elles-mêmes n'ont pas été transférées vers le nouveau serveur. Vous pouvez le vérifier en ouvrant SSMS (SQL Server Management Studio) sur le serveur de destination et accédez à Serveur> Sécurité> Connexion s. Vous remarquerez que toutes les connexions SQL personnalisées que vous avez créées sur le serveur précédent n'ont pas été transférées ici, mais si vous accédez à Serveur> Bases de données> Votre base de données (AdventureWorks2012 dans ce cas)> Sécurité> Utilisateurs vous verrez le bon identifiant associé à la base de données.

Si vous avez un ou deux utilisateurs SQL, vous pouvez simplement supprimer l'association de l'utilisateur à la base de données dans Serveurs> Bases de données> AdventureWorks2012> Sécurité> Utilisateurs , recréez l'utilisateur dans Serveur> Sécurité> Connexions et mappez-le à la base de données appropriée.

Si vous avez de nombreuses connexions, vous devrez suivre un processus supplémentaire décrit ci-dessous. Pour migrer tous les utilisateurs SQL, ouvrez une Nouvelle requête fenêtre sur le serveur source et exécutez le script suivant :

Script de connexion SQL

+

Ce script crée deux procédures stockées dans la base de données source, ce qui facilite la migration de ces connexions. Ouvrez une fenêtre Nouvelle requête et exécutez ce qui suit :
EXEC sp_help_revlogin

Cette requête génère un script qui crée de nouvelles connexions pour le serveur de destination. Copiez le résultat de cette requête et enregistrez-le pour plus tard. Vous devrez l'exécuter sur le serveur de destination.

Une fois que vous avez copié la sortie de cette requête, connectez-vous à SSMS sur le serveur de destination et ouvrez une fenêtre Nouvelle requête. Collez le contenu du script précédent (il doit avoir une série de lignes qui ressemblent à -- Login :BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE =[master]) et appuyez sur Exécuter.

Vous avez maintenant importé avec succès toutes les connexions SQL et pouvez maintenant vérifier que les bases de données ont été migrées vers le serveur de destination en utilisant vos informations d'identification précédentes.

Migration des vues et des procédures stockées

Les vues et les procédures stockées migreront avec la base de données si vous utilisez les sauvegardes sur bande SQL typiques. Suivez les instructions ci-dessous si vous devez migrer des vues et des procédures stockées indépendamment.

  1. Ouvrez Microsoft SQL Management Studio sur le serveur source.
  2. Connectez-vous à votre serveur SQL.
  3. Développez le serveur ainsi que les Bases de données .
  4. Cliquez avec le bouton droit sur le nom de votre base de données et accédez à Tâches > Générer des scripts .
  5. Cliquez sur Suivant .
  6. Nous allons changer Script de base de données entière et tous les objets de base de données pour Sélectionner des objets de base de données spécifiques et ne cochez que les Vues et Procédures stockées.
  7. Cliquez sur Suivant, notez l'option Enregistrer dans un fichier. Prenez note du chemin d'accès au fichier indiqué. Dans mon cas, c'est C:\Users\Administrator\Documents\script.sql - Le chemin des vues enregistrées et des procédures stockées.
  8. Cliquez sur Suivant>> Suivant>>Terminer, et sélectionnez C:\Users\Administrator\Documents\script.sql et copiez-le sur le serveur de destination.
  9. Accédez au serveur de destination, ouvrez SSMS et connectez-vous au serveur SQL.
  10. Allez dans Fichier> Ouvrir> Fichier ou utilisez le raccourci clavier CTRL+O pour ouvrir le script SQL. Sélectionnez le fichier C:\Users\Administrator\Documents\script.sql pour l'ouvrir.
  11. Vous verrez le script généré à partir du serveur source contenant toutes les vues et les procédures stockées. Cliquez sur Exécuter ou utilisez le raccourci clavier F5 et exécutez le script.
Remarque :Malheureusement, il n'existe aucun moyen intégré de le faire avec la ligne de commande. Il existe des outils tiers et même un outil de Microsoft appelé mssql-scripter pour des scripts plus avancés.

Vous avez maintenant migré les vues et les procédures stockées vers votre serveur de destination ! Répétez ce processus pour chaque base de données que vous migrez. Un petit guide va un long chemin dans l'administration de la base de données. Chaque serveur SQL aura ses propres configurations et obstacles à surmonter, mais nous espérons que cet article vous a donné une base solide pour votre migration Microsoft SQL Server.

Vous recherchez un service SQL haute disponibilité, indépendant de la plate-forme, facilement évolutif et capable d'évoluer avec votre entreprise ? Découvrez notre produit SQL en tant que service proposé par Liquid Web. Discutez avec l'un de nos formidables conseillers en hébergement pour trouver la solution idéale pour vous !


No