日志写入异常,数据库“Rms”的事务日志已满,原因为“LOG_BACKUP”(三)

当遇到“数据库‘dhtrms’的事务日志已满,原因为‘LOG_BACKUP’”错误时,这意味着事务日志已达到最大大小,并且需要备份才能释放空间。这通常发生在使用完整恢复模式的数据库中,因为日志不会自动截断。以下是解决此问题的步骤:

1. 立即备份事务日志

首先,你需要立即备份事务日志,以释放空间。

BACKUP LOG dhtrms TO DISK = 'C:\Backup\dhtrms_LogBackup.trn';

2. 检查和调整日志文件大小

如果日志文件已满,可以考虑增加日志文件大小以处理当前的工作负载。

ALTER DATABASE dhtrms MODIFY FILE (NAME = 'LogicalLogFileName', SIZE = NewSizeMB);

你可以使用以下查询找到日志文件的逻辑名称和当前大小

USE dhtrms;
GO
SELECT name, size * 8 / 1024 AS size_MB FROM sys.master_files WHERE type_desc = 'LOG' AND database_id = DB_ID('dhtrms');

3. 配置定期的事务日志备份计划

为了避免将来再次出现这种情况,需要配置定期的事务日志备份。例如,可以使用 SQL Server 代理作业或维护计划来执行定期备份。

-- 创建一个简单的SQL Server代理作业来备份事务日志
USE msdb;
GOEXEC sp_add_job@job_name = N'Backup Transaction Log for dhtrms';EXEC sp_add_jobstep@job_name = N'Backup Transaction Log for dhtrms',@step_name = N'Backup Log Step',@subsystem = N'TSQL',@command = N'BACKUP LOG dhtrms TO DISK = ''C:\Backup\dhtrms_LogBackup.trn''',@retry_attempts = 5,@retry_interval = 5;EXEC sp_add_schedule@job_name = N'Backup Transaction Log for dhtrms',@name = N'Backup Log Schedule',@freq_type = 4, -- daily@freq_interval = 1, -- every day@active_start_time = 233000; -- 23:30:00EXEC sp_attach_schedule@job_name = N'Backup Transaction Log for dhtrms',@schedule_name = N'Backup Log Schedule';EXEC sp_start_job@job_name = N'Backup Transaction Log for dhtrms';

4. 收缩日志文件(仅在必要时)

在备份事务日志后,如果仍然需要立即释放磁盘空间,你可以手动收缩日志文件。但请注意,不应频繁进行收缩操作,因为这可能会导致性能问题。

DBCC SHRINKFILE (N'LogicalLogFileName', 0);--------------------------------------DBCC SHRINKFILE (N'LogicalLogFileName', 0);这个命令使用了逻辑日志文件的名称来指定要收缩的文件。你需要将LogicalLogFileName替换为实际的逻辑日志文件名。这种方式更为明确,因为你直接指定了要收缩的文件的逻辑名称。USE dhtrms 
GO 
DBCC SHRINKFILE (2) 
GO这个命令使用了文件的 ID 来指定要收缩的文件。在这种情况下,2表示第二个文件,因为在 SQL Server 中,数据文件通常是第一个文件,日志文件是第二个文件。这种方式更加简洁,特别是当你只有一个日志文件时。两种方式都可以用来收缩日志文件,具体使用哪种取决于你的偏好以及数据库文件的数量和配置。

5. 检查长时间运行的事务

有时长时间运行的事务会阻止事务日志被截断。检查并优化这些事务。

USE dhtrms;
GOSELECT s.host_name,s.program_name,s.login_name,t.transaction_id,t.transaction_begin_time,t.transaction_state,t.transaction_status,t.transaction_name
FROM sys.dm_tran_active_transactions t
JOIN sys.dm_exec_sessions s ON t.transaction_id = s.session_id
WHERE t.transaction_state = 2 -- 2代表正在进行的事务
ORDER BY t.transaction_begin_time;

6. 更改数据库恢复模式(如果合适)

如果你的需求不要求使用完整恢复模式,你可以考虑更改为简单恢复模式。这将使事务日志在每次检查点后自动截断,但你将无法进行点时间恢复。

