Comment puis-je sauvegarder une base de données de serveur SQL distant sur un lecteur local?

je dois copier une base de données depuis un serveur distant vers un serveur local. J'ai essayé D'utiliser SQL Server Management Studio, mais il ne fait que sauvegarder sur un lecteur sur le serveur distant.

Certains points:

  • Je n'ai pas accès au serveur distant de manière à pouvoir copier des fichiers;
  • Je n'ai pas accès à la configuration d'un chemin UNC vers mon serveur;

Comment puis-je copier cette base de données? Vais-je devoir utiliser la 3ème partie outils?

198
demandé sur yoozer8 2010-10-15 16:28:16

20 réponses

dans Microsoft SQL Server Management Studio, vous pouvez faire un clic droit sur la base de données que vous souhaitez sauvegarder et cliquer sur Tâches- > générer des Scripts.

ce pop ouvre un assistant où vous pouvez définir ce qui suit afin d'effectuer une sauvegarde décente de votre base de données, même sur un serveur distant :

  • sélectionnez la base de données que vous souhaitez sauvegarder et cliquez sur Suivant,
  • dans les options qu'il vous présente:
    1. En 2010: sous la Table/Vue sur Options, modifier les 'Données de Script" et "Script Index" pour de Vrai et de frapper à côté,
    2. En 2012: sous "Général", modifier les Types de données de script "à partir de "Schéma uniquement' à 'Schéma et des données
    3. en 2014: l'option de script des données est maintenant "caché" à l'étape "Définir les Options de Script", vous devez cliquer sur "Avancé" et définir "Types de données à script" à "schéma et données "valeur
  • dans la fenêtre suivante quatre , cliquez sur "select all" , puis sur "next
  • choisir de script vers une nouvelle fenêtre de requête

une fois que c'est fait, vous aurez un script de sauvegarde prêt devant vous. Créez une nouvelle base de données locale (ou distante), et changez la première déclaration 'USE' dans le script pour utiliser votre nouvelle base de données. Sauvegardez le script dans un endroit sûr, et allez de l'avant et l'exécuter contre votre nouveau vide la base de données. Cela devrait vous créer un (presque) dupliquer la base de données locale que vous pouvez ensuite sauvegarder comme vous le souhaitez.

si vous avez full accès à la base de données distante, vous pouvez choisir de cocher" script all objects "dans la première fenêtre de l'assistant et ensuite changer l'option "Script Database" à True dans la fenêtre suivante. Mais attention, vous devrez effectuer une recherche complète et remplacement de la base de données nom dans le script d'une nouvelle base de données qui, dans ce cas, vous n'aurez pas à créer avant d'exécuter le script. Cela devrait créer un duplicata plus précis mais n'est parfois pas disponible en raison des restrictions de permissions.

160
répondu Daniel Gill 2015-10-14 17:09:00

pour copier les données et le schéma seulement (ne copiera pas les procédures stockées, les fonctions, etc.), utilisez L'Assistant D'importation et D'exportation du serveur SQL, et choisissez Nouveau... lors du choix de la base de données de destination.

Clic Droit Sur La Base De Données > Tâches > Importer Des Données.

choisir une Source de données

  • source de données : client natif de SQL Server
  • nom du serveur : le serveur distant
  • authentification :
  • base de données : le nom de la base de données

"choisir une Destination

  • source de données : client natif de SQL Server
  • nom du serveur : le serveur local
  • authentification :
  • base de données : New...

le reste est droit devant.

38
répondu Shaun Luttin 2016-09-12 18:18:27

Vous ne peut pas créer une sauvegarde à partir d'un serveur distant sur un disque local - il est tout simplement aucun moyen pour ce faire. Et il n'y a pas d'outils tiers à le faire, autant que je sache.

tout ce que vous pouvez faire est de créer une sauvegarde sur la machine de serveur à distance, et que quelqu'un la ferme et vous l'envoie.

27
répondu marc_s 2010-10-15 12:53:02

tout d'abord, accordez des permissions de contrôle complètes à un chemin local sur votre machine (comme indiqué ci-dessous) avec tout le monde. (Ou alternativement accorder des permissions spécifiques au compte D'Agent SQL Server).

second, exécutez ce qui suit:

