译者 | 李睿
日志损坏问题通常发生在对事务日志进行备份的时候 。其错误是这样描述的:
“消息26019,级别16,状态1,第1行BACKUP在数据库日志中检测到损坏 。有关详细信息,请查看错误日志 。BACKUP LOG异常终止 。”
本文中将解释发生这个错误的原因以及如何解决这个问题 。
数据库日志错误损坏意味着什么?级别16的错误并不那么严重,这是在杂项用户错误的类别 。数据库将会正常工作 。如果进行一个完整的备份,它将会工作 。如果运行DBCC CHECKDB , 它将不会检测到错误 。
但是 , 事务日志文件被损坏 , 第1行则是失败的代码行 。
为什么会出现这个错误?要找出这个错误的原因 , 需要检查SQL错误日志 。
可以在SQL Server管理工作室(SSMS)中找到错误日志 。
在“对象资源管理器”中选择“管理>SQL Server日志”,可以看到当前日志和之前的日志 。双击日志,就可以看到事件和错误 。
也可以检查事件查看器 , 进入windows日志>应用程序,寻找MSSQL Server错误 。
文章插图
可能导致日志损坏的最常见问题是硬件问题 。此外,一些软件也可能会损坏数据库 。
例如,在执行事务时遇到电源故障可能会关闭服务器 , 然后日志可能会损坏 。另一个常见的问题是磁盘故障 。如果磁盘老旧,或者遭遇停电,或者有供电问题,就会发生这种情况 。如果服务器温度过高 , 可能会出现硬件问题 。
一些软件可以破坏日志,例如病毒和恶意软件可能会破坏日志文件 。
如何解决在SQL Server数据库备份过程中检测到的日志损坏如果对损坏的数据库进行完整备份,则备份将运行,但将使用损坏的日志文件备份数据库 。
如果尝试只备份日志文件,将得到以上提到的错误 。
该问题的解决方案是使用“出错时继续”(Continue on Error)选项进行备份 。
要执行此操作,需要打开SSMS 。
在“对象资源管理器”中右键单击“数据库”,选择“任务>备份” 。
文章插图
【如何解决SQL Server数据库备份过程中检测到的日志损坏问题】选择“事务日志”选项 。
文章插图
在“媒体选项”中,选择“在错误时继续”选项 。
文章插图
即使事务日志已损坏,这一选项也将继续执行备份 。
解决这个问题的另一种方法是将数据库设置为“简单恢复”模式 。
在SSMS中,进入对象资源管理器 。
单击“数据库” , 右键单击该数据库,然后选择“属性” 。
文章插图
进入“选项”页面,选择“简单恢复”模式 。
文章插图
使用T-SQL运行检查点(checkpoint) 。
复制
CHECKPOINT
对数据库进行完整备份 。
文章插图
现在能够对日志文件进行备份 , 而不会出现错误 。
如何使用Stellar RepAIr for MS SQL解决SQL Server数据库备份过程中检测到的日志损坏问题
解决这个问题的另一种方法是使用Stellar Repair for MS SQL 。这个软件可以使用SQL Server数据文件修复数据库,也可以使用损坏的SQL Server备份来恢复所有信息 。一旦数据库恢复,就可以备份日志文件而不会出现错误 。
要做到这一点,用户需要从其网站链接下载软件 。
先将数据库联机 。执行以下命令:
复制
ALTER DATABASE stellardb
SET OFFLINE;
需要找到数据文件,数据文件是扩展名为.mdf的文件 。该文件包含数据库信息 。
文章插图
如果知道mdf文件在哪里,可以浏览并选择它,然后按下“修复”按钮 。
文章插图
在修复之后,可以将数据保存在新数据库(New Database)中 。实时数据库(Live Database)将取代当前数据库 。当选择其他格式时,可以导出Excel、CSV或html文件中的表格和视图数据 。
推荐阅读
- 电脑开机转圈圈问题及解决方案
- 如何通过三行配置解决在Kubernetes中的gRPC扩展问题
- 如何精确控制 asyncio 中并发运行的多个任务
- 50岁的人应该如何锻炼身体?
- 如何快速通过QQ发布营销消息
- 如何利用琐碎时间减肥?5个提升热量缺口,促进分解
- 跳槽攻略:如何升级身价,全面考虑
- 卧室发现一只蟑螂如何找出窝 蟑螂进屋的十大预兆
- 怎么成为汉服模特,如何成为汉服模特
- 联想一体机如何关闭屏幕,联想小新pro16如何关闭屏幕