大事务导致数据库恢复时间长

news2024/11/23 6:36:24

背景

客户的一套系统从凌晨开始出现运行缓慢,重启SQL Server服务后一个主要的数据库一直处在正在恢复的状态,多次重启SQL Server服务和服务器无果后请我们协助处理。

现象

在SSMS中看到数据库是正在恢复的状态,而且不能被访问。

分析

启动SQL Server服务时数据库恢复要经过分析、重做和撤销3个阶段,在阶段2完成后数据库才能提供访问。如果某个阶段运行时间长,在日志里面会记录进度。

查找日志,发现从8:31:45开始阶段1,8:34:30开始阶段2,从进度上看现在已经完成了28%。确保磁盘空间充足后,剩下的工作就是查看进度,等待完成。

9:10:52,看到进度为99%的日志。9:11:11,阶段2完成。在完成阶段2后,数据库就可以访问了。

直到15:21:14时才看到阶段3完成的日志,三个阶段共花费7个小时的时间。

通过日志记录看到阶段3的时间非常长,说明在停止SQL Server服务时有特别大的事务在运行。通过SQL专家云,在活动会话中找到会话157,从0:36:38时开始执行一个INSERT语句,到4:14:01停止SQL Server服务时还没有执行完,期间造成了大量的阻塞,日志文件从几个G增长到100G。

再来分析为什么恢复数据库要这么长时间,根据数据库恢复的流程,忽略掉阶段1的时间,阶段2和阶段3都是要从最早的未提交事务的时间点开始分析事务日志,也就是要从0:36:38开始,要分析处理100G的日志。

总结
 

大的INSERT事务(分析后得知因为条件写错了,要插入6000万条数据)执行期间造成了大量的阻塞,影响了系统的其它功能,客户接到故障报警后没有仔细分析原因就直接重启了SQL Server服务。重启后数据库的恢复时间非常长,由于客户不熟悉原理,每次启动服务后等待十几分钟看数据库状态不对便再次重启,如此反复多次,耽误了很长的时间。

SQL Server作为一个成熟的数据库,在每个步骤都会记录下详细的日志,我们要养成看日志分析问题的习惯。另外,从SQL Server 2016开始,增加了数据库恢复进度的扩展事件,可以分析的更详细。具体参考“https://learn.microsoft.com/zh-cn/archive/blogs/sql_server_team/new-extended-events-for-database-recovery-progress”。

大事务导致日志文件增大,磁盘空间撑爆,事务回滚时间长,SQL Server服务异常终止等问题,要尽量避免大事务。

大事务导致的回滚时间长或者异常终止后重启SQL Server服务时数据库恢复时间长是一个非常困扰的问题。在SQL Server 2019新推出的“加速数据库恢复”功能就是解决这个痛点的,但是不成熟,开启这个功能又导致了数据文件增长过大等其它的问题,在SQL Server 2022版本中进行了改进。详细资料参考“https://learn.microsoft.com/zh-cn/sql/relational-databases/accelerated-database-recovery-concepts?view=sql-server-ver16”

北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

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

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

相关文章

全球医疗产品畅销:跨境电商的生命科技

随着数字化时代的到来,跨境电商不仅仅是商业领域的一种革命性力量,更是生命科技行业的重要推动者。这一融合带来了全球医疗产品畅销的新时代,为世界各地的消费者带来了前所未有的便利和机会。本文将深入探讨这一跨境电商的生命科技领域&#…

C# 高级 <一>

