【问题标题】:Cannot restore backup on SQL Server Express无法在 SQL Server Express 上还原备份
【发布时间】:2012-09-20 01:30:05
【问题描述】:

我有一个 SQL 数据库的备份,它是 409 MB。

当我尝试恢复时,它说:

服务器“SPLYF-R3K8G8JL2\SQLEXPRESS”的恢复失败。 (Microsoft.SqlServer.Express.Smo)

如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.2047.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476

CREATE DATABASE 或 ALTER DATABASE 失败,因为生成的累积数据库大小将超过每个数据库 4096 MB 的许可限制。

【问题讨论】:

标签: sql-server-2008


【解决方案1】:

(1) 您似乎正在尝试在 SQL Server 2005 实例上恢复 SQL Server 2008 R2 数据库。您不能那样倒退。

(2) SQL Server 2005 Express 的每个数据库限制为 4GB。对于 2008 R2,限制为 10GB。

(请注意,备份文件的大小不一定是数据库的大小。备份文件不包括空白空间,因此如果您的 MDF 大于 4GB(并且大部分为空),仍然会执行限制,因为限制是数据文件大小,而不是备份大小或实际数据。)

因此,解决方案是:安装 SQL Server 2008 R2 Express Edition,您应该可以在那里恢复您的数据库(假设它小于 10GB)。

如果您的数据文件当前 > 10GB 但其中有

  • 在源实例中(或附加到没有此限制的其他版本后),由于数据似乎远少于 10GB,因此使用 DBCC SHRINKFILE 将数据文件大小减小到小于 10GB。
  • 进行另一个备份
  • 继续附加到 Express

【讨论】:

  • 我正在使用管理工具在 SQL Server Express 2008 上运行它。我的实际数据库是 11GB,我在 kanika.bak 文件中将其压缩为 300MB。
  • @user1314341 如果您的数据库为 11GB,则无法在 SQL Server Express 上恢复它。无论您能够压缩多少备份,任何 SQL Server Express 版本都不会支持 11GB 的数据库。也许你应该看看开发者版(~49 美元)或获取评估版,附加你的数据库,清除一些数据并调整数据文件大小,然后再做一次备份。
  • 与备份文件无关。您需要确保数据文件(.MDF 文件,而不是 .BAK 文件)小于 10 GB。 SQL Server Express 不关心文件是否为空,它根本不会创建大于 10 GB 的数据文件(或数据文件集),即使没有没有数据。
  • 这会尝试用数据文件 > 10GB 的数据库覆盖您的新数据库。我不知道有多少种方法可以向您解释 - 您需要修复源数据库在进行备份之前。您当前的备份将尝试恢复大于 10GB 的文件,无论是尝试替换 600 MB 数据库还是 600 GB 数据库。要么修复数据库并进行新备份,要么从 Express 升级。
  • @AaronBertrand 就职 SO 紫心勋章获奖。短语正式创造。
【解决方案2】:

您确定您正在运行 SQL Server 2008 R2 Express?

数据库备份经常被压缩:这个备份会创建一个大于 4 GB 的数据库,这是 SQL Server 2008 Express 和 SQL Server 2005 Express 的限制,这并不奇怪。

尝试升级到 SQL Server 2008 R2 Express。

【讨论】:

猜你喜欢
  • 2013-03-25
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多