原文地址:
原文作者: priyanka chauhan
本文概述了找出sql备份文件是否已损坏、自动执行备份过程的不同方法,以及测试和避免此问题的一些提示。
1. 介绍
作为一个优秀的dba,备份数据至关重要。但有时候,我们有备份,备份也已损坏。如果这种情况发生在关键场景中,则可能会因为这个失误而被解雇。
本文介绍了找出sql备份文件是否损坏的不同方法,自动执行备份过程,以及测试和避免此问题的一些建议。
2. 开始
我们从简单的备份开始。
简单备份的语法如下:
backup database [adventureworks2019] to disk = n'c:\backups\adventureworks2019.bak' with noformat, noinit, name = n'adventureworks2019-full database backup', skip, norewind, nounload, stats = 10
go
t-sql命令在c盘和备份文件夹中备份名为“adventureworks2019”的数据库。该文件的名称是adventureworks2019。
有几种类型的备份。全量备份指的是所有数据的完整备份。备份完整状态和当前状态之间的差异的差异备份、文件组备份(仅备份特定文件组)、镜像备份(获取备份副本)。
要获取有关备份类型的更多信息,请参阅此链接。
通常,如果备份失败,将无法生成备份。通过点击ssms,ui中的"内容"按钮,可以查看文件内的所有可用备份:
点击内容后,可看到:备份类型、sql server、用户名、日期、lsn(日志序列号)等更多信息。
以下查询允许查看可用的备份:
select * from msdb.dbo.backupmediafamily
查询结果
以上查询结果可以获取媒体集id、系列id和物理设备名称。有关系统备份介质系列的详细信息,请参阅此链接。
如果要查看备份集,可以使用以下语句查询。
select * from msdb.dbo.backupset
该查询将提供备份集id、备份集id、媒体集id、第一个序列号以及与备份集相关的详细信息。
有关dbo.backupset的详细信息,请参阅此链接。
自动创建备份任务,可使用ssms,然后右键单击数据库并选择"备份"选项。
这是一个不错的选择,将操作脚本脚本化到任务中,然后自动创建任务。
如果要查看备份是否已成功执行,则需要检查任务历史记录。在sqlserver任务中,右键单击并选择"查看历史记录"选项。
日志文件查看器将显示备份中是否有故障,并且您将在备份过程中找到它是否已损坏。
当备份损坏时会有相应的报错日志,其中最常见的就是sqlserver错误823,此报错的详细信息如下:
此错误消息与导致i/o请求中出现的硬件或驱动程序中问题有关。
使用dbcc checkdb 命令时,可能会看到以上错误。当我们要检查数据库的逻辑和物理完整性时,dbcc checkdb命令相关的具体情况如下:
dbcc checkdb
该命令不一定显示错误消息。
所以我们可以检查事件查看器。事件查看器的显示来自windows(包括 sql server 等应用程序)的大量事件、错误信息。
事件查看器包含"windows日志"和"应用程序"部分,用于查看与sqlserver相关的错误。我们可以在这儿找到与损坏的文件相关的信息。
如果有多条消息,则可以选择过滤当前日志,帮助我们找到与问题相关的消息。
我们可以按记录的时间(过去 12 小时内的事件、过去一小时的事件、过去 24 小时的事件、任何时间等)、按级别(严重、错误、警告、信息和详细)进行筛选。还可以选择类别,关键字、用户和计算机。
通常,错误消息可能与以下内容类似:
驱动程序在事件日志中检测到磁盘源报告的\device\harddisk4\dr4上的控制器错误。
还可以检查以启用trace标志818,以获取与i/o错误相关的详细信息。启用跟踪标志818的命令如下:
dbcc traceon (818,-1);
有关trace标志的详细信息,请参阅以下相关链接。
最后,可以通过检查sql错误日志找到与损坏的sql备份文件相关的更多信息。也可以在ssms中看到sqlserver日志,即点击管理->sql服务器日志
错误日志方便我们查看和检查与sqlserver相关的错误。包括损坏的sqlserver备份文件。
还可以选择搜索和筛选特定的错误消息,以隔离系统中要查找的错误。
错误日志允许我们查看和检查与sql server相关的错误。包括损坏的 sql server 备份文件。
您可以选择搜索和筛选特定的错误消息,以隔离系统中要查找的错误。
要查看其他错误,请参阅以下链接:
若要验证备份是否正常工作,可以在测试服务器中测试备份。
我们建议创建一个要备份的作业,然后在测试环境中还原数据库,以确保备份工作正常。
另一种测试方法是使用verifyonly允许仅验证备份而不还原它。
restore verifyonly from disk = c:\backups\adventureworks2019.bak
go
3. 如果备份已损坏该怎么办
一种选择是在备份损坏时嚎啕大哭并寻找新工作。但是,另一个更聪明的选择是借助sql恢复软件。从这里可查看微软mvp grant fritchey的评论。
4. 结论
在本文中,我们验证了一些系统表,以检查和验证sqlserver 中的数据库备份。还学习了如何创建备份,如何自动执行备份,最后,我们看到了如何检查自动备份的状态。我们在备份过程中看到了可能出现的不同错误,以及在何处进行验证、如何验证。有多种方法可以检查错误,例如作业历史记录、事件查看器和sql错误日志。最后,如果备份已损坏,我们可以寻求另一种m6米乐安卓版下载的解决方案。