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实例的用户有权写入您自己的本地文件系统..... –