J'ai besoin de copier une base de données d'un serveur distant vers un serveur local. J'ai essayé d'utiliser SQL Server Management Studio, mais il ne sauvegarde que sur un lecteur sur le serveur distant.
Des 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;
Avez-vous des idées sur la façon de copier cette base de données? Dois-je utiliser des outils tiers?
sql
sql-server
backup
Fernando
la source
la source
Generate and Publish Scripts
option. J'obtiens toutes les tables et le schéma, mais je n'ai pas obtenu de données avec les tables. Comment puis-je réparer cela.Réponses:
Dans Microsoft SQL Server Management Studio, vous pouvez cliquer avec le bouton droit sur la base de données que vous souhaitez sauvegarder et cliquer sur Tâches -> Générer des scripts.
Cela ouvre un assistant dans lequel vous pouvez définir les éléments suivants afin d'effectuer une sauvegarde décente de votre base de données, même sur un serveur distant :
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 modifiez la première instruction 'USE' du script pour utiliser votre nouvelle base de données. Enregistrez le script dans un endroit sûr et allez-y et exécutez-le sur votre nouvelle base de données vide. Cela devrait vous créer une base de données locale (presque) en double que vous pouvez ensuite sauvegarder à votre guise.
Si vous avez un accès complet à la base de données distante, vous pouvez choisir de cocher 'script tous les objets' dans la première fenêtre de l'assistant, puis changer l'option 'Script Database' sur True dans la fenêtre suivante. Attention cependant, vous devrez effectuer une recherche complète et remplacer le nom de la base de données dans le script par une nouvelle base de données que dans ce cas, vous n'aurez pas à créer avant d'exécuter le script. Cela devrait créer un doublon plus précis mais n'est parfois pas disponible en raison de restrictions d'autorisations.
la source
Tout d'abord, accordez des autorisations de contrôle total à un chemin local sur votre machine (comme indiqué ci-dessous) avec Tout le monde. (Ou bien accordez des autorisations spécifiquement au compte de l'Agent SQL Server).
Ensuite, exécutez ce qui suit:
la source
Pour copier uniquement les données et le schéma (ne copiera pas les procédures stockées, les fonctions, etc.), utilisez l'Assistant d'importation et d'exportation de SQL Server et choisissez Nouveau ... lorsque vous choisissez la base de données de destination.
Cliquez avec le bouton droit sur Base de données> Tâches> Importer des données.
Choisissez une source de données
Choisissez une destination
New...
Le reste est simple.
la source
Vous ne pouvez pas créer une sauvegarde d'un serveur distant vers un disque local - il n'y a tout simplement aucun moyen de le faire. Et il n'y a pas non plus d'outils tiers pour le faire, à ma connaissance.
Tout ce que vous pouvez faire est de créer une sauvegarde sur la machine du serveur distant, et demandez à quelqu'un de la compresser et de vous l'envoyer.
la source
Je sais que c'est une réponse tardive mais je dois faire un commentaire sur la réponse la plus votée qui dit d'utiliser l'option de génération de scripts dans SSMS.
Le problème est que cette option ne génère pas nécessairement un script dans un 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 nécessite de réorganiser manuellement ce script. Essayez cela sur 500 bases de données d'objets;)
Malheureusement, dans ce cas, la seule solution est des outils tiers.
J'ai utilisé avec succès des outils de comparaison d' ApexSQL (Diff et Data Diff) pour des tâches similaires, mais vous ne pouvez pas vous tromper avec les autres déjà mentionnés ici, en particulier Red Gate.
la source
Vous pouvez essayer SQLBackupAndFTP . Il créera des scripts pour créer tous les objets de votre base de données et des instructions INSERT pour toutes les lignes de 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.
la source
Regardez ce blog pour une description comment copier une base de données distante:
Sauvegarder une base de données SQL Server 2008 à partir d'un environnement d'hébergement partagé
la source
Il y a la solution à 99% pour obtenir le fichier bak du serveur SQL distant vers votre PC local. Je l'ai décrit dans mon article http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc
En général, cela ressemblera à ceci:
exécuter le script sql pour générer des fichiers bak
exécuter le script sql pour insérer chaque fichier bak dans la table temporaire avec le type de champ varbinary et sélectionner cette ligne et télécharger les données
répéter prev. étape autant de fois que vous avez de fichiers bak
exécuter le script sql pour supprimer toutes les ressources temporaires
ça y est, vous avez vos fichiers bak sur votre PC local.
la source
Vous pouvez utiliser Copier la base de données ... cliquer avec le bouton droit sur la base de données distante ... sélectionner des tâches et utiliser copier la base de données ... il vous posera des questions sur le serveur source et le serveur de destination. que votre source est la télécommande et la destination est votre instance locale du serveur SQL.
C'est si facile
la source
Le gang AppHarbor a eu du mal avec cela et a développé une solution temporaire en utilisant des objets de gestion de serveur SQL et SqlBulkCopy.
Consultez leur blog à ce sujet ou allez directement au code .
Ils ne l'ont testé qu'avec AppHarbor, mais cela vaut peut-être la peine d'être vérifié.
la source
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 les indizes.
Bien sûr, un fichier BAK contenant la sauvegarde complète avec toutes les données et les index d'une base de données SQL Server distante 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 sur votre machine locale, par exemple Celui-ci créera directement une sauvegarde à partir d'une base de données SQL distante sur votre machine locale.
la source
Comme l'a dit Martin Smith, 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 comparer les systèmes source et de destination. Les outils de Red Gate vous permettront de copier les objets et les schémas ET les données.
la source
Vous pouvez également effectuer une sauvegarde d'une instance distante de SQL Server sur votre lecteur local, étant donné que la condition suivante est remplie:
Maintenant, lorsque vous spécifiez la commande de sauvegarde, utilisez le chemin du dossier partagé lorsque vous spécifiez l'option de disque.
la source
essayez celui-ci:
1) Partagez un dossier avec une autorisation complète sur votre ordinateur
2) dans votre serveur SQL: panneau de configuration -> outils d'administration -> services -> clic droit sur tous les services SQL
sur l'onglet de connexion doit commencer par votre administrateur de domaine
3) dans l'assistant de maintenance du serveur SQL, placez l'emplacement et le dossier de sauvegarde (\ votrenom_ordinateur \ sharedfoldernam)
J'ai fait une sauvegarde à distance sur 8 serveurs de SQL Server 2008 dans notre entreprise
la source
Je suis étonné que personne ne l' a mentionné la solution de sauvegarde scénarisé offerte par Ola Hallengren qui absolument ne vous permet de sauvegarder un DB à partir d' un serveur distant vers un chemin UNC sur votre réseau gratuitement (je suis en fait l' utiliser comme type I pour sauvegarder une base de données à partir d'un serveur de développement auquel je n'ai aucun accès à distance autre que via SSMS à un partage sur mon PC de développement). Il est disponible depuis 2008 et fonctionne sur SQL Server 2005 jusqu'en 2014.
Vous devez vous assurer que le partage que vous avez configuré dispose d'un accès suffisant: j'ai tendance à autoriser la lecture / écriture complète au groupe AD `` Tout le monde '' pendant la durée du processus de sauvegarde, car je suis trop paresseux pour comprendre quoi que ce soit de plus restrictif, mais c'est choix personnel.
Il est bien utilisé, bien documenté et très flexible. J'ai tendance à mettre les procs et la table de journalisation dans leur propre petite base de données utilitaires, puis à les lancer. À condition que tout se trouve dans votre domaine AD et non à distance dans le sens où il se trouve sur un serveur colocalisé ou quelque chose, cela fonctionne très bien.
Toutes mes excuses pour avoir ajouté à un fil de discussion très ancien, mais je suis tombé sur ce problème en cherchant autre chose et je me suis dit que c'était un ajout intéressant pour quiconque recherchait ce sujet.
la source
Pour 2019, je recommanderais d'utiliser mssql-scriptter si vous souhaitez une sauvegarde locale réelle. Oui, ce sont des scripts, mais vous pouvez l'ajuster pour inclure ce que vous voulez, ce qui peut inclure toutes les données. J'ai écrit un script bash pour effectuer des sauvegardes quotidiennes automatisées en utilisant cela sur une machine Linux. Découvrez mon essentiel:
la source
Je pourrais le faire une fois ... Pour ce faire, vous devez avoir un partage ouvert sur le serveur distant. alors vous pouvez directement placer la sauvegarde sur le partage lui-même, que l'emplacement par défaut ...
Habituellement, l'administrateur prend la sauvegarde et la partage avec nous dans un dossier partagé. J'ai essayé si cela fonctionne si j'y place la sauvegarde. Ça a marché.
la source
Si vous utilisez les scripts de génération sous SSMS, cliquez sur le bouton Avancé. Sous l'option «Générer des scripts pour les objets dépendants», cliquez sur True. En cliquant sur, toutes les dépendances de chaque objet seront également scriptées dans le bon ordre.
la source
Certains programmes de sauvegarde tiers permettent de définir le transfert de fichiers avec des autorisations réseau spécifiques. Il est très utile lorsque le service SQL Server s'exécute sous un compte restreint et n'a pas suffisamment d'autorisations réseau. Essayez d'utiliser EMS SQL Backup qui résout cette tâche.
la source
J'utilise les outils de Redgate Backup Pro 7 à cet effet. vous pouvez créer un miroir à partir du fichier de sauvegarde dans la vignette de création à un autre emplacement. et peut copier le fichier de sauvegarde après la création sur le réseau et sur le stockage hôte automatiquement.
la source
Créer un dossier partagé local, avec des privilèges de lecture / écriture "tout le monde"
Connectez-vous à la base de données cible, démarrez la sauvegarde et pointez sur le partage comme ci-dessous
\ mymachine \ dossier_partagé \ mybackup.bak
(Testé sur un environnement de domaine Windows)
la source
Je sais que c'est un article plus ancien, mais pour ce que ça vaut, j'ai trouvé que la solution "la plus simple" consiste à simplement cliquer avec le bouton droit sur la base de données et sélectionner "Tâches" -> "Exporter l'application de niveau de données". Il est possible que cette option ne soit disponible que parce que le serveur est hébergé sur Azure (d'après ce que je me souviens avoir travaillé avec Azure dans le passé, le format .bacpac y était assez courant).
Une fois cela fait, vous pouvez cliquer avec le bouton droit de la souris sur la liste "Bases de données" de votre serveur local et utiliser "Importer une application de niveau" pour obtenir les données sur votre ordinateur local à l'aide du fichier .bacpac.
N'oubliez pas que l'exportation pourrait prendre beaucoup de temps. Il a fallu environ deux heures au mien pour terminer l'exportation. L'importation est cependant beaucoup plus rapide.
la source
Si vous êtes sur un réseau local, vous pouvez partager un dossier sur votre ordinateur local et 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'
la source