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

news/2024/9/19 0:39:17/ 标签: 数据库, oracle

当遇到“数据库‘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.ppmy.cn/news/1470173.html

相关文章

【机器学习】第11章 神经网络与深度学习(重中之重)

一、概念 1.神经元模型 (1)神经网络的基本组成单位 (2)生物上,每个神经元通过树突接受来自其他被激活神经元的信息,通过轴突释放出来的化学递质改变当前神经元内的电位。当神经元内的电位累计到一个水平时…

数据链路层知识分享【计算机网络】【以太网帧 | MTU的影响 | ARP技术】

博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 前文 一, 以…

【Redis】String的常用命令及图解String使用场景

本文将详细介绍 Redis String 类型的常见命令及其使用场景,包括缓存、计数器、共享会话、手机验证码、分布式锁等场景,并且配图和伪代码进一步方便理解和使用。 命令执行效果时间复杂度set key value [key value…]设置key的值是valueO(k),k是键个数get…

Linux之tar打包解包命令

Linux之tar打包解包命令 打包与压缩区别 打包,也称之为归档,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,所占空间是其中所有文件和目录的总和。 压缩,将一个大文件通过压缩算法…

杂谈-Android和Ios的对比

在当前的智能手机市场中,Android和iOS两大操作系统占据了主导地位。它们各自拥有独特的优势和劣势,为用户提供了不同的使用体验和选择。以下是对Android和iOS系统优缺点的详细对比,旨在帮助用户更全面地了解两大系统。 一、Android系统 优点…

vue 中的样式

vue3中的样书 scoped 样式deep 样式slot 样式全局样式v-bind 绑定动态属性style module更多参考 理想的样式解决方案,期待达到以下目的: 样式方便复用 能轻易避免冲突,样式冲突往往难以定位 开发体验好,使用 scss 、less 等预处…

在ubuntu中启动docker的mysql8镜像

首先查看docker是否启动: docker ps #出现信息就是启动成功 启动命令: sudo systemctl start docker 设置开机自启: sudo systemctl enable docker 查询下载好的mysql8的镜像文件: docker images 在启动查询好的镜像文件&#…

生产看板管理系统内容有哪些?

相信很多做生产管理的朋友都会遇到如下问题,我就在想,是否能一个创建“透明的”的工作场所?让员工和管理者能够实时查询生产进度,及时发现生产中的问题。 生产进度难追踪 生产过程不透明 生产决策缺乏数据支持 ——能&#xf…

闲鱼商品详情API:深入解析与应用指南

在二手交易市场中,阿里巴巴集团旗下的闲鱼平台以其社区氛围和交易模式,吸引了大量用户。为了进一步丰富用户体验和提升交易透明度,开放了一系列API接口,其中包括商品详情API 闲鱼商品详情API接口概述 闲鱼商品详情API接口允许用…

Redis小对象压缩

小对象压缩存储 如果Redis内部管理的集合数据结构很小,他会使用紧凑存储形式压缩存储。 Redis的ziplist是一个紧凑的字节数组结构,如下图所示,每个元素之间都是紧挨着的。 如果他存储的是hash结构,那么key和value会作为两个ent…

监控易监测对象及指标之:全面监控Oracle RAC数据库

随着企业业务的不断增长和复杂化,对数据库的高可用性和性能要求也日益提高。Oracle Real Application Clusters (RAC) 作为Oracle提供的一种高可用性和可扩展性的数据库解决方案,被广泛应用于各种关键业务场景中。 一、ASM磁盘与磁盘分组监控 ASM&#…

生成对抗网络——GAN深度卷积实现(代码+理解)

本篇博客为 上篇博客的 另一个实现版本,训练流程相同,所以只实现代码,感兴趣可以跳转看一下。 生成对抗网络—GAN(代码理解) http://t.csdnimg.cn/HDfLOhttp://t.csdnimg.cn/HDfLO 目录 一、GAN深度卷积实现 1. 模型…

java-SpringBoot执行定时任务-任务调度-@EnableScheduling和@Scheduled

文章目录 java借助springBoot框架,执行定时任务0. 项目地址1. 需求分析2、新建springBoot项目3. 编写定时任务3.1 开启调度任务3.2 编写定时任务方法 java借助springBoot框架,执行定时任务 0. 项目地址 https://github.com/OrangeHza/JavaDemo 1. 需求…

数据库面试题-MySQL

数据库面试题-MySQL 1、数据库的三大范式是什么?2、MySQL数据库引擎有哪些?3、InnoDB与MyISAM的区别?4、数据库事务是什么?ACID是什么?5、什么是索引?6、SQL优化手段有哪些?7、简单说一说drop、delete和truncate的区别?8、什么是视图?9、什么是内联接、左外联接、右外…

Leangoo一站式敏捷研发协同平台,助力敏捷企业高效协同

在当今快速变化的市场环境中,企业对于研发效率和质量的要求日益提高。为了应对这一挑战,敏捷研发方法应运而生,并迅速成为众多企业的首选,然而,如何有效地实施敏捷研发,确保团队之间的高效协作和项目的顺利…

Hadoop+Spark大数据技术(自命题试卷测试)

试卷一 一、选择题 (每小题2分,共20分) 1. Hadoop 核心组件包括: A. HDFS 和 Hive B. HDFS 和 MapReduce C. HBase 和 Spark D. YARN 和 ZooKeeper 2. HDFS 数据块存储方式的优势不包括: A. 文件大小不受单一磁盘大小…

神经网络模型---ResNet

一、ResNet 1.导入包 import tensorflow as tf from tensorflow.keras import layers, models, datasets, optimizersoptimizers是用于更新模型参数以最小化损失函数的算法 2.加载数据集、归一化、转为独热编码的内容一致 3.增加颜色通道 train_images train_images[...,…

利用AI云防护实现高效负载均衡

在当今高度数字化的世界里,保证网站和应用的高可用性和响应速度对企业的业务连续性和用户体验至关重要。传统的负载均衡技术虽然能够分发流量,但在面对突发流量、DDoS攻击或资源动态调整时往往力不从心。本文将探讨如何借助AI云防护服务,不仅…

【vue】form表单提交validate验证不进valid原因

目录 1. 原因 1. 原因 1.<el-form>是否写了ref“form”。2.是否有其它标签写了ref“form”。3.<el-form>中要写成:model&#xff0c;不能使用v-model。4.自定义的validate要各个路径均能返回callback()。 const validatePass (rule, value, callback) > {if (…

使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署

使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署 概述 llama.cpp的主要目标是能够在各种硬件上实现LLM推理&#xff0c;只需最少的设置&#xff0c;并提供最先进的性能。提供1.5位、2位、3位、4位、5位、6位和8位整数量化&#xff0c;以加快推理速度并减少内存使用。…