SMO备份失败,错误1827(完整数据库)

问题描述 投票:3回答:1

我正在使用SqlExpress 2012(我必须这样做,没有其他选择)。在极少数情况下,数据库可以完全运行。现在,我想备份整个数据库,然后截断一些表并缩小数据库。对于备份,我使用以下代码:

public void BackupDatabase(string backupFilePath, string databaseServer, string databaseName, out string errorMessage)
{
    var connection = new ServerConnection(databaseServer);
    connection.StatementTimeout = 360;
    Backup backup = new Backup();
    backup.Devices.AddDevice(backupFilePath, DeviceType.File);
    backup.Database = databaseName;
    backup.Initialize = true;
    backup.Incremental = false;
    backup.Action = BackupActionType.Database;
    backup.SqlBackup(new Server(connection));
}

但是如果这样做,一段时间后会出现错误。这是我的错误日志:

2020-01-20 13:42:54.89 spid10s正在启动数据库'msdb'。2020-01-20 13:42:54.90 spid12s启动数据库'mssqlsystemresource'。 2020-01-20 13:42:54.91 spid12s资源数据库内部版本为12.00.6108。这是一仅供参考。无需用户操作。 2020-01-2013:42:54.93 spid12s正在启动数据库“模型”。 2020-01-2013:42:55.69 spid12s清除tempdb数据库。 2020-01-2013:43:00.07 spid12s正在启动数据库“ tempdb”。 2020-01-2013:43:00.37 spid18s Service Broker端点处于禁用状态或停止状态。 2020-01-20 13:43:00.37 spid18s数据库镜像端点处于禁用或停止状态。 2020-01-2013:43:00.39 spid18s Service Broker管理器已启动。2020-01-20 13:43:01.02 spid10s恢复已完成。这是一仅供参考。无需用户操作。 2020-01-2013:43:02.66服务器公共语言运行时(CLR)功能使用CLR版本v4.0.30319进行了初始化C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319。 2020-01-2013:43:15.65 spid51正在启动数据库“ TESTDB”。 2020-01-2013:43:36.75 spid51错误:1827,严重性:16,状态:1。2020-01-20 13:43:36.75 spid51创建数据库或更改数据库失败,因为结果累积数据库大小将超过您的每个数据库10240 MB的许可限制。 2020-01-2013:49:04.59备份错误:3041,严重性:16,状态:1。2020-01-20 13:49:04.59备份BACKUP无法完成命令BACKUP DATABASE PHASIS。检查备份应用程序日志中是否有详细消息。 2020-01-20 14:14:56.76备份错误:3041,严重性:16,状态:1. 2020-01-20 14:14:56.76备份BACKUP无法完成命令BACKUP DATABASE PHASIS。检查备份应用程序日志以获取详细消息。

在我看来,spid51在收集所有信息后尝试执行“创建数据库”。但是随后,它尝试将备份文件作为服务器实例的一部分,并且由于10 GB无法再增加而崩溃。是否有人想过如何更改备份,以使备份不再计入数据库限制?也许明确地给它一个新的数据库或类似的东西?

Microsoft有关SMO的信息并没有真正帮助:https://docs.microsoft.com/de-de/dotnet/api/microsoft.sqlserver.management.smo.backup?redirectedfrom=MSDN&view=sql-smo-140.17283.0

编辑:使用Management Studio进行备份时,它可以工作,但是我必须以编程方式使用smo进行备份。

c# sql-server backup smo
1个回答
0
投票

好吧,那是...呃...有点尴尬。我将超时时间从360(6分钟)增加到3600(60分钟),并且不再崩溃。因此,日志条目和错误消息只会使我真正迷惑,并使我误入歧途。

© www.soinside.com 2019 - 2024. All rights reserved.