【问题标题】:BackupDevice.PhysicalLocation does not add to specified locationBackupDevice.PhysicalLocation 未添加到指定位置
【发布时间】:2013-05-28 15:42:05
【问题描述】:

使用 C# 和 SMO,当我创建备份时,它们被复制到 SQL Server 使用的默认备份位置 (C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup),而不是物理位置我在代码中指定:

 Database database = Server.Databases[dbName]);
  Backup backup = new Backup();

  device = new BackupDevice();
  device.Parent = Server;
  device.Name = dbName + ".bak";
  device.BackupDeviceType = BackupDeviceType.Disk;
  device.PhysicalLocation = Path.Combine(filePath + device.Name); // doesn't appear to do anything
  device.Create();

  backup.Action = BackupActionType.Database;
  backup.Database = database.Name;
  backup.Devices.AddDevice(filePath, DeviceType.File);
  backup.SqlBackup(server);

当我运行我的代码时,我发现我指定的路径(“C:\backupTest”)为空,并且备份已添加到默认备份位置。

有人知道这是为什么吗?

【问题讨论】:

  • 验证服务是否有权访问您指定的位置。您的代码应该可以工作,因为它与此答案中的代码几乎相同; stackoverflow.com/questions/2472316/…
  • 我向目标文件夹添加了“所有人”权限,但它仍将备份添加到默认文件夹。虽然如果是权限问题不会抛出异常吗?

标签: c# backup smo


【解决方案1】:

试试下面的代码

static void BackupDataBase(string databaseName, string destinationPath)
{
    try
    {
        Server myServer = GetServer();
        Backup backup = new Backup();
        backup.Action = BackupActionType.Database;
        backup.Database = databaseName;
        destinationPath = System.IO.Path.Combine(destinationPath, databaseName + ".bak");
        backup.Devices.Add(new BackupDeviceItem(destinationPath, DeviceType.File));
        backup.Initialize = true;
        backup.Checksum = true;
        backup.ContinueAfterError = true;
        backup.Incremental = false;
        backup.LogTruncation = BackupTruncateLogType.Truncate;
        backup.SqlBackup(myServer);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

private static Server GetServer()
{
    ServerConnection conn = new ServerConnection("server", "username", "pw");
    Server myServer = new Server(conn);
    return myServer;
}

更多信息请参考thiscodeproject 文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2019-03-22
    相关资源
    最近更新 更多