Ich muss eine Datenbank von einem Remote-Server auf einen lokalen kopieren. Ich habe versucht, SQL Server Management Studio zu verwenden, es wird jedoch nur auf einem Laufwerk auf dem Remoteserver gesichert.
Ein paar Punkte:
- Ich habe keinen Zugriff auf den Remote-Server, sodass ich Dateien kopieren kann.
- Ich habe keinen Zugriff zum Einrichten eines UNC-Pfads zu meinem Server.
Irgendwelche Ideen, wie ich diese Datenbank kopieren kann? Muss ich Tools von Drittanbietern verwenden?
sql
sql-server
backup
Fernando
quelle
quelle
Generate and Publish Scripts
Option generiert . Ich bekomme alle Tabellen und das Schema. Aber ich habe keine Daten mit Tabellen bekommen. Wie kann ich das beheben?Antworten:
In Microsoft SQL Server Management Studio können Sie mit der rechten Maustaste auf die Datenbank klicken, die Sie sichern möchten, und auf Aufgaben -> Skripts generieren klicken.
Daraufhin wird ein Assistent geöffnet, in dem Sie Folgendes festlegen können, um eine ordnungsgemäße Sicherung Ihrer Datenbank auch auf einem Remoteserver durchzuführen :
Sobald es fertig ist, haben Sie ein Backup-Skript vor sich. Erstellen Sie eine neue lokale (oder entfernte) 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) doppelte lokale Datenbank erstellen, die Sie dann nach Belieben sichern können.
Wenn Sie vollen Zugriff auf die entfernte Datenbank haben, können Sie im ersten Fenster des Assistenten die Option "Alle Objekte skripten" aktivieren und im nächsten Fenster die Option "Skriptdatenbank" in "Wahr" ändern. Beachten Sie jedoch, dass Sie eine vollständige Suche und Ersetzung des Datenbanknamens im Skript durch eine neue 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 aufgrund von Berechtigungsbeschränkungen manchmal nicht verfügbar.
quelle
Gewähren Sie zunächst mit "Jeder" die vollständigen Kontrollberechtigungen für einen lokalen Pfad auf Ihrem Computer (siehe unten). (Oder erteilen Sie alternativ Berechtigungen speziell für das SQL Server-Agentenkonto.)
Führen Sie zweitens Folgendes aus:
quelle
Um nur Daten und Schemas zu kopieren (kopiert keine gespeicherten Prozeduren, Funktionen usw.), 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
Wählen Sie eine Destination
New...
Der Rest ist einfach.
quelle
Sie können kein Backup von einem Remote-Server auf eine lokale Festplatte erstellen. Es gibt einfach keine Möglichkeit, dies zu tun. Soweit ich weiß, gibt es dafür auch keine Tools von Drittanbietern.
Alles, was Sie tun können, ist, ein Backup auf dem Remote-Server-Computer zu erstellen und es von jemandem komprimieren und an Sie senden zu lassen.
quelle
Ich weiß, dass dies eine späte Antwort ist, aber ich muss einen Kommentar zu der am häufigsten gewählten Antwort abgeben, die besagt, 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.
Für kleine Datenbanken ist dies kein Problem, für größere jedoch sicherlich, weil das Skript manuell neu angeordnet werden muss. Versuchen Sie das auf 500 Objektdatenbank;)
Leider sind in diesem Fall die einzige Lösung Tools von Drittanbietern.
Ich habe erfolgreich Vergleichstools von ApexSQL (Diff und Data Diff) für ähnliche Aufgaben verwendet, aber Sie können mit keinem anderen, der hier bereits erwähnt wurde, etwas falsch machen, insbesondere mit Red Gate.
quelle
Sie können SQLBackupAndFTP ausprobieren . Es werden Skripte 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.
quelle
In diesem Blog finden Sie eine Beschreibung zum Kopieren einer entfernten Datenbank:
Sichern einer SQL Server 2008-Datenbank aus einer gemeinsam genutzten Hosting-Umgebung
quelle
Es gibt die 99% ige Lösung, um Bak-Dateien vom Remote-SQL-Server auf Ihren lokalen PC zu übertragen. Ich habe es dort in meinem Beitrag http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc beschrieben
Im Allgemeinen sieht es so aus:
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 einem varbinären Feldtyp einzufügen. Wählen Sie diese Zeile aus und laden Sie die Daten herunter
wiederhole vorher. Schritt so oft, wie Sie Bak-Dateien haben
Führen Sie ein SQL-Skript aus, um alle temporären Ressourcen zu entfernen
Das war's, Sie haben Ihre Bak-Dateien auf Ihrem lokalen PC.
quelle
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 Remote und das Ziel Ihre lokale Instanz von SQL Server ist.
So einfach ist das
quelle
Die AppHarbor-Bande hat damit zu kämpfen und eine temporäre Lösung entwickelt, die SQL Server-Verwaltungsobjekte und SqlBulkCopy verwendet.
Schauen Sie sich ihren Blog-Beitrag darüber an oder gehen Sie direkt zum Code .
Sie haben es nur mit AppHarbor getestet, aber es könnte sich lohnen, es sich anzusehen.
quelle
Die obigen Antworten sind einfach nicht korrekt. Ein SQL-Skript auch mit Daten ist keine Sicherung. Eine Sicherung ist eine BAK-Datei, die die vollständige Datenbank in ihrer aktuellen Struktur einschließlich 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 erfolgen, um eine Sicherungs-BAK-Datei direkt auf Ihrem lokalen Computer zu speichern. Diese erstellt beispielsweise direkt eine Sicherung von einer Remote-SQL-Datenbank auf Ihrem lokalen Computer.
quelle
Wie Martin Smith sagte, müssen Sie, wenn Sie keinen Zugriff auf den Computer oder das Dateisystem haben, Tools von Drittanbietern wie Red Gate oder Adept verwenden, um einen Vergleich der Quell- und Zielsysteme durchzuführen. Mit den Tools von Red Gate können Sie die Objekte und Schemas UND die Daten kopieren.
quelle
Auf jede Weise können Sie eine Sicherung von einer Remote-SQL Server-Instanz auf Ihr lokales Laufwerk erstellen, sofern die folgende Bedingung erfüllt ist:
Verwenden Sie jetzt beim Angeben des Sicherungsbefehls den Pfad für freigegebene Ordner, wenn Sie die Festplattenoption angeben.
quelle
Probieren Sie einfach dieses aus:
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 Domänenadministrator beginnen
3) Platzieren Sie im Wartungsassistenten des SQL Servers den Sicherungsspeicherort und den Ordner (\ yourcomputername \ sharedfoldernam).
Ich habe Remote-Backup auf 8 Server von SQL Server 2008 in unserer Firma durchgeführt
quelle
Ich bin erstaunt , dass niemand die Skript Backup - Lösung angeboten von erwähnt Ola Hallengren , die absolut nicht ein DB von einem entfernten Server zu einem UNC - Pfad in Ihrem Netzwerk kostenlos zur Sicherung gewährleisten (ich verwende es tatsächlich , wie ich Typ um eine Datenbank von einem Entwicklungsserver zu sichern, auf den ich keinen anderen Fernzugriff als über SSMS auf eine Freigabe auf meinem Entwicklungs-PC habe). Dies ist seit 2008 verfügbar und funktioniert unter SQL Server 2005 bis 2014.
Sie müssen sicherstellen, dass die von Ihnen eingerichtete Freigabe über ausreichend Zugriff verfügt: Ich erlaube der AD-Gruppe "Jeder" für die Dauer des Sicherungsprozesses das vollständige Lesen / Schreiben, da ich zu faul bin, um etwas Restriktiveres herauszufinden, aber das ist Persönliche Wahl.
Es ist gut genutzt, gut dokumentiert und sehr flexibel. Ich neige dazu, die Prozesse und die Protokollierungstabelle in ihre eigene kleine Dienstprogrammdatenbank zu stellen und sie dann zu starten. Vorausgesetzt, alles befindet sich in Ihrer AD-Domäne und nicht in dem Sinne entfernt, dass es sich auf einem Server befindet oder so, funktioniert dies sehr gut.
Ich entschuldige mich für das Hinzufügen zu einem sehr alten Thread, aber ich bin darauf 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.
quelle
Für 2019 würde ich die Verwendung von mssql-scripter empfehlen, wenn Sie eine tatsächliche lokale Sicherung wünschen. Ja, es sind Skripte, aber Sie können sie so anpassen, dass sie alle gewünschten Daten enthalten, die alle Daten enthalten können. Ich habe ein Bash-Skript geschrieben, um automatisierte tägliche Backups mit diesem auf einem Linux-Computer durchzuführen. Kasse mein Kern:
quelle
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 am 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.
quelle
Wenn Sie die Skripte unter SSMS generieren verwenden, klicken Sie auf die Schaltfläche Erweitert. Klicken Sie unter der Option "Skripte für die abhängigen Objekte generieren" auf "Wahr". Wenn Sie darauf klicken, werden alle Abhängigkeiten der einzelnen Objekte in der richtigen Reihenfolge ausgeschrieben.
quelle
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 , das diese Aufgabe löst.
quelle
Zu diesem Zweck verwende ich Redgate Backup Pro 7- Tools. Sie können einen Spiegel aus einer Sicherungsdatei in einer Kachel erstellen an einem anderen Speicherort erstellen. und kann die Sicherungsdatei nach dem Erstellen im Netzwerk und auf dem Hostspeicher automatisch kopieren.
quelle
Erstellen Sie einen lokalen freigegebenen Ordner mit Lese- / Schreibrechten für "alle"
Stellen Sie eine Verbindung zur Zieldatenbank her, starten Sie die Sicherung und zeigen Sie auf die Freigabe wie unten
\ mymachine \ shared_folder \ mybackup.bak
(Versucht in Windows-Domänenumgebung)
quelle
Ich weiß, dass dies ein älterer Beitrag ist, aber ich habe festgestellt, dass die "einfachste" Lösung darin besteht, einfach mit der rechten Maustaste auf die Datenbank zu klicken und "Aufgaben" -> "Anwendung auf Datenebene exportieren" auszuwählen. Es ist möglich, dass diese Option nur verfügbar ist, weil der Server auf Azure gehostet wird (soweit ich mich erinnere, war das .bacpac-Format dort weit verbreitet).
Sobald dies erledigt ist, können Sie mit der rechten Maustaste auf die Liste "Datenbanken" Ihres lokalen Servers klicken und die "Datenebenenanwendung importieren" verwenden, um die Daten mithilfe der .bacpac-Datei auf Ihren lokalen Computer zu übertragen.
Nur trägt der Export könnte nehmen daran lange Zeit. Es dauerte ungefähr zwei Stunden, bis meine den Export beendet hatte. Der Importteil ist jedoch viel schneller.
quelle
Wenn Sie sich in einem lokalen Netzwerk befinden, können Sie einen Ordner auf Ihrem lokalen Computer freigeben und als Zielordner für die Sicherung verwenden.
Beispiel:
Lokaler Ordner:
C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder
Remote SQL Server:
Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'
quelle