BACKUP DATABASE [dev] TO  DISK = N'\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;
24
répondu T. Webster 2017-04-13 12:42:42

je sais que c'est la réponse tardive, mais je dois faire un commentaire sur la réponse la plus votée qui dit d'utiliser l'option Générer des scripts dans les SSMS.

problème avec cette option cette option ne génère pas nécessairement un script dans l'ordre d'exécution correct car elle ne prend pas en compte les dépendances.

pour les petites bases de données ce n'est pas un problème mais pour les plus grandes c'est certainement parce qu'il faut ré-Ordonner manuellement ce script. Essaie ça sur 500. base de données d'objets;)

malheureusement dans ce cas, la seule solution sont les outils tiers.

j'ai utilisé avec succès les outils de comparaison de ApexSQL (Diff et Diff de données) pour des tâches similaires, mais vous ne pouvez pas vous tromper avec tout autre déjà mentionné ici, en particulier Red Gate.

16
répondu Phill C 2013-08-12 08:55:52

vous pouvez essayer SQLBackupAndFTP . Il créera des scripts pour créer tous les objets dans votre base de données et insérera des déclarations pour toutes les lignes dans vos tables. Dans n'importe quelle base de données vous pouvez exécuter ce fichier de script et la base de données entière sera recréée.

13
répondu adinas 2012-02-09 20:39:55

Regardez ce blog pour une description Comment copier une base de données à distance:

sauvegarde D'une base de données SQL Server 2008 à partir d'un environnement D'hébergement partagé

6
répondu Marcel W 2011-05-25 08:32:57

vous pouvez utiliser la base de données de copie ... cliquez-droit sur la base de données distante ... sélectionnez les tâches et utilisez la base de données de copie ... il vous demande sur les serveurs source et de destination . que votre source est la distante et la destination est votre instance locale de sql server.

c'est facile

4
répondu Pouyan 2012-07-11 13:58:14

il y a la solution à 99% pour obtenir le fichier bak à partir du serveur sql distant vers votre pc local. Je l'ai décrit dans mon post http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc

En général, il ressemblera à ceci:

  • exécuter un script sql pour générer des fichiers bak

  • exécuter un script sql pour insérer chaque bak fichier dans la table temporaire avec varbinary type de champ et sélectionnez cette ligne et téléchargez les données

  • répéter prev. step autant de fois que vous avez des fichiers bak

  • exécuter un script sql pour supprimer toutes les ressources temporaires

c'est tout, vous avez vos fichiers bak sur votre pc local.

4
répondu okarpov 2015-06-27 12:22:00

la bande D'AppHarbor a été aux prises avec ce problème et a développé une solution temporaire en utilisant des objets de gestion de serveur SQL et SqlBulkCopy.

Check out leur billet de blog à ce sujet, ou allez directement au code .

ils ont seulement testé avec AppHarbor, mais il peut être intéressant de vérifier.

3
répondu Daniel Gill 2011-12-16 08:52:20

les réponses ci-dessus ne sont tout simplement pas correctes. Un Script SQL même avec des données n'est pas une sauvegarde. Une sauvegarde est un fichier BAK qui contient la base de données complète dans sa structure actuelle y compris indizes.

bien sûr, un fichier BAK contenant la sauvegarde complète avec toutes les données et les indizes d'une base de données SQL Server distant peut être récupéré sur un système local.

cela peut être fait avec un logiciel commercial, pour enregistrer directement un fichier BAK de sauvegarde pour votre machine locale, par exemple celle-ci créera directement une sauvegarde à partir D'une base de données SQL distante sur votre machine locale.

3
répondu Matthias 2016-02-28 10:38:05

comme Martin Smith l'a dit, si vous n'avez pas accès à la machine ou au système de fichiers, vous devrez utiliser des outils tiers, comme Red Gate ou Adept pour faire une comparaison sur les systèmes source et destination. Rouge Porte outils vous permettent de copier les objets et les schémas ET les données.

1
répondu Vinnie 2010-10-15 15:01:23

essayez celui-ci:

1)partager un dossier avec pleine permission dans votre ordinateur""

2) dans votre serveur SQL : panneau de contrôle - > outils administratifs -> services - > clic droit sur tous les services SQL