一、 特性(Attribute) .NET 框架提供了三种预定义特性: AttributeUsageConditionalObsolete a. AttributeUsage 它描述了如何使用一个自定义特性类。它规定了特性可应用项目的类型。语法如下: [AttributeUsage(validon,AllowM…

万圣节倒计时:如何在TikTok上推动商品广告

万圣节是一个商机充足的季节,对于广告商和品牌来说,这是一个绝佳的机会。TikTok,作为一款全球短视频应用,提供了一个独特的平台,可以将商品广告巧妙地与万圣节元素结合,吸引年轻受众的注意力。本文将深入探…

想要完美录屏?这几款录屏大师,不容错过

在数字媒体和游戏产业的不断崛起下,屏幕录制技术变得越来越重要。无论是捕捉游戏精彩瞬间、创作教程视频,还是与朋友分享有趣时刻,录屏工具成为了当今数字生活不可或缺的一部分。本文将介绍三款好用的录屏大师,无论您是一位游戏爱…

Gartner:2024年优秀战略技术趋势

到2024年,人工智能将在企业中占据主导地位,而云服务、安全性和可持续性的影响力也将上升。 到2024年,人工智能将在企业中占据主导地位,而云服务、安全性和可持续性的影响力也将上升。 Gartner表示,人工智能和智能应用…

Ubuntu20.04下安装MySQL8环境

Ubuntu20.04下安装MySQL8环境 1.下载MySQL客户端和服务器2.配置MySQL3.测试MySQL4.设置MySQL服务开机自启动5.修改root密码MySQL数据库基本使用启动MySQL数据库服务重启MySQL数据库服务停止MySQL数据库服务查看MySQL运行状态设置MySQL服务开机自启动停止MySQL服务开机自启动MyS…

Unity的galgame形式对话系统工具

这段代码用于读取表格 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using OfficeOpenXml; using System.IO; using UnityEngine.Networking; using UnityEngine.UI; using Random UnityEngine.Random;public class Plots…

[计算机提升] 命令、批处理介绍

1.12 命令、批处理 1.12.1 命令 在Windows系统中,命令通常指的是命令行指令(或称为命令行命令),也就是通过命令提示符(Command Prompt)或者PowerShell运行的特定命令。这些命令可以让用户与操作系统进行交…

敏捷or瀑布: Salesforce项目应该选哪一个?

在项目管理方法和框架不断扩展的世界中,敏捷和瀑布是两种最著名的项目管理方法。它们在Salesforce实施中都很流行,但各自适合不同类型的项目。 选择正确的方法将直接影响到项目的预算、日程安排和有效执行,对Salesforce项目的成功至关重要。…

windows如何查看电脑IP地址

介绍两种查看电脑IP的方式 一、第一种方式 1、在电脑左下角搜索网络连接 2、鼠标右键你目前连接的网络(wifi就点wifi 网线就点以太网);选择里面的状态。 3、点击详细信息,这里的IPv4地址就是你电脑的IP。 二、第二种 1、win…

LCR 146. 螺旋遍历二维数组

LCR 146. 螺旋遍历二维数组 原题链接:完成情况:解题思路:参考代码: 原题链接: LCR 146. 螺旋遍历二维数组 https://leetcode.cn/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/description/ 完成情况: 解…

记一次企业微信的(CorpID)和密钥(Secret)泄漏的利用案例

文章目录 一、介绍二、利用过程1、获取AccessToken2、获取企业微信接口IP段3、获取企业微信回调IP段4、通过部门ID,查看返回的ID5、通过部门ID,查看用户列表6、通过便利ID,发现用户信息泄露,可以进行提交报告7、通过添加接口,添加企业账号8、登陆企业账号进行测试三、参考…

2023年中国医疗器械供应链服务平台发展趋势分析:向国家高端化市场发力[图]

医疗器械供应链服务主要分为全流程供应链服务与院内SPD服务,同时全流程供应链服务主要分为市场、仓储物流与金融三大服务。在SPD数字化赋能下,大数据、云计算等技术支撑促进一站式数字化供应链业务协同平台,带动了整体医疗器械供应链服务的发…

某全球领先的晶圆代工企业:替代FTP实现大规模文件的高效传输

全球领先的集成电路晶圆代工企业之一 该企业不仅是全球领先的集成电路晶圆代工企业之一,也是中国内地技术最先进、配套最完善、规模最大、跨国经营的集成电路制造企业集团。主要业务是根据客户本身或第三者的集成电路设计,为客户制造集成电路芯片&#…

【Amazon】跨AWS账号级别迁移弹性IP地址操作流程

文章目录 一、实验背景二、适用场景三、实验目标四、实验说明五、实验步骤1. 登录AWS控制台[源账户]2. 启用弹性 IP 地址转移[源账户]3. 接受转移的弹性 IP 地址[目标账户]4. <可选>禁止转移弹性IP地址[源账户] 六、结果验证七、注意事项八、附录1. 多弹性IP地址多AWS账号…

SpringCloud Alibaba【二】nacos

nacos配置与使用 nacos初步使用nacos安装与配置创建命名空间 nacos使用与配置创建新项目作为父项目 创建nacos服务端项目pom.xmlapplication.yml启动类 创建nacos客户端项目pom.xml application.yml启动类 启动测试 nacos配置负载均衡改造生产者nacos-provider-projectcontroll…

uniapp vue国际化 i18n

一、安装 vue-i18n npm i vue-i18n 二、新建i18n目录 1、en.json 内容 {"loginPage":{"namePh":"Please enter your login account","passwordPh":"Please enter password"} } 2、zh-CN.json 内容 {"loginPage&qu…

设置Ubuntu 20.04的静态IP地址(wifi模式下)

一、引言 自己家用的Ubuntu的&#xff0c;重启后ip地址经常会改变&#xff0c;这个时候就需要我们手动配置静态IP了。 二、优点 给Ubuntu设置一个静态IP地址有以下几个好处&#xff1a; 持久性&#xff1a;静态IP地址是固定不变的&#xff0c;与设备的MAC地址绑定。这意味着…

Linux shell编程学习笔记16:bash中的关联数组

上一节我们探讨了普通的数组&#xff0c;即使用数字下标来索引数组中不同的元素的数组&#xff0c;也可以称之为索引数组。 相比纯粹的数字&#xff0c;字符串不仅能表明含义&#xff0c;也更便于记忆使用&#xff0c;于是就有了关联数组。 一、关联数组概述 bash 从4.0开始支…

计算机网络相关硬件介绍

计算机相关硬件 计算机由运算器、控制器、存储器、输入设备和输出设备等五个逻辑计算机硬件部件组成。 一、中央处理器&#xff08;CPU&#xff09;&#xff08;运算器、控制器&#xff09; &#xff08;1&#xff09;运算器 运算器是对数据进行加工处理的部件&#xff…