2017-07-27 5 views

Antwort

2

Leider gibt es keinen direkten Weg Datenbank aus der lokalen Sicherungsdatei remote wiederherzustellen.

Die alternative Lösung besteht darin, einen freigegebenen Speicherort in einigen Fällen zu erstellen (auf der lokalen Seite oder auf der Serverseite ist es egal), auf den sowohl der Client als auch der Server zugreifen können. (Update:. Stellen Sie außerdem sicher, dass der SQL-Server, der die Wiederherstellung hat Berechtigungen für das Verzeichnis durchführen wird, dass Sie die Sicherung sind das Kopieren - @KSib) dann die Datenbank aus der Datei wieder her:

  1. Kopieren Sie newDb.bak zu \\serverip\$sharedfolder\newDb.bak auf dem Server .
  2. RESTORE DATABASE YOURDB FROM DISK = N'\\serverip\$sharedfolder\newDb.bak';

wenn Sie i den Quellcode der Wiederherstellung der Datenbank in C# teilen können.

aktualisieren: Eine andere Lösung besteht darin, dass eine Tabelle erstellen, die varbinary Spalte enthält, legen Sie die Backup-Datei von Inhalten aus lokalen ihm von SqlCommand oder SqlBulkCopy zu und dann bis zu einem gewissen, wo in Ihrem Server durch bcp so diese den Inhalt der Datei exportieren :

BCP "SELECT FileContent FROM createdTable WHERE ID = 1000" queryout "C:\newDB.bak" -T

Dann können Sie Befehl einfach die Wiederherstellung durchführen!

Sie können auch eine Serverseite StoredProcedure erstellen, die eine Transaktion enthält, um den Dateiinhalt als Eingabeparameter zu erhalten und den gesamten Befehl als eine Transaktion auszuführen.

Ich hoffe, für Sie hilfreich zu sein :).

+0

> es gibt keinen direkten Weg Oooh Mist. – KamikyIT

+0

Stellen Sie außerdem sicher, dass der SQL-Server, der die Wiederherstellung durchführt, über Berechtigungen für das Verzeichnis verfügt, in das Sie die Sicherung kopieren. – KSib

+0

@KamikyIT Ich habe einen neuen Weg gefunden und meinen Beitrag aktualisiert. Lassen Sie mich wissen, wenn nicht klar ist :) –

Verwandte Themen