暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【译】如何在SQL Server中自动创建备份任务

原创 沐言倾心 2022-03-18
1747

原文地址:https://dzone.com/articles/how-to-create-backup-job-automatically-in-sql-serv
原文作者: 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。

有几种类型的备份。全量备份指的是所有数据的完整备份。备份完整状态和当前状态之间的差异的差异备份、文件组备份(仅备份特定文件组)、镜像备份(获取备份副本)。

要获取有关备份类型的更多信息,请参阅此链接SQLServer备份概览

通常,如果备份失败,将无法生成备份。通过点击SSMS,UI中的"内容"按钮,可以查看文件内的所有可用备份:
11.png
点击内容后,可看到:备份类型、SQL Server、用户名、日期、LSN(日志序列号)等更多信息。
2.png
以下查询允许查看可用的备份:

select * from msdb.dbo.backupmediafamily

查询结果
3.png

以上查询结果可以获取媒体集ID、系列ID和物理设备名称。有关系统备份介质系列的详细信息,请参阅此链接备份媒体集(T-SQL)

如果要查看备份集,可以使用以下语句查询。

select * from msdb.dbo.backupset

该查询将提供备份集ID、备份集ID、媒体集ID、第一个序列号以及与备份集相关的详细信息。
4.png

有关dbo.backupset的详细信息,请参阅此链接备份集(T-SQL)

自动创建备份任务,可使用SSMS,然后右键单击数据库并选择"备份"选项。
5.png
这是一个不错的选择,将操作脚本脚本化到任务中,然后自动创建任务。
123.png
如果要查看备份是否已成功执行,则需要检查任务历史记录。在SQLServer任务中,右键单击并选择"查看历史记录"选项。
viewhistroy.png
日志文件查看器将显示备份中是否有故障,并且您将在备份过程中找到它是否已损坏。
logfileviewer.png
当备份损坏时会有相应的报错日志,其中最常见的就是SQLServer错误823,此报错的详细信息如下:
微信截图_20220318100053.png
此错误消息与导致I/O请求中出现的硬件或驱动程序中问题有关。

使用DBCC CHECKDB 命令时,可能会看到以上错误。当我们要检查数据库的逻辑和物理完整性时,DBCC CHECKDB命令相关的具体情况如下:

DBCC CHECKDB

该命令不一定显示错误消息。
所以我们可以检查事件查看器。事件查看器的显示来自Windows(包括 SQL Server 等应用程序)的大量事件、错误信息。
eventviewer.png
事件查看器包含"Windows日志"和"应用程序"部分,用于查看与SQLServer相关的错误。我们可以在这儿找到与损坏的文件相关的信息。
eventviewer2.png
如果有多条消息,则可以选择过滤当前日志,帮助我们找到与问题相关的消息。
filtercurrentlog.png
我们可以按记录的时间(过去 12 小时内的事件、过去一小时的事件、过去 24 小时的事件、任何时间等)、按级别(严重、错误、警告、信息和详细)进行筛选。还可以选择类别,关键字、用户和计算机。
1212.png
通常,错误消息可能与以下内容类似:

驱动程序在事件日志中检测到磁盘源报告的\Device\Harddisk4\DR4上的控制器错误。
还可以检查以启用Trace标志818,以获取与I/O错误相关的详细信息。启用跟踪标志818的命令如下:

DBCC TRACEON (818,-1);

有关TRACE标志的详细信息,请参阅以下相关链接。
DBCC TRACEON - Trace Flags (Transact-SQL)

最后,可以通过检查SQL错误日志找到与损坏的SQL备份文件相关的更多信息。也可以在SSMS中看到SQLServer日志,即点击管理->SQL服务器日志
111.png
错误日志方便我们查看和检查与SQLServer相关的错误。包括损坏的SQLServer备份文件。
还可以选择搜索和筛选特定的错误消息,以隔离系统中要查找的错误。
321.png
错误日志允许我们查看和检查与SQL Server相关的错误。包括损坏的 SQL Server 备份文件。

您可以选择搜索和筛选特定的错误消息,以隔离系统中要查找的错误。

要查看其他错误,请参阅以下链接:
常见 SQL 数据库损坏错误、原因和解决方法
若要验证备份是否正常工作,可以在测试服务器中测试备份。
我们建议创建一个要备份的作业,然后在测试环境中还原数据库,以确保备份工作正常。
另一种测试方法是使用VERIFYONLY允许仅验证备份而不还原它。

RESTORE VERIFYONLY FROM DISK = C:\backups\AdventureWorks2019.bak
GO

3. 如果备份已损坏该怎么办

一种选择是在备份损坏时嚎啕大哭并寻找新工作。但是,另一个更聪明的选择是借助SQL恢复软件。从这里SQL SERVER的恒星修复可查看微软MVP Grant Fritchey的评论。

4. 结论

在本文中,我们验证了一些系统表,以检查和验证SQLServer 中的数据库备份。还学习了如何创建备份,如何自动执行备份,最后,我们看到了如何检查自动备份的状态。我们在备份过程中看到了可能出现的不同错误,以及在何处进行验证、如何验证。有多种方法可以检查错误,例如作业历史记录、事件查看器和SQL错误日志。最后,如果备份已损坏,我们可以寻求另一种解决方案。

最后修改时间:2022-03-18 16:10:00
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论