【问题标题】:How the unallocated space in SQL Server affects copying to another SQL ServerSQL Server 中未分配的空间如何影响复制到另一个 SQL Server
【发布时间】:2021-12-09 10:32:28
【问题描述】:

我是 SQL Server 的新手,我的任务是将整个 SQL Server 移动到另一个。

我正在尝试估计新 SQL Server 中需要多少空间。

我跑了EXEC sp_spaceused

然后出现了以下问题:

当我查看输出时,似乎数据库正在使用 ~122GB(保留),但在查看总数据库大小 (mdf + ldf) 时,它是 ~1.8 TB。

这是否意味着当我将数据库从现有 SQL Server 复制到新的 SQL Server 时,我需要 ~1.8 TB 到新的?

我正在考虑创建备份并将备份复制到新服务器。备份如何考虑未分配的空间?背面是否更接近保留或数据库大小?我理解这是没有考虑备份中未压缩的,这会增加文件大小。

感谢您的帮助。

【问题讨论】:

  • 如果你BACKUPRESTORE数据库,它会完全和你备份它时一样,未分配空间和所有/至于“复制“数据库,这取决于你是如何做的。你字面意思的意思是你要复制文件(当它与实例分离时)?如果是这样,那么再次,您正在制作文件、未分配空间和所有内容的文字副本。
  • @Larnu 我可以考虑两种移动 SQL Server 的方式,即您提到的移动备份和恢复的方式。另一种是使用SSMS并进行复制。现在,我不知道哪个更有效。
  • @AaronBertrand 你对后面的评论要小得多,因为分配的空间不会被备份。如何验证正在使用多少日志数据?我看到日志数据约为 400GB,我不知道这 400GB 中有多少正在使用。
  • @AaronBertrand 你想回答这个问题吗?因此,我可以为您提供问题的答案。
  • 当然,我已经将我的想法整合到一个答案中。

标签: sql-server database database-backups


【解决方案1】:

备份文件将远小于 1.8TB,因为未备份未分配的页面。但是日志和数据文件本身将恢复到相同的大小,因此您在目标上需要 1.8TB 才能将数据库恢复到当前状态。

您是否检查过您的日志文件是否由于某些时候发生的一些不受控制的增长而变得很大并且可能不再需要?如果这是你所有尺寸的地方,it's quite possible you can fix this before the move。确保您有完整备份并至少进行一次日志备份,然后使用DBCC SHRINKFILE 将日志文件带回正确的平流层,特别是如果它是由一次性异常事件或长期日志备份疏忽引起的现在已经解决了。

我真的不建议复制/移动 mdf/ldf 文件 (background) 或使用 SSMS UI 来“复制”,因为您可以通过使用适当的BACKUP DATABASERESTORE DATABASE 命令。

如何验证正在使用多少日志数据?

如果您进行定期日志备份(或进行简单恢复),它通常应该只占文件的一小部分。 DBCC SQLPERF(LogSpace); 会告诉你所有日志文件的使用百分比。

要最小化备份文件本身所需的日志大小,则:

  • 如果完全恢复,请先备份日志。
  • 如果是简单恢复,请先运行几个CHECKPOINT; 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2012-03-01
    相关资源
    最近更新 更多