ALTER DATABASE dhtrms SET RECOVERY SIMPLE;

之后再次设置为完整恢复模式以继续正常运行:

ALTER DATABASE dhtrms SET RECOVERY FULL;
-- 并且立即备份一次完整数据库
BACKUP DATABASE dhtrms TO DISK = 'C:\Backup\dhtrms_FullBackup.bak';

通过以上步骤,你应该能够解决事务日志已满的问题,并建立一个防止再次发生的长期解决方案。

 

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

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

相关文章

CVE-2023-37569(未授权任意文件上传+弱口令爆破)

靶场简介 Online Piggery Management System v1.0 - 存在未授权的文件上传漏洞,登陆界面弱口令爆破 进入靶场 猜测弱口令admin/admin,错误,进行账号密码爆破 得到账号密码 admin/password 登陆进入,找到一处文件上传位置 上传…

【学习总结】SpringBoot中使用单例模式+ScheduledExecutorService实现异步多线程任务(若依源码学习)

最近在学习若依这个开源项目,发现他记录登录日志的时候使用了异步线程去记录日志,觉得这个方案也挺不错的,在此学习记录下来,以后在工作中也能提供一种思路,其他小伙伴如果有觉得不错的方案也可以在评论区里留言&#…

WordPress 开发知识

以下是一篇详细的 WordPress 入门到精通指南,旨在帮助新手从零开始,逐步理解和掌握 WordPress 的使用和开发。 目录 简介初步设置 购买域名和托管安装 WordPress基本操作 登录和仪表盘简介创建和管理内容主题和外观 选择和安装主题自定义主题插件 安装…

千问Qwen7B chat:本地部署及网页端使用

基于前面的安装经验,千问大模型的本地部署并不算难,主要时间用在大模型文件的下载上。同时系统运行对硬件也有较高的要求,本机的硬件配置为N卡3060,显存12G。 使用conda创建虚拟环境,主要版本如下: Pyth…

Web前端简历模板:深度解析与实用指南

Web前端简历模板:深度解析与实用指南 在竞争激烈的求职市场中,一份精心设计的Web前端简历模板,无疑能够让你在众多求职者中脱颖而出。本文将从四个方面、五个方面、六个方面和七个方面,为你深入解析如何构建一份优秀的Web前端简历…

mysql数据聚合实例

假设我们有如下的 sales 表数据: idproductsales_amountsales_date1Product A10002023-01-012Product A12002023-01-153Product A8002023-02-014Product B15002023-01-055Product B18002023-02-106Product B20002023-03-017Product C9002023-01-208Product C11002023-02-159Pr…

生成式人工智能 - stable diffusion web-ui安装教程

一、Stable Diffusion WEB UI 屌丝劲发作了,所以本地调试了Stable Diffusion之后,就去看了一下Stable Diffusion WEB UI,网络上各种打包套件什么的好像很火。国内的也就这个层次了,老外搞创新,国内跟着屁股后面搞搞应用层,就叫大神了。 不扯闲篇了,我们这里从git源码直接…

Vue18-列表渲染

一、v-for渲染列表 1-1、遍历数组&#xff08;用的多&#xff09; 1-2、key属性 让每一个<li>都有一个唯一的标识&#xff01; 1、写法一 只有用了遍历的方式(v-for)来生成多个同样结构的数据&#xff0c;必须给每个结构取一个唯一的标识。 2、写法二 或者&#xff1a;…

【全开源】生产管理系统源码(FastAdmin+ThinkPHP+Layui+uniapp)

&#x1f525;揭秘高效生产管理系统&#xff0c;让你的企业腾飞&#xff01;&#x1f680; 一款基于FastAdminThinkPHPLayuiuniapp开发的生产管理系统&#xff0c;帮助企业数字化转型&#xff0c;打造智能工厂&#xff0c;专业为生产企业量身开发的一套完整的生产管理系统。主…

【乐吾乐2D可视化组态编辑器】管道绘制,水流动画

