前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用于确定 SQL Server recovery何时完成的脚本

用于确定 SQL Server recovery何时完成的脚本

作者头像
IT大咖说
发布2022-09-22 15:10:17
1K0
发布2022-09-22 15:10:17
举报
文章被收录于专栏:IT大咖说IT大咖说

◆ 一、概述

无论是硬件故障、损坏、错误查询还是良性迁移,在BI/DBA 职业生涯中,您肯定会多次遇到数据库恢复问题。通常,很难为最终用户和主管准确估计数据库何时恢复运行。一般的 DBA 可能会觉得他们好像在盯着一个黑匣子,只是等待和刷新,直到数据库完成恢复。下面分享一个更简单的方法!

◆ 二、解决方案

您知道 SQL Server 的 ERRORLOG 实际上会计算自己的估计值吗?日志条目有时可能会让人不知所措且过于详细,因此我们将使用一个简单的 SQL 查询来生成易于阅读且令人惊讶的准确估计结果。

我们将从以下查询开始。请务必将数据库设置为“master”,并将第一行中的变量“@DBName”替换为您要调查的数据库。如果需要,您还可以修改此查询以包含更多的结果(例如“SELECT TOP 10”)。

代码语言:javascript
复制
DECLARE @DBName VARCHAR(64) = 'Warehouse'

DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))

INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery of database', @DBName

INSERT INTO @ErrorLog
EXEC master..sp_readerrorlog 0, 1, 'Recovery completed', @DBName

SELECT TOP 1
    @DBName AS [DBName]
   ,[LogDate]
   ,CASE
      WHEN SUBSTRING([TEXT],10,1) = 'c'
      THEN '100%'
      ELSE SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4)
      END AS PercentComplete
   ,CASE
      WHEN SUBSTRING([TEXT],10,1) = 'c'
      THEN 0
      ELSE CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0
      END AS MinutesRemaining
   ,CASE
      WHEN SUBSTRING([TEXT],10,1) = 'c'
      THEN 0
      ELSE CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0
      END AS HoursRemaining
   ,[TEXT]
FROM @ErrorLog ORDER BY CAST([LogDate] as datetime) DESC, [MinutesRemaining]

运行此查询后,您看到的结果集将与下面的类似:

此查询可以根据需要经常刷新,并将返回恢复中数据库的最新日志条目。

请注意,“MinutesRemaining”和“HoursRemaining”列代表不同度量中的相同估计值——它们不能相加。

来源:

https://www.toutiao.com/article/7143638164555530764/?log_from=cf07b462af127_1663640077698

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

来都来了,走啥走,留个言呗~

 IT大咖说  |  关于版权

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ◆ 一、概述
  • ◆ 二、解决方案
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档