it-swarm.com.de

Wie kann ich eine entfernte SQL Server-Datenbank auf einem lokalen Laufwerk sichern?

Ich muss eine Datenbank von einem Remote-Server auf einen lokalen kopieren. Ich habe versucht, SQL Server Management Studio zu verwenden, es sichert jedoch nur ein Laufwerk auf dem Remoteserver.

Ein paar Punkte:

  • Ich habe keinen Zugriff auf den Remote-Server, so dass ich Dateien kopieren kann.
  • Ich kann keinen UNC-Pfad zu meinem Server einrichten.

Irgendwelche Ideen, wie ich diese Datenbank kopieren kann? Muss ich Tools von Drittanbietern verwenden?

221
Fernando

In Microsoft SQL Server Management Studio können Sie mit der rechten Maustaste auf die zu sichernde Datenbank klicken und auf Aufgaben -> Skripte erstellen klicken.

Daraufhin wird ein Assistent geöffnet, in dem Sie Folgendes festlegen können, um eine ordnungsgemäße Sicherung Ihrer Datenbank durchzuführen: auch auf einem Remoteserver:

  • Wählen Sie die Datenbank aus, die Sie sichern möchten, und klicken Sie auf Weiter.
  • In den Optionen, die es Ihnen vorstellt:
    1. Im Jahr 2010: Ändern Sie unter "Tabelle/Ansichtsoptionen" "Skriptdaten" und "Skriptindizes" in "Wahr" und klicken Sie auf "Weiter".
    2. 2012: Ändern Sie unter "Allgemein" die Option "Datentypen in Skript" von "Nur Schema" in "Schema und Daten".
    3. 2014: Die Option zum Erstellen eines Skripts für die Daten ist jetzt in Schritt "Festlegen von Skriptoptionen" "ausgeblendet". Sie müssen auf "Erweitert" klicken und für "Zu schreibende Datentypen" den Wert "Schema und Daten" festlegen
  • Klicken Sie im nächsten vier Fenster auf "Alles auswählen" und dann auf "Weiter".
  • Wählen Sie diese Option, um ein Skript für ein neues Abfragefenster zu erstellen

Sobald das erledigt ist, haben Sie ein Backup-Skript vor sich. Erstellen Sie eine neue lokale (oder ferne) Datenbank und ändern Sie die erste USE-Anweisung im Skript, um Ihre neue Datenbank zu verwenden. Speichern Sie das Skript an einem sicheren Ort und führen Sie es für Ihre neue leere Datenbank aus. Dadurch sollten Sie eine (fast) duplizierte lokale Datenbank erstellen, die Sie dann nach Belieben sichern können.

Wenn Sie full Zugriff auf die entfernte Datenbank haben, können Sie im ersten Fenster des Assistenten das Kontrollkästchen "Skript für alle Objekte" aktivieren und im nächsten Fenster die Option "Skriptdatenbank" auf "True" setzen. Beachten Sie jedoch, dass Sie eine vollständige Suche und Ersetzung des Datenbanknamens im Skript in einer neuen Datenbank durchführen müssen, die Sie in diesem Fall nicht erstellen müssen, bevor Sie das Skript ausführen. Dies sollte ein genaueres Duplikat erstellen, ist jedoch manchmal aufgrund von Berechtigungsbeschränkungen nicht verfügbar.

173
Daniel Gill

Um nur Daten und Schemas zu kopieren (gespeicherte Prozeduren, Funktionen usw. werden nicht kopiert), verwenden Sie den SQL Server-Import- und -Export-Assistenten und wählen Sie Neu ..., wenn Sie die Zieldatenbank auswählen.

Klicken Sie mit der rechten Maustaste auf Datenbank> Aufgaben> Daten importieren.

Wählen Sie eine Datenquelle

  • Datenquelle: SQL Server Native Client
  • Servername: der entfernte Server
  • Authentifizierung:
  • Datenbank: der Datenbankname

Wählen Sie ein Ziel

  • Datenquelle: SQL Server Native Client
  • Servername: der lokale Server
  • Authentifizierung:
  • Datenbank: New...

Der Rest ist unkompliziert.

43
Shaun Luttin

Erteilen Sie zunächst einem lokalen Pfad auf Ihrem Computer (wie unten gezeigt) mit "Jeder" Vollzugriffsberechtigungen. (Oder alternativ speziell Berechtigungen erteilen für das SQL Server-Agentenkonto).

Führen Sie anschließend Folgendes aus:

BACKUP DATABASE [dev] TO  DISK = N'\\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;
37
T. Webster