用乐吾乐2D可视化连线丰富的外观和动画效果&#xff0c;快速绘制各种风格的管道和水流动画。 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.com/ 方式一&#xff1a;线条渐变 特点&#xff1a;呈现管道的金属光泽和管道剖面 外观&#xff1a;线条渐变--线性渐…

Jenkins 和 GitLab CI/CD比较

近十年来&#xff0c;持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09;和持续交付&#xff08;Continuous Delivery&#xff0c;CD&#xff09;领域都取得了很大的进步。DevOps 测试的兴起导致了对 CI/CD 工具的快速需求。现有的解决方案总是随着时间的推…

LlamaIndex 四 数据连接器

前言 我们通过各项配置&#xff0c;理解了LlamaIndex在构建知识库和基于知识库的推荐两个阶段&#xff0c;怎么和业务相结合。本文&#xff0c;我们将开始深入理解LlamaIndex的各个模块。首先&#xff0c;LlamaIndex强大的Data Connector 数据连接器上场。 LlamaIndex擅长和各…

聆思CSK6大模型开发板英语评测类开源SDK详解

离线英文评测算法SDK 能力简介 CSK6 大模型开发套件可以对用户通过语音输入的英文单词进行精准识别&#xff0c;并对单词的发音、错读、漏读、多读等方面进行评估&#xff0c;进行音素级的识别&#xff0c;根据用户的发音给出相应的建议和纠正&#xff0c;帮助用户更好地掌握单…

C语言中,定义宏求两个数的最大值\最小值

前言 之前笔试过程中&#xff0c;我自认为使用宏来求得最值这方面已经了解的足够清楚。我一直是使用下面两个宏来做题的。直到我最近闲暇下来&#xff0c;阅读了《嵌入式C语言自我修养》这本书&#xff0c;才发现自己很多情形没有考虑到位。 #define MIN(a,b) ((a)<(b)?(a…

银川岗位外包找邦芒 一站式企业外包解决方案

在当今日益多变和竞争激烈的市场环境中&#xff0c;岗位外包作为一种高效、灵活的用工方式&#xff0c;已逐渐成为企业应对业务波动、降低风险成本的首选策略。银川邦芒人力凭借其丰富的经验和专业的服务&#xff0c;为企业提供了卓越的岗位外包解决方案。 为何选择岗位外包&am…

正大国际期货:如何做恒指期货

要想获得较好的收益&#xff0c;就必须要知道恒指做单的技巧&#xff0c;毕竟掌握了技巧才是最重要的。 第一、下单之前一定看准行情并且顺势操作。何为顺势&#xff1f;就是我们平时说的趋势&#xff0c;只要趋势做对了&#xff0c;在中途可能会有一些起伏&#xff0c;但是最后…

中间件复习之-分布式存储系统

单机存储系统介绍 存储引擎&#xff1a;存储系统的发动机&#xff0c;提供数据的增、删、改、查能力&#xff0c;直接决定存储系统的功能&#xff08;支持怎么样的查询&#xff0c;锁能锁到什么程度&#xff09;和性能&#xff08;增删改查速度&#xff09;。 性能因素 写入方…

计算机网络知识CIDR(无类别域区间路由)

目录 介绍 基本信息 优点与关联 如何计算判定范围&#xff08;你应该是来看这个的&#xff0c;前面是水字数的&#xff09; 省流版 介绍 无类别域间路由&#xff08;Classless Inter-Domain Routing、CIDR&#xff09;是一个用于给用户分配IP地址以及在互联网上有效地路由…

智慧监狱大数据整体解决方案(51页PPT)

方案介绍&#xff1a; 智慧监狱大数据整体解决方案通过集成先进的信息技术和大数据技术&#xff0c;实现对监狱管理的全面升级和智能化改造。该方案不仅提高了监狱管理的安全性和效率&#xff0c;还提升了监狱的智能化水平&#xff0c;为监狱的可持续发展提供了有力支持。 部…

transformers库的模型在加载之后,重新设置device_map=auto

from accelerate import infer_auto_device_map, dispatch_modeldevice_map infer_auto_device_map(model, dtypetorch.bfloat16) model dispatch_model(model, device_mapdevice_map)