【问题标题】:Backup a remote SQL Server database备份远程 SQL Server 数据库
【发布时间】:2017-08-14 05:35:36
【问题描述】:

我想将远程 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\Debug\backup_production_database22_Mar_2017_08_04_42.bak”。 操作系统错误3(系统找不到指定的路径。)。 BACKUP DATABASE 异常终止。

我知道我可以使用 SQL Server Management Studio 生成脚本,但它对我没有帮助。我想在 powershell 脚本中自动备份我的数据库,而无需手动进入 SQL Server Management Studio

【问题讨论】:

  • 使用该方法,文件将被写入 SQL 服务器本地文件系统。所以,这就是它不喜欢路径的原因。
  • 也许您应该从服务器复制 pendrive 上的数据库并粘贴到您的计算机上
  • 如果您想从 remote SQL Server 创建备份到本地计算机的文件系统,您必须在本地计算机上创建一个 share 指向到本地文件系统上的目录,然后在服务器上的路径 \\YourPC\YourBackupShare\....... 中使用 UNC 表示法 - 前提是服务器 可以 连接到本地系统,以及远程 SQL Server 实例的用户运行在有权限编写你自己的本地文件系统.....

标签: c# sql-server powershell


【解决方案1】:

您不能直接从远程服务器创建备份到本地磁盘。

请看这个link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多