Sie können nicht ein Backup von einem entfernten Server auf eine lokale Festplatte erstellen - es gibt einfach keine Möglichkeit, dies zu tun. Soweit ich weiß, gibt es auch keine Tools von Drittanbietern, um dies zu tun.

Alles, was Sie tun können, ist ein Backup auf dem Remote-Server zu erstellen und es von jemandem komprimieren und an Sie senden zu lassen.

27
marc_s

Ich weiß, dass dies eine späte Antwort ist, aber ich muss einen Kommentar zu der am häufigsten gewählten Antwort abgeben, in der steht, dass die Option zum Generieren von Skripten in SSMS verwendet werden soll.

Das Problem dabei ist, dass diese Option das Skript nicht unbedingt in der richtigen Ausführungsreihenfolge generiert, da Abhängigkeiten nicht berücksichtigt werden.

Bei kleinen Datenbanken ist dies kein Problem, bei größeren jedoch, da das Skript manuell neu angeordnet werden muss. Versuchen Sie das auf 500 Objektdatenbanken;)

Leider sind in diesem Fall nur Tools von Drittanbietern die Lösung.

Ich habe Vergleichstools von ApexSQL (Diff und Data Diff) erfolgreich für ähnliche Aufgaben verwendet, aber Sie können mit keinem anderen, hier bereits erwähnten, Fehler machen, insbesondere Red Gate.

17
Phill C

Sie können versuchen SQLBackupAndFTP . Es werden Skripts zum Erstellen aller Objekte in Ihrer Datenbank und INSERT-Anweisungen für alle Zeilen in Ihren Tabellen erstellt. In jeder Datenbank können Sie diese Skriptdatei ausführen und die gesamte Datenbank wird neu erstellt.

13
adinas

In diesem Blog finden Sie eine Beschreibung zum Kopieren einer entfernten Datenbank:

Sichern einer SQL Server 2008-Datenbank aus einer gemeinsam genutzten Hostingumgebung

7
Marcel W

Es gibt eine 99% ige Lösung, um die Bak-Datei vom entfernten SQL-Server auf Ihren lokalen PC zu übertragen. Ich habe es dort in meinem Beitrag beschrieben http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc

Im Allgemeinen wird es so aussehen:

  • führen Sie ein SQL-Skript aus, um Bak-Dateien zu generieren

  • führen Sie ein SQL-Skript aus, um jede BAK-Datei in eine temporäre Tabelle mit varbinärem Feldtyp einzufügen, und wählen Sie diese Zeile aus und laden Sie die Daten herunter

  • vorh. wiederholen Schritt so oft Sie Bak-Dateien haben

  • führen Sie das SQL-Skript aus, um alle temporären Ressourcen zu entfernen

das war's, Sie haben Ihre Bak-Dateien auf Ihrem lokalen PC.

6
okarpov

Sie können "Datenbank kopieren" verwenden. Klicken Sie mit der rechten Maustaste auf die entfernte Datenbank. Wählen Sie Aufgaben aus und verwenden Sie "Datenbank kopieren". Sie werden nach dem Quellserver und dem Zielserver gefragt. dass Ihre Quelle die entfernte ist und das Ziel Ihre lokale Instanz von SQL Server.

so einfach ist das

5
Pouyan

Die AppHarbor-Bande hat damit zu kämpfen und eine temporäre Lösung mit SQL Server-Verwaltungsobjekten und SqlBulkCopy entwickelt.

Schauen Sie sich ihren Blog-Beitrag an, oder gehen Sie direkt zum Code .

Sie haben es nur mit AppHarbor getestet, aber es kann sich lohnen, es auszuprobieren.

3
Daniel Gill

Die obigen Antworten sind einfach nicht korrekt. Ein SQL-Skript auch mit Daten ist keine Sicherung. Eine Sicherung ist eine BAK-Datei, die die gesamte Datenbank in ihrer aktuellen Struktur einschließlich der Indizes enthält.

Natürlich kann eine BAK-Datei, die die vollständige Sicherung mit allen Daten und Indizes aus einer entfernten SQL Server-Datenbank enthält, auf einem lokalen System abgerufen werden.

Dies kann mit kommerzieller Software durchgeführt werden, um eine Backup-BAK-Datei direkt auf Ihrem lokalen Computer zu speichern. Beispiel: Diese erstellt direkt ein Backup von einer entfernten SQL-Datenbank auf Ihrem lokalen Computer.

3
Matthias

Wie Martin Smith sagte, müssen Sie Tools von Drittanbietern wie Red Gate oder Adept verwenden, um einen Vergleich zwischen Quell- und Zielsystem durchzuführen, wenn Sie keinen Zugriff auf den Computer oder das Dateisystem haben. Mit den Tools von Red Gate können Sie die Objekte und Schemata UND die Daten kopieren.

