1

因此,当我们升级到SQL Server 2008 R2时,我们中的一些开发人员开始接管我们的一些SQL Server框的管理。在过去,我们已经通过手动使用SQL Server 2008 R2日志文件填满驱动器

USE [databaseName] 
    GO 
    DBCC SHRINKFILE('databaseName_log', 1) 
    BACKUP LOG databaseName WITH TRUNCATE_ONLY 
    DBCC SHRINKFILE('databaseName_log', 1) 

减少日志文件的大小,我相信大家都知道是怎么截断只已被弃用。

所以到目前为止我发现的解决方案是设置恢复=简单,然后收缩,然后将其设置回来......但是,这个人在我们到达那里之前就离开了我们。

现在我们已经有了一个完整的磁盘,并且正在进行的镜像被卡在一个半完成的,不断出错的状态,我们无法更改任何数据库。我们甚至无法在对象浏览器中打开其中的一半。

因此,从阅读的角度来看,未来发生的这种方式是建立维护计划。 (whoops。:/),但是虽然我们可以创建一个,但是我们无法在没有磁盘空间的情况下启动它,并且SQL Server仍然处于错误状态(事件查看器显示它每秒记录约5次错误...这一直在进行自从昨晚起。)

任何人都有这方面的经验?

回答

1

所以,你已经有了一个完美的恶劣环境风暴,因为你已经达到了SQL Server无法启动的地步。通常在这一点上,需要分离数据库并将其移动到可用空间,但如果你无法做到这一点,就必须开始破解和重建。

如果您拥有最新的镜像和备份,则需要在磁盘上放置一个不幸的数据库,以使实例重新联机。一旦你有足够的空间,然后采取紧急措施,打破必要的镜像,使日志文件恢复到可管理的大小,并缩小它们。

以上是非常多的紧急恢复,您必须三重检查您是否拥有备份,事务日志备份和日志,以便您不会丢失任何数据。

长期来管理您需要确保镜像保持同步,正在进行完整和事务日志备份的镜像,并且可能会重新配置实例上的每个数据库,其中最大文件大小是所有镜像的总和日志文件不会超过可用卷空间。

此外,我会仔细检查您的系统数据库与您的数据库数据和日志文件不在同一个卷上。这应该有助于在某个地方拥有完整音量时启动实例。请注意,如果您不得不定期收缩日志文件,那么就存在一个需要解决的问题。

更新:如果一切都在C:驱动器上,则考虑减小页面文件的大小以获得足够的空间来联机实例。不知道你的设置在这里。

+0

我没有足够的声望点给这个赞许,但你是对的,谢谢。我担心这是事情发展的方向,但我们确实有备份,一旦我们打破了镜像,我们就可以充分减少文件大小......它们被设置为完全备份,这是我们不需要的,所以我们正在制定维护计划以减少所有这些......再次感谢! – Jon

+0

@Jon如果这回答了您的问题,您可以将其标记为答案。请记住,如果您使用镜像,您将被迫完全恢复,因此必须执行这些TLog备份。 – David