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.pswp.cn/news/538699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538699.shtml
英文地址,請注明出處:http://en.pswp.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當前的計算機一般被認為是第四代計算機,它所采用…