Lorsque vous travaillez avec des bases de données MSSQL, vous pouvez constater que vous devez exporter des bases de données sur un partage réseau directement à partir de l'interface SQL Server Management Studio (SMSS). Bien que SMSS ne contienne pas cette fonction de manière native, nous allons vous montrer une solution!
Commençons par l’exportation et l’importation de bases de données MSSQL
Pour utiliser ce guide, nous souhaitons nous assurer que vous savez comment exporter et importer vos bases de données sous forme de fichiers .bak. C'est à la fois comment vous sauvegardez une base de données MSSQL et comment vous déplacez une base de données entre deux serveurs. Ce processus est appelé en interne dans SSMS (SQL Server Management Studio) la sauvegarde ou la restauration d'une base de données, selon la direction dans laquelle vous vous dirigez.
Exportation d'une base de données MSSQL par sauvegarde
Pour commencer à exporter votre base de données, ouvrez SSMS, connectez-vous à votre serveur et accédez à votre base de données.
Vous pouvez sauvegarder la base de données en cliquant avec le bouton droit sur les bases de données souhaitées et en accédant à Tâches> Sauvegarder.
Cela ouvre le menu Sauvegarder la base de données dans lequel vous pouvez sélectionner votre base de données à sauvegarder, votre type de sauvegarde, la destination du fichier et de nombreuses autres options. Pour le bien de cet article, nous n'avons pas besoin de modifier de paramètres supplémentaires ou avancés pour le moment, alors tenez simplement compte du menu et de sa mise en page.
Lors de la création d'une sauvegarde MSSQL, votre base de données sera exportée sous forme de fichier .bak. Dans la section de destination du menu ci-dessus, vous pouvez ajouter ou supprimer des emplacements pour sauvegarder votre base de données. Vous pouvez ajouter un ou plusieurs emplacements pour l'emplacement de destination de votre fichier .bak.
Cliquez sur OK et votre base de données sera sauvegardée à l'emplacement sélectionné.
Importer une base de données MSSQL par restauration
Pour restaurer une base de données, nous allons suivre un processus similaire mais en sens inverse. Au lieu d'exporter la base de données à un fichier .bak, nous importerons la base de données de le fichier .back.
Pour importer votre base de données, cliquez avec le bouton droit sur votre serveur au lieu de la base de données et sélectionnez Restaurer la base de données.
Cela vous amène à un menu similaire au menu de sauvegarde, dans lequel vous pouvez sélectionner le fichier à partir duquel vous importez, sous le paramètre Périphérique, et sa destination, ainsi que toutes les autres options avancées dont vous pourriez avoir besoin.
Sélection du (…) L'icône sous le menu Source> Appareil vous permet de sélectionner le fichier .bak que vous souhaitez importer. Cliquez sur Ajouter et vous pouvez accéder au fichier .bak que vous souhaitez restaurer. Cliquez sur OK et votre base de données sera importée sur le serveur SQL actuel!
À ce stade, si vous essayez d'importer ou d'exporter vers un partage réseau ou un lecteur mappé, vous pouvez rencontrer des difficultés.
Pourquoi ne puis-je pas exporter directement vers un lecteur mappé?
La raison pour laquelle ce guide existe est que Microsoft n'inclut pas de manière native une fonction pour exporter une base de données directement vers un partage réseau ou un lecteur mappé. Lorsque vous exportez votre base de données pour des sauvegardes ou pour l'importer vers un autre serveur, vous ne pouvez pas sélectionner de lecteurs en réseau dans le menu ou entrer manuellement un emplacement distant.
Si vous essayez d'accéder au lecteur en sélectionnant le (…) dans le menu Sélectionner une destination de sauvegarde, votre lecteur Z: en réseau ne sera pas répertorié et seuls les lecteurs locaux sont affichés.
Beaucoup essaient d'entrer manuellement le chemin de leur lecteur réseau. Si vous entrez directement le chemin d'accès à votre lecteur de partage réseau, tel que Z: mybackup.bak, vous pouvez cliquer sur OK dans le menu Sélectionner une destination de sauvegarde.
Mais lorsque vous cliquez sur OK sur l'exportation finale, un message d'erreur similaire à celui-ci apparaît:
Comme vous pouvez le voir, cela peut être un problème si vous devez sauvegarder des bases de données vers un emplacement distant par manque d'espace ou pour des raisons de sécurité. En règle générale, vous devez ensuite exporter la base de données localement, la copier sur le serveur distant, puis l'importer sur le serveur SQL de destination.
Comment contourner cette fonctionnalité manquante?
Pour ce faire, une série de scripts doit être exécutée pour ajouter le lecteur en réseau au menu sélectionnable MSSQL. La première chose à faire est de supprimer votre partage réseau actuel, car vous le recréez au cours du processus dans la ligne de commande SQL. Pour ce faire, cliquez simplement avec le bouton droit sur le lecteur dans l'explorateur de fichiers et sélectionnez "Déconnecter" ou ouvrez l'invite de commande, puis entrez:
net use Z: / supprimer
Votre partage réseau est la lettre de lecteur de Z .
Maintenant que vous avez supprimé le partage existant, ouvrez SSMS et créez une nouvelle requête avec les commandes suivantes:
EXEC sp_configure 'afficher les options avancées', 1; ALLER RECONFIGURER; ALLER EXEC sp_configure 'xp_cmdshell', 1 ALLER RECONFIGURER ALLER
Cliquez sur Exécuter et vous devriez voir la fenêtre suivante:
Ce script configure le shell de commande pour SQL afin que vous puissiez exécuter vos propres scripts directement à partir du shell de commande compatible SQL.
Une fois que vous avez exécuté la commande ci-dessus, créez une nouvelle requête et Exécuter la commande suivante:
EXEC XP_CMDSHELL 'net use Z: \ 192.168.1.1 C $ / user: Administrator'
Remplacez 192.168.1.1 par l'adresse IP de votre serveur de destination distant et mettez à jour le mot de passe de l'utilisateur administratif. Veuillez noter que pour créer ces partages, vous avez presque certainement besoin de droits d'administrateur.
Vous pouvez maintenant vérifier que votre lecteur en réseau est configuré correctement dans SQL en exécutant la requête suivante:
EXEC XP_CMDSHELL 'Dir V:'
Vous avez activé l'interpréteur de commandes, créé un partage réseau dans SQL et vérifié son existence. Vous pouvez désormais exporter et importer des sauvegardes directement à partir de cet emplacement. Vous pouvez le voir en accédant à votre base de données> tâches> sauvegarde où vous pouvez voir que le lecteur Z: est disponible lors de l'ajout d'un emplacement de destination à sauvegarder.
Toutes nos félicitations! Vous avez maintenant configuré un partage réseau dans SQL qui persiste même si vous fermez et rouvrez SSMS. Vous pouvez maintenant sauvegarder ou restaurer directement à cet emplacement, et vous n'avez plus à vous soucier de la sauvegarde des bases de données localement, seulement pour les déplacer vers un serveur distant immédiatement après.