2017-03-22 39 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