sous l'onglet "Ouvrir une session" devrait commencer par votre administrateur de domaine

3) dans l'assistant de maintenance de sql server placer l'emplacement de sauvegarde et le dossier (\yourcomputername\sharedfoldernam)

j'ai fait la sauvegarde à distance sur 8 serveur de sql server 2008 dans notre société""

1
répondu Parsaria 2014-01-08 20:02:34

je suis étonné que personne n'ait mentionné la solution de sauvegarde scriptée offerte par Ola Hallengren qui absolument does vous permettent de sauvegarder une DB à partir d'un serveur distant vers un chemin UNC sur votre réseau GRATUITEMENT (Je l'utilise en fait comme je tape pour sauvegarder une DB à partir d'un serveur dev auquel je n'ai pas d'accès à distance autre que par SSMS à une part sur mon PC dev). Il est disponible depuis 2008 et fonctionne sur SQL Server 2005 jusqu'en 2014.

vous devez vous assurer que le partage que vous avez mis en place a suffisamment d'accès: j'ai tendance à permettre la pleine lecture/écriture au groupe D'annonces 'tout le monde' pour la durée du processus de sauvegarde parce que je suis trop paresseux pour comprendre quelque chose de plus restrictif, mais c'est un choix personnel.

c'est bien utilisé, bien documenté et très flexible. J'ai tendance à mettre le procs et la table de journalisation dans leur propre petite base de données d'utilités et ensuite l'allumer. Pourvu que tout soit dans votre annonce domaine et non distant dans le sens où il est sur un serveur co-localisé ou quelque chose, cela fonctionne très bien.

excuses pour ajouter à un fil très ancien, mais je suis tombé sur cela en cherchant quelque chose d'autre et je me suis dit que c'était un ajout valable pour quiconque cherche ce sujet.

1
répondu Steve Pettifer 2014-05-30 11:07:21

je pourrais faire ça une fois...pour faire ça il faut avoir un partage ouvert sur le serveur distant. ensuite, vous pouvez directement placer la sauvegarde sur l'action elle-même, que l'emplacement par défaut...

Habituellement, l'administrateur prend la sauvegarde et le partage avec nous à un dossier partagé. J'ai essayé si cela fonctionnera si je place la sauvegarde. Il a travaillé.

0
répondu Vivek 2012-10-21 02:09:35

y une seule façon de prendre une sauvegarde à partir D'une instance de serveur SQL distant vers votre lecteur local, étant donné que la condition suivante est remplie:

  1. Vous avez un dossier partagé sur votre disque local.
  2. le dossier partagé est accessible depuis la boîte du serveur SQL.

maintenant, lorsque vous spécifiez la commande de sauvegarde, utilisez le chemin du dossier partagé lorsque vous spécifiez l'option disque.

0
répondu Naresh 2013-05-15 06:11:44

si vous utilisez les Scripts Generate sous SSMS, cliquez sur le bouton Advanced. Sous L'option "Générer des Scripts pour les objets dépendants", cliquez sur True. En cliquant sur que toutes les dépendances de chaque objet seront également scriptées dans l'ordre approprié.

0
répondu user2684 2013-10-03 05:12:06

certains programmes de sauvegarde tiers permettent de configurer le transfert de fichier avec des permissions réseau spécifiques. Il est très utile lorsque le service SQL Server tourne sous compte restreint et n'a pas assez de permissions réseau. Essayez d'utiliser EMS SQL Backup qui résout cette tâche.

0
répondu curandero 2014-04-08 03:30:22

j'utilise Redgate backup pro 7 des outils à cette fin. vous pouvez créer un miroir à partir du fichier de sauvegarde dans Créer une tuile sur un autre emplacement. et peut copier le fichier de sauvegarde après créer sur le réseau et sur le stockage hôte automatiquement.

0
répondu mehdi lotfi 2014-06-16 08:16:26

Si vous êtes sur un réseau local, vous pouvez partager un dossier sur votre machine locale et de l'utiliser comme dossier de destination pour la sauvegarde.

exemple:

  • dossier Local:

    C:\MySharedFolder -> URL: \MyMachine\MySharedFolder

  • serveur SQL distant:

    Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\MyMachine\MySharedFolder'

-1
répondu Tonatio 2018-01-10 15:54:14