0
我想將遠程SQL Server數據庫備份到本地計算機上。備份遠程SQL Server數據庫
到目前爲止,我已經試過:
using (SqlConnection defaultSqlConnection = new SqlConnection(Constants.Database_Constants.GetConnectionStringFromProfile(Constants.Profiles.Staging)))
{
string pathDatabase = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\backup_production_database"+DateTime.UtcNow.ToString("d_MMM_yyyy_HH_mm_ss", CultureInfo.InvariantCulture)+".bak";
WriteLine("The backup will be stored in " + pathDatabase);
string backupDb = "BACKUP DATABASE DB_Staging TO DISK = '" + pathDatabase+ "' WITH INIT, COMPRESSION";
File.Create(pathDatabase);
using (SqlCommand backupCommand = new SqlCommand(backupDb, defaultSqlConnection))
{
defaultSqlConnection.Open();
backupCommand.ExecuteNonQuery();
}
}
但我得到這個錯誤:
無法打開備份設備 'XXXX \ BIN \調試\ backup_production_database22_Mar_2017_08_04_42.bak'。 操作系統錯誤3(系統找不到指定的路徑。)。 BACKUP DATABASE正在異常終止。
我知道我可以使用SQL Server Management Studio生成腳本,但它不能幫助我。我想在PowerShell腳本中自動備份數據庫,而無需手動進入SQL Server Management Studio
使用該方法,該文件將寫入SQL服務器本地文件系統..所以,這就是爲什麼它不喜歡路徑。 – BugFinder
也許你應該從服務器上覆制pendrive上的數據庫並粘貼到你的計算機上 – Rico
如果你想從** remote ** SQL Server創建備份到本地機器的文件系統,你必須創建一個**共享**您的本地計算機指向本地文件系統上的目錄,然後在服務器上的路徑'\\ YourPC \ YourBackupShare \ .......'中使用UNC符號 - 前提是服務器*可以*連接到您的本地系統以及運行遠程SQL Server實例的用戶有權寫入您自己的本地文件系統..... –