Sql server 2008 r2 SQL Server 2008 R2日志文件填满了驱动器

Sql server 2008 r2 SQL Server 2008 R2日志文件填满了驱动器,sql-server-2008-r2,shrink,database-mirroring,truncate-log,Sql Server 2008 R2,Shrink,Database Mirroring,Truncate Log,因此,当我们升级到SQLServer2008R2时,我们中的一些开发人员开始接管一些SQLServer机箱的管理。在过去,我们通过使用 USE [databaseName] GO DBCC SHRINKFILE('databaseName_log', 1) BACKUP LOG databaseName WITH TRUNCATE_ONLY DBCC SHRINKFILE('databaseName_log', 1) 我相信你们都知道,trunc

因此,当我们升级到SQLServer2008R2时,我们中的一些开发人员开始接管一些SQLServer机箱的管理。在过去,我们通过使用

    USE [databaseName] 
    GO 
    DBCC SHRINKFILE('databaseName_log', 1) 
    BACKUP LOG databaseName WITH TRUNCATE_ONLY 
    DBCC SHRINKFILE('databaseName_log', 1)
我相信你们都知道,truncate-only是如何被弃用的

所以到目前为止,我找到的解决方案是将恢复设置为简单,然后收缩,然后将其设置为后退。。。然而,在我们到达那里之前,这一个已经离开了我们

现在我们有了一个完整的磁盘,正在进行的镜像被困在一个半完成的、不断出错的状态中,我们无法更改任何数据库。我们甚至不能在对象资源管理器中打开其中的一半

因此,通过阅读,未来解决这一问题的方法是制定维护计划。(呜呜。/)但是,虽然我们可以创建一个,但我们不能在没有磁盘空间和SQL Server处于错误状态的情况下启动它(事件查看器显示它每秒记录大约5个错误…从昨晚开始就一直这样)


有人对此有过经验吗?

因此,您已经遇到了一系列糟糕的情况,因为您已经到了SQL Server无法启动的地步。通常在这一点上,有必要分离数据库并将其移动到可用空间,但如果无法做到这一点,则必须开始破坏和重建

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

上面提到的是非常紧急的恢复,您必须三次检查您是否有备份、事务日志备份以及任何地方的日志,这样您就不会丢失任何数据

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

此外,我还要再次检查系统数据库是否与数据库数据和日志文件不在同一卷上。这将有助于在某处有完整卷时启动实例

请记住,如果您必须定期收缩日志文件,那么已经有一个问题需要解决


更新:如果一切都在C:驱动器上,然后考虑缩小页面文件的大小,以获得足够的空间来联机实例。不确定您的安装程序在这里。

因此,您已经到达SQL Server无法启动的地步,这里的恶劣环境已经非常严重。通常在这一点上,有必要分离数据库并将其移动到可用空间,但如果无法做到这一点,则必须开始破坏和重建

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

上面提到的是非常紧急的恢复,您必须三次检查您是否有备份、事务日志备份以及任何地方的日志,这样您就不会丢失任何数据

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

此外,我还要再次检查系统数据库是否与数据库数据和日志文件不在同一卷上。这将有助于在某处有完整卷时启动实例

请记住,如果您必须定期收缩日志文件,那么已经有一个问题需要解决


更新:如果一切都在C:驱动器上,然后考虑缩小页面文件的大小,以获得足够的空间来联机实例。不确定您的设置是什么。

我没有足够的声誉点数来支持这一点,但您是对的,谢谢。我担心这是事情的发展方向,但我们确实有备份,一旦我们打破了镜像,我们就能够充分减少文件大小。。。它们被设置为完全备份,我们不需要,所以我们正在制定维护计划,以减少所有这些。。再次感谢@Jon如果这回答了你的问题,你可以把它标记为答案。请记住,如果您使用镜像,您将被迫进行完全恢复,因此必须进行那些TLog备份。我没有足够的信誉点对此表示赞许,但您是对的,谢谢。我担心这是事情的发展方向,但我们确实有备份,一旦我们打破了镜像,我们就能够充分减少文件大小。。。他们被设置为完全备份,这是我们不需要的,所以我们现在正在制定维护计划,以减少这一切。。再次感谢@Jon如果这回答了你的问题,你可以把它标记为答案。请记住,如果使用镜像,则必须进行完全恢复,因此必须进行那些TLog备份。