Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment copier des bases de données SQL Server d'une instance à une autre

La copie ou le déplacement de bases de données est l'une des tâches les plus courantes pour les professionnels des données qui doivent régulièrement déployer des scripts ou de nouvelles solutions dans différents environnements. Avec SQL Server, nous avons plusieurs façons d'accomplir cela de manière native sans utiliser d'outils tiers.

Solutions natives dans SQL Server

Voici quelques façons d'accomplir cette tâche nativement dans SQL Server :

  • Dans SQL Server, nous effectuons normalement des sauvegardes complètes de la base de données source, la copions sur le serveur cible, puis la restaurons. Cela pourrait s'avérer être une tâche difficile pour les débutants ou pour les professionnels qui ne sont pas dans le rôle de DBA. À moins que vous ne disposiez d'une solution de script appropriée, vous pouvez rencontrer des problèmes et avoir du mal à y parvenir lorsque vous traitez avec d'énormes bases de données.
  • Une autre option est la méthode detach\attach. Cette méthode est couramment utilisée, mais encore une fois, vous devez être prudent lorsque vous traitez avec de grandes bases de données ou avec des bases de données qui incluent un certain nombre de données ou de fichiers journaux. De plus, la base de données source serait déconnectée lors de l'utilisation de cette approche. À moins que vous ne soyez un administrateur de base de données expérimenté, vous pouvez toujours rencontrer des problèmes lors de la gestion de bases de données volumineuses.

D'autres options peuvent être utilisées, telles que l'assistant de copie de base de données ou l'assistant d'importation/exportation de données à des fins d'importation/exportation de données. Vous devez également vous assurer que les connexions et les autorisations du serveur source sont correctement migrées vers le serveur cible, sinon les utilisateurs de l'application pourraient rencontrer des problèmes pour se connecter correctement à la base de données.

Utiliser dbForge Studio pour SQL Server pour copier ou déplacer des bases de données d'une instance à une autre ou d'un serveur à un autre

En ce qui concerne les logiciels tiers, dbForge Studio for SQL Server de Devart a une fonction intéressante intégrée au produit pour effectuer la copie ou le déplacement de bases de données en quelques étapes simples. Nous passerons en revue le processus avec une démo dans cet article.

La version d'essai dure un mois et vous donne suffisamment de temps pour tester les autres fonctionnalités intégrées au produit. La version d'essai Enterprise 5.5 est utilisée pour cette démonstration.

Une fois que vous avez exécuté dbForge Studio, vous obtiendrez cet écran pour mettre à jour les détails de connexion à la base de données. Avec cela, vous pourrez vous connecter à votre instance SQL Server.

Afin d'effectuer des connexions supplémentaires à d'autres instances SQL, cliquez sur l'icône qui ouvrira la fenêtre pour une nouvelle connexion à la base de données.

Ci-dessous, vous pouvez voir que j'ai déjà établi une connexion à une instance SQL existante.

Après vous être connecté à vos instances SQL Server, vous pouvez afficher les bases de données que vous prévoyez de copier ou de déplacer entre les instances. Dans cette démo, nous allons copier la base de données test depuis l'instance SQL :Boulcott vers Boulcott\INST2.

Pour copier le test base de données vers INST2, accédez à Synchronisation de la base de données dans l'onglet principal et cliquez sur Copier la base de données .

La fenêtre Copier la base de données s'ouvre. Vous pouvez y entrer les détails des serveurs source et cible. Dans cette démo, nous copions la base de données sur des instances qui se trouvent sur la même machine. Vous pouvez également utiliser l'outil dbForge pour copier des bases de données sur différents serveurs. Entrez les détails du serveur comme indiqué, assurez-vous que la connexion est réussie, puis cliquez sur Suivant .

Une fois cela fait, la liste des bases de données disponibles sur le serveur source apparaît. Sélectionnez la base de données que vous prévoyez de copier. Dans notre exemple, c'est le test base de données. Sélectionnez la Copie case à cocher et cliquez sur Suivant . Ici, j'ai sélectionné une seule base de données à copier. Mais l'outil n'est pas limité à une base de données à la fois car nous pouvons sélectionner plusieurs bases de données à copier ou déplacer en même temps.

Sélectionnez les options pour l'emplacement de la base de données cible

Comme vous pouvez le constater, les emplacements des données et des fichiers journaux de la base de données cible peuvent être remplacés par ceux que vous aviez l'intention d'utiliser. Les valeurs sont générées automatiquement mais peuvent être facilement modifiées. Le nom de la base de données cible peut également être modifié.

Cliquez sur Suivant . La fenêtre Paramètres de transfert s'affiche. Vous devez vous assurer que le compte de l'Agent SQL Server dispose de privilèges suffisants pour effectuer l'opération de copie. Lisez attentivement cette section car elle peut entraîner des problèmes si le compte de l'Agent SQL Server ne dispose pas des autorisations requises. Dans mon cas, comme les instances se trouvent sur le même serveur, il n'est pas nécessaire d'avoir un répertoire de dossiers partagés. Toutefois, un répertoire de dossiers partagés avec des autorisations suffisantes pour le compte SQL Agent est requis si vous devez copier la base de données sur plusieurs instances SQL sur différents serveurs. Une fois que vous avez terminé l'examen, cliquez sur Suivant .

