我有一个 1.2Tb SQL Server 2008 R2 数据库,其中 50% 以上是空的,因为我将很多功能迁移到 PostgreSql。该数据库仍在使用中,并且仍在增长,但我认为在未来 3-5 年内它不会增长到使用全部 1.2Tb。
按照目前的增长速度,我们不会在 14 年多的时间里用完 1.2Tb。更重要的是,每当我们需要进行重大更改时,我们都会将功能迁移到 PostgreSql。在一个非常动态的敏捷环境中,这意味着我们经常将数据迁移出这个 SQL Server 数据库。因此,该数据库在未来的增长速度可能会更慢:它最终会被逐步淘汰。
因此,我们宁愿将这个未使用的空白空间用于其他数据库等 - 可能永远不需要它来增长表/索引。
我记得曾经的经验法则是“永远不要缩小数据库”。它适用于这种情况吗?目前服务器运行的是 2008 R2 EE,但我们计划很快升级到 2012。我认为因为存在这种收缩功能,所以应该有有效的用例可以进行收缩。否则为什么它存在呢?
我们可以承受周末几个小时的停机时间。
编辑:我们正在解决的问题就像我上面所说的:“我们宁愿将这个未使用的空白空间用于其他数据库”。此外,我们更喜欢不需要花费太多时间来学习我们正在迁移的技术的解决方案。