首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMO部分备份

SMO部分备份
EN

Stack Overflow用户
提问于 2016-01-14 09:01:46
回答 2查看 298关注 0票数 1

我在Server 2008 R2中有一个数据库,它使用简单的恢复模型。

数据库包含一个文件组,其中大部分数据驻留在其中(>20 of的图像)。这些映像对于应用程序来说并不重要。

我想使用Server从C#备份数据库。但是我只想备份数据库结构(主文件组;除了非必需图像之外的所有内容)。我想这样做是为了保持备份的规模小。

在我的C#代码中,我将备份操作设置为BackupActionType.Files,我只在DatabaseFileGroups集合中包含主文件组,因此它只应该备份数据库结构,而不是图像。

但是当我运行备份时,我得到了这个异常:

System.Data.SqlClient.SqlError:主文件组不能备份为文件备份,因为数据库使用的是简单的恢复模型。考虑通过指定READ_WRITE_FILEGROUPS进行部分备份。

我的问题是,如何使用Server从内部READ_WRITE_FILEGROUPS代码中指定C#?异常向我展示了如何在thing中这样做,但我想在C#中做同样的事情。

下面是我使用的代码:

代码语言:javascript
复制
class Program
{
    static string DbName = PATH_TO_DATABASE;
    static string connString = CONNECTION_STRING;

    static void Main(string[] args)
    {
        ServerConnection serverConn = new ServerConnection();
        serverConn.ConnectionString = connString;
        Server server = new Server(serverConn);

        Backup backup = new Backup() { Database = DbName };

        backup.Action = BackupActionType.Files;
        backup.DatabaseFileGroups.Add("PRIMARY");
        backup.Devices.AddDevice("D:\\backup.bak", DeviceType.File);

        backup.Initialize = true;
        backup.ContinueAfterError = false;
        backup.Incremental = false;

        backup.Complete += (snd, e) => { Console.WriteLine("Complete"); };
        backup.PercentComplete += (snd, e) => { Console.WriteLine("Percent " + e.Percent); };

        backup.SqlBackup(server);

        serverConn.Disconnect();
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-03-02 10:08:24

解决办法很简单。仅在SQLSERVER中严格单击数据库和在“选项”选项卡中的“属性”窗口中,将恢复模式更改为大容量日志。

票数 1
EN

Stack Overflow用户

发布于 2016-03-02 10:12:46

T的安全解决方案:

代码语言:javascript
复制
USE [master]
GO
ALTER DATABASE [databasename] SET RECOVERY BULK_LOGGED WITH NO_WAIT
GO
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34785329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档