2017-03-22 303 views
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

+0

使用該方法,該文件將寫入SQL服務器本地文件系統..所以,這就是爲什麼它不喜歡路徑。 – BugFinder

+0

也許你應該從服務器上覆制pendrive上的數據庫並粘貼到你的計算機上 – Rico

+0

如果你想從** remote ** SQL Server創建備份到本地機器的文件系統,你必須創建一個**共享**您的本地計算機指向本地文件系統上的目錄,然後在服務器上的路徑'\\ YourPC \ YourBackupShare \ .......'中使用UNC符號 - 前提是服務器*可以*連接到您的本地系統以及運行遠程SQL Server實例的用戶有權寫入您自己的本地文件系統..... –

回答

0

您無法創建從遠程服務器到本地磁盤的直接備份。

請看這link