SQL 服务器中未分配的 space 如何影响复制到另一个 SQL 服务器

How the unallocated space in SQL Server affects copying to another SQL Server

我是SQL服务器的新手,我有一个任务要将整个SQL服务器移动到另一个

我正在尝试估计新的 SQL 服务器需要多少 space。

我运行EXEC sp_spaceused

下面出现了:

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

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

我正在考虑创建备份并将备份复制到新服务器。备份如何考虑未分配的space?后面是更接近保留还是 database_size?我理解这是不考虑备份中未压缩的,这会增加文件大小。

感谢您的帮助。

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

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

我真的不推荐 copying/moving mdf/ldf 文件 (background) 或使用 SSMS UI 来“复制”,因为你可以有很多通过使用正确的 BACKUP DATABASERESTORE DATABASE 命令更好地控制您实际做的事情。

How do I verify how much of the log data is being used?

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

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

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