1
Vinnie

wenn die folgende Bedingung erfüllt ist, können Sie eine Sicherungskopie von einer entfernten SQL Server-Instanz auf Ihrem lokalen Laufwerk erstellen:

  1. Sie haben einen freigegebenen Ordner auf Ihrem lokalen Laufwerk.
  2. auf den freigegebenen Ordner kann über die SQL Server-Box zugegriffen werden.

Verwenden Sie jetzt beim Angeben des Sicherungsbefehls den Pfad für freigegebene Ordner, wenn Sie die Festplattenoption angeben.

1
Naresh

versuche es einfach mit diesem:

1) Geben Sie einen Ordner mit voller Berechtigung auf Ihrem Computer frei

2) In Ihrem SQL Server: Systemsteuerung -> Verwaltungstools -> Dienste -> Klicken Sie mit der rechten Maustaste auf alle SQL-Dienste

die Registerkarte "Anmelden" sollte mit Ihrem Domain-Administrator beginnen

3) im wartungsassistenten von sql server den sicherungspfad und den ordner (\ yourcomputername\sharedfoldernam) platzieren

Ich habe Remote-Backup auf 8 Server von SQL Server 2008 in unserer Firma

1
Parsaria

Ich bin erstaunt, dass niemand die geskriptete Backup-Lösung von Ola Hallengren erwähnt hat, mit der Sie absolut Backups erstellen können Eine Datenbank von einem Remote-Server zu einem UNC-Pfad in Ihrem Netzwerk kostenlos (ich verwende sie tatsächlich während der Eingabe, um eine Datenbank von einem Dev-Server zu sichern, auf den ich keinen anderen Remote-Zugriff als über SSMS auf eine Freigabe auf meinem Dev habe PC). Dies ist seit 2008 verfügbar und funktioniert auf SQL Server 2005 bis 2014.

Sie müssen sicherstellen, dass die von Ihnen eingerichtete Freigabe über ausreichend Zugriff verfügt: Ich erlaube in der Regel das vollständige Lesen/Schreiben in der AD-Gruppe "Jeder" für die Dauer des Sicherungsvorgangs, da ich zu faul bin, um etwas Einschränkenderes zu finden, aber das ist Persönliche Wahl.

Es ist gut genutzt, gut dokumentiert und sehr flexibel. Ich neige dazu, die Procs und die Protokollierungstabelle in ihre eigene kleine Dienstprogrammdatenbank zu stellen und sie dann zu starten. Vorausgesetzt, dass sich alles in Ihrer AD-Domäne befindet und nicht in dem Sinne entfernt ist, dass es sich um einen am selben Ort befindlichen Server oder Ähnliches handelt, funktioniert dies sehr gut.

Entschuldigung für das Hinzufügen zu einem sehr alten Thread, aber ich bin auf dieses Problem gestoßen, als ich nach etwas anderem gesucht habe und dachte, es sei eine lohnende Ergänzung für alle, die nach diesem Thema suchen.

1
Steve Pettifer

Einige Sicherungsprogramme von Drittanbietern ermöglichen das Festlegen der Dateiübertragung mit bestimmten Netzwerkberechtigungen. Dies ist sehr nützlich, wenn der SQL Server-Dienst unter einem eingeschränkten Konto ausgeführt wird und nicht über ausreichende Netzwerkberechtigungen verfügt. Versuchen Sie es mit EMS SQL Backup , um diese Aufgabe zu lösen.

0
curandero

Ich könnte das einmal tun ... Um dies zu tun, muss eine Freigabe auf dem Remote-Server geöffnet sein. dann können Sie das Backup direkt auf der Freigabe selbst platzieren, als der Standardspeicherort ...

Normalerweise nimmt der Administrator das Backup und teilt es uns in einem freigegebenen Ordner mit. Ich habe versucht, ob das funktioniert, wenn ich das Backup dort platziere. Es funktionierte.

0
Vivek

Ich benutze Redgate Backup Pro 7 Tools für diesen Zweck. Sie können einen Spiegel aus der Sicherungsdatei in Kachel erstellen an einem anderen Speicherort erstellen. und kann Backup-Datei nach der Erstellung im Netzwerk und auf dem Host-Speicher automatisch kopieren.

0
mehdi lotfi

Wenn Sie die Option "Skripte erstellen" unter SSMS verwenden, klicken Sie auf die Schaltfläche "Erweitert". Klicken Sie unter der Option "Skripts für die abhängigen Objekte generieren" auf "Wahr". Indem Sie darauf klicken, werden auch alle Abhängigkeiten der einzelnen Objekte in der richtigen Reihenfolge skriptiert.

0
user2684