Dans l'onglet Copier les connexions, vous pouvez choisir l'option appropriée en fonction de vos besoins. Par défaut, Copier toutes les connexions utilisées par les bases de données sélectionnées est autorisé. Faites le choix approprié dans votre cas, vérifiez et cliquez sur Suivant .

Exécuter le processus de copie avec dbForge Studio

La capture d'écran ci-dessous montre où vous pouvez démarrer le processus d'exécution de la tâche de copie. Nous avons la possibilité de choisir les types de gestion d'erreurs possibles lors du processus d'exécution. Par défaut, invite un utilisateur à effectuer une action est sélectionné. Dans cette démo, j'ai également activé l'option pour écrire un rapport dans un fichier journal ce qui serait pratique pour traiter toutes sortes d'erreurs. Le journal des erreurs est assez détaillé et vous donne la raison de tout échec de processus en détail. Une fois terminé, cliquez sur Exécuter option qui lancera le processus d'exécution.

Vous pouvez afficher la progression de la tâche d'exécution.

Fin du processus de copie

Une fois le processus terminé, vous verrez cette notification confirmant que le processus de copie est terminé.

En cliquant sur Afficher le fichier journal option, vous pouvez voir les détails de l'exécution du processus et l'état des tâches terminées. Vous pouvez effectuer plus d'opérations de copie en cliquant sur Copier plus option.

Vérifier l'instance SQL cible

L'étape suivante consisterait à vous connecter à votre instance SQL cible et à valider que la base de données est copiée. Sur l'instance SQL cible, il y a le test base de données qui a été copiée avec succès à l'aide de dbForge Studio pour SQL Server.

Déplacer les bases de données de la source vers l'instance SQL cible

Auparavant, nous pouvions copier avec succès une base de données du serveur source vers le serveur cible. Nous pourrions également utiliser cet outil et la démo précédente si vous avez besoin de déplacer des bases de données à la place.

Dans la fenêtre Sélectionner les bases de données, sélectionnez Déplacer option.

Cela migrerait essentiellement les bases de données du serveur source vers le serveur cible. Suivez simplement les étapes décrites précédemment. J'avais intentionnellement arrêté l'agent SQL Server sur le serveur cible et j'ai rencontré cet écran d'erreur.

Lorsque vous cliquez sur Non , il vous amènera à l'option d'afficher les fichiers journaux.

Le bouton Afficher le fichier journal… vous amènera au fichier journal détaillé où la raison réelle de l'échec peut être identifiée.

Ici, vous pouvez voir précisément la raison de l'échec de l'opération. Vous verrez également qu'un travail SQL Agent est créé sur le serveur cible lors de l'exécution et peut être visualisé.

Ce travail n'existe que pour la durée du processus d'exécution et est supprimé une fois le processus terminé. Connectez-vous aux instances SQL cible et source pour confirmer que les bases de données ont bien été déplacées. La capture d'écran ci-dessous confirme que les bases de données 1 et 2 ont été déplacées avec succès du serveur source vers le serveur cible.

Copier les bases de données de l'instance SQL source vers la cible et remplacer

Jusqu'à présent, nous avons copié et déplacé des bases de données du serveur source vers celui de destination. Ensuite, effectuez une étape supplémentaire pour copier et remplacer les bases de données WideWorldImporters.

Ce processus est similaire aux étapes précédentes pour copier ou déplacer des bases de données avec une seule étape supplémentaire pour sélectionner le remplacer option.

Suivez simplement le reste des étapes similaires à ce qui a été fait précédemment et le processus réussira une fois terminé. Pour résumer, en utilisant la Copier la base de données dans l'outil dbForge Studio, vous pouvez exécuter les fonctions suivantes :

  • Copier les bases de données du serveur source vers le serveur cible
  • Déplacer les bases de données du serveur source vers le serveur cible
  • Copier et remplacer les bases de données du serveur source vers le serveur cible
  • Déplacer et remplacer les bases de données du serveur source vers le serveur cible

Conclusion

  • Avec cette démo, vous avez vu la facilité avec laquelle une base de données peut être copiée d'une instance SQL à une autre avec très peu d'interventions de l'utilisateur à l'aide de dbForge Studio
  • Un autre avantage de cet outil est que plusieurs bases de données peuvent être copiées ou déplacées à travers différentes instances à la fois
  • Très peu d'expertise technique est nécessaire pour effectuer ces tâches car l'outil est convivial et basé sur une interface graphique
  • Cet outil peut être très pratique, surtout si vous déployez rapidement des déploiements sur différents environnements de serveur et si le temps est une contrainte

Outil utile :

dbForge Studio for SQL Server – puissant IDE pour la gestion, l'administration, le développement, la création de rapports et l'analyse de données de SQL Server.