MSSQL-最佳实践-如何监控备份还原进度


title: MSSQL · 最佳实践 · 如何监控备份还原进度

author: 风移

摘要

本期月报是SQL Server备份还原专题分享系列的第六期,打算分享给大家如何监控SQL Server备份还原进度。

场景引入

由于SQL Server备份还原操作是重I/O读写操作,尤其是当数据库或数据库备份文件比较大的到时候。那么,我们就有强烈的需求去监控备份还原的过程,时时刻刻把握备份还原的进度,以获取备份还原操作完成时间的心理预期以及对系统的影响。本期月报分享如何监控SQL Server备份还原进度。

监控备份还原进度

在SQL Server数据库中,监控数据库备份还原进度方法主要有以下三种:
利用SSMS的备份、还原进度百分比
利用T-SQL的stats关键字展示百分比
利用动态视图监控备份、还原完成百分比

利用SSMS

监控数据库备份进度

在SSMS中,右键点击你需要备份的数据库 => Tasks => Back Up...

01.png

在Destination中选择Disk => Add... => 选择备份文件本地存储路径 => OK
02.png

在该窗口的左下角部分,会有Process的进度展示,比如截图中的进度表示数据库已经备份完成了30%。
这种方法可以看到数据库备份进程进度的百分比,但是没有更多的详细信息。

监控数据库还原进度

监控数据库还原进度方法与上面的方法十分类似,只是入口不同。还原数据库入口:右键点击你需要还原的数据库 => Tasks => Restore => Database...
03.png

在Restore Database页面,选择Device => 点击右侧的预览按钮 => Add => 添加本地备份文件 => OK
04.png

在接下来的数据库还原页面中的最右上角部分,有数据库的还原进度条,以及还原百分比。比如,图中的数据库还原进度是50%,参见如下截图:
05.png

利用T-SQL

以上方法介绍使用SSMS来备份或者还原数据库进度监控查看方法。当然,有的人喜欢使用T-SQL脚本的方式来备份或者还原数据库。我们同样可以实现备份还原数据库的进度监控,方法是在语句中增加stats关键字,比如stats=10,那么系统在完成每个百分之十以后,都会在Messages中打印出** percent processed的字样。

BACKUP DATABASE [TestBackUpRestore]
TO DISK='C:\BACKUP1\TestBackUpRestore_FULL.bak' WITH STATS=10;

参见如下截图,在Messages窗口中,每个10%,都有** percent processed的进度提示。
06.png

注意:
还原数据库的方法相同,同样也是添加stats关键字。比如:

USE [master]
RESTORE DATABASE [TestBackUpRestore] FROM  DISK = N'C:\BACKUP1\TestBackUpRestore_FULL.bak' WITH  FILE = 4,  NOUNLOAD,  STATS = 10GO

利用DMV

有的人可能会遇到这样的情况:我在做数据库备份还原的时候,忘记添加stats关键字了,Messages窗口什么也没有提示。这种情况下,我该如何去监控我的备份或者还原数据库进度呢?
其实,这种情况也无需紧张,我们同样有办法来监控数据库备份还原的进度,方法是使用动态管理视图sys.dm_exec_requests配合一些关键信息字段来监控进度。方法如下:

USE master
GOSELECT req.session_id, database_name = db_name(req.database_id),req.status,req.blocking_session_id, req.command,[sql_text] = Substring(txt.TEXT, (req.statement_start_offset / 2) + 1, ((CASE req.statement_end_offsetWHEN - 1 THEN Datalength(txt.TEXT)ELSE req.statement_end_offsetEND - req.statement_start_offset) / 2) + 1),req.percent_complete,req.start_time,cpu_time_sec = req.cpu_time / 1000,granted_query_memory_mb = CONVERT(NUMERIC(8, 2), req.granted_query_memory / 128.),req.reads,req.logical_reads,req.writes,eta_completion_time = DATEADD(ms, req.[estimated_completion_time], GETDATE()),elapsed_min = CONVERT(NUMERIC(6, 2), req.[total_elapsed_time] / 1000.0 / 60.0),remaning_eta_min = CONVERT(NUMERIC(6, 2), req.[estimated_completion_time] / 1000.0 / 60.0),eta_hours = CONVERT(NUMERIC(6, 2), req.[estimated_completion_time] / 1000.0 / 60.0/ 60.0),wait_type,wait_time_sec = wait_time/1000, wait_resource
FROM sys.dm_exec_requests as req WITH(NOLOCK)CROSS APPLY sys.dm_exec_sql_text(req.sql_handle) as txt 
WHERE req.session_id>50AND command IN ('BACKUP DATABASE', 'BACKUP LOG', 'RESTORE DATABASE', 'RESTORE LOG')

由于结果集宽度过宽,人为分割为两个部分来展示查询结果集:
07.png

08.png

这个结果中有非常多重要的字段信息,比如:
Command: 表示命令种类,此处表示备份数据库命令
sql_text: 语句详细信息,此处展示了完整的T-SQL语句
percent_complete: 进度完成百分比,此处已经完成了59.67%
start_time:进程开始执行时间
eta_completion_time:进程预计结束时间
等等。这种方法除了可以监控数据库备份还原进度外,还可以获取更多的进程信息,是比较推荐的方法。
提示:
这种方法不仅仅是可以用来监控你的备份还原进程,任何其他的用户进程都可以使用类似的方法来监控,你只需要把WHERE语句稍作修改即可。比如:想要监控某一个进程的进度情况,你只需要把WHERE语句修改为WHERE req.session_id=xxx即可。

获取备份历史信息

以上章节是介绍如何监控SQL Server备份还原进程的进度,我们有时也会遇到如下场景是:我们需要如何去探索或者发现某个数据库的备份历史记录信息?参见如下代码可以获取到数据库TestBackUpRestore的历史备份记录信息。

use msdb
GO
DECLARE@database_name sysname
;SELECT@database_name = N'TestBackUpRestore'
;SELECTbs.server_name,bs.user_name,database_name = bs.database_name,start_time = bs.backup_start_date,finish_tiem = bs.backup_finish_date,time_cost_sec = DATEDIFF(SECOND, bs.backup_start_date, bs.backup_finish_date),back_file = bmf.physical_device_name,backup_type = CASE WHEN bs.[type] = 'D' THEN 'Full Backup' WHEN bs.[type] = 'I' THEN 'Differential Database' WHEN bs.[type] = 'L' THEN 'Log' WHEN bs.[type] = 'F' THEN 'File/Filegroup' WHEN bs.[type] = 'G' THEN 'Differential File'WHEN bs.[type] = 'P' THEN 'Partial'  WHEN bs.[type] = 'Q' THEN 'Differential partial' END,backup_size_mb = ROUND(((bs.backup_size/1024)/1024),2),compressed_size_mb = ROUND(((bs.compressed_backup_size/1024)/1024),2),bs.first_lsn,bs.last_lsn,bs.checkpoint_lsn,bs.database_backup_lsn,bs.software_major_version,bs.software_minor_version,bs.software_build_version,bs.recovery_model,bs.collation_name,bs.database_version
FROM msdb.dbo.backupmediafamily bmf WITH(NOLOCK)INNER JOIN msdb.dbo.backupset bs WITH(NOLOCK)ON bmf.media_set_id = bs.media_set_id
WHERE bs.database_name = @database_name
ORDER BY bs.backup_start_date DESC

截图如下:
09.png

这里需要特别注意:
如果你删除数据库时,使用了msdb.dbo.sp_delete_database_backuphistory存储过程清空数据库的备份历史,将无法再获取到该数据库的备份历史。比如:

EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'TestBackUpRestore'
GO

最后总结

继前面五篇SQL Server备份还原专题系列月报分享后,我们完成了:三种常见的数据库备份、备份策略的制定、查找备份链、数据库的三种恢复模式与备份之间的关系、利用文件组实现冷热数据隔离备份方案以及本期月报分享的如何监控备份还原进度总共六篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抢车位app下载_太方便了!有了这个APP,找车位再也不用“兜圈子”了

对于不少有车一族来说,决定出门是否开车的重要因素之一,那就是目的地是不是好停车,因为找车位可真是一件很头疼的事,不过未来,满街找停车位的尴尬情况将会越来越少,近日,镇江智慧停车平台正式上…

bmp文件头_图像算法原理与实践——图像文件存储

图像数据在计算机储器设备中的存储形式是图像文件,图像必须按照某个公开的、规范约终结定的数据存储顺序和结构进行保存,才能使不同的程序对图像文件顺利进行打开或存盘操作,实现数据共享。图像数据在文件中的存储顺序和结构称为图像文件格式…

一共81个,开源大数据处理工具汇总

查询引擎 一、Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询。Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。 Phoen…

html5怎么删除样式,css怎么删除一个样式

css删除一个样式的方法:首先创建一个HTML示例文件;然后给div添加css样式;最后通过“removeClass()”方法从被选元素删除一个或多个类即可。本教程操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。CSS添加样式、删除样…

python语言中内置的字符串排版方法_Python14之字符串(各种奇葩的内置方法)

一、字符串的分片操作其分片操作和列表和元组一样1 str1 keshengtao2 str1[2:6]3 shen4 str1[:]5 keshengtao6 str1[:4]7 keshView Code二、访问字符串中的字符注:字符串中的单个字符,同样也是字符串1 str1 keshengtao2 str1[3]3 hView Code三、字符串…

sqlserver 字符串转化数值函数_Excel常见函数用法(TEXT函数)

基本语句:=TEXT(数值,文本格式) 用法说明:TEXT函数可通过格式代码对数字应用格式,进而更改数字的显示方式。其中,参数①是我们想要改变格式的数值,它可以是文本,也可以是数字;而参数②就是我们想要参数①最终变成的格式,它的作用原理和自定义数字格式一致,基本用法共…

laravel 的 表单请求

在对文章、帖子等信息进行创建、更新的时候,需要进行表单验证的时候,一般我们使用Request来获取输入的值来进行验证,这样需要在每一个方法中进行书写验证规则。 laravel 提供了创建表单请求,我们可以使用 artisan 来创建一个表单请…

Flume概述

官网 http://flume.apache.org/ 介绍 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。一般的采集需…

日常计算机操作知识试题,关于2017计算机一级考试试题操作题

关于2017计算机一级考试试题操作题在日常学习和工作中,我们很多时候都不得不用到试题,试题可以帮助参考者清楚地认识自己的知识掌握程度。那么一般好的试题都具备什么特点呢?下面是小编为大家整理的关于2017计算机一级考试试题操作题&#xf…

概率分布分位点_概率分布的分位数三.PPT

概率分布的分位数三5.2 常用统计分布 一、常见分布 t 分布具有下列性质: 性质5.6 设 , 则当 时有 性质5.7 设 , 是T的分布密度, 则 此性质说明,当 时,T分布的极限 分布是标准正态分布。 这说明F分布极限分布也是正态分…

mastercam加工报表生成_听说最厉害的工程师才敢这样玩五轴加工?

今天让我们一起来看看五轴有些什么接地气的玩法:侧刃加工(此图非动图)相较使用刀具底刃加工,利用刀具侧刃加工可以得到更加光滑的加工表面。适用于航空航天工业中复杂型腔工件的精加工。Mastercam提供专用功能可有效防止刀具和零件型腔底部出现过切&…

Flume安装(单节点)

Flume单节点的安装非常简单。 1、下载 2、解压 3、配置环境变量FLUME_HOME 4、flume-env.sh配置JAVA_HOME 具体步骤 下载 http://flume.apache.org/download.html 解压 tar -zxvf apache-flume-1.7.0-bin.tar.gz 配置FLUME_HOME root 用户或者 su root vi /etc/pro…

电子科技大学2019年计算机复试分数线,2019考研电子科技大学复试分数线已公布...

2019考研电子科技大学复试分数线已公布!相信接下来很多2019考研考生都会关注34所考研复试分数线及考研国家线相关信息。中公考研小编整理了“2019考研电子科技大学复试分数线已公布”文章,希望能对2019考研考生有帮助~根据教育部有关文件精神&#xff0c…

量子计算时代来临?D-Wave 量子计算机使运算速度提高 1 亿倍!

查尔斯巴贝奇(Charles Babbage)于 19 世纪 30 年代提出了一款难以实现的概念性分析引擎,自那时以来,计算机科学一直为了保持领先于时代的地位而奋力前行。在过去 75 年内,许多惊人的创举接连出现:可编程电子…

python编的游戏越玩越卡_用Python写游戏,不到十分钟就学会了

安装pygame本人电脑是windows 10、python3.6,pygame下载地址:pypi.python.org/pypi/Pygame…请自行下载对应python版本的pygame运行以下命令创建Pygame窗口及响应用户输入新建一个文件夹alien_invasion,并在文件夹中新建alien_invasion.py文件…

Map Reduce和流处理

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~本文由从流域到海域翻译,发表于腾讯云社区map()和reduce()是在集群式设备上用来做大规模数据处理的方法,用户定义一个特定的映射,函数将使用该映射对一系列键值对进行处理…

Flume实战监听网络端口

具体的配置解释见官网 http://flume.apache.org/FlumeUserGuide.html#flume-sources 1、flume安装目录下新建文件夹 example 2、在example下新建文件 netcat-logger.conf内容如下:#name the components on this agent a1.sources r1 a1.sinks k1 a1.channels…

滑动关机代码bat_BAT面试算法进阶--(2) 无重复字符的最长子串(滑动法优化+ASCII码法)...

一.算法题题目Given a string, find the length of the longest substring without repeating characters.ExampleGiven "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with the length…

jpa findone怎么用_Jpa VS MyBatis,你用哪个?

经常看到有小伙伴在讨论 JPA 和 MyBatis 这两个孰优孰劣的问题,其实松哥觉得这是一个伪命题,没必要为这种问题争个面红耳赤,每种框架有它存在的道理,也有各自擅长的事情,今天松哥就和大家来聊聊这两个框架,…

国家开放大学本科计算机应用基础,【(精华版)最新国家开放大学电大本科《计算机应用基础》网络课网考形考作业一及三试题答案】.docx...

【(精华版)最新国家开放大学电大本科《计算机应用基础》网络课网考形考作业一及三试题答案】(精华版)最新国家开放大学电大本科《计算机应用基础》网络课网考形考作业一及三试题答案 盗传必究 形考作业一 一、单选题 1当前的计算机一般被认为是第四代计算机,它所采用…