【YashanDB知识库】归档日志清理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文介绍了YashanDB中手动清理归档日志时遇到的问题及解决方法。问题源于在归档日志未备份或未同步到备机时尝试删除,导致文件仍存在。解决方案是通过调整`ARCH_CLEAN_IGNORE_MODE`参数(如设置为BOTH模式)来忽略备份和备机限制,执行归档日志清理命令(如`ALTER DATABASE DELETE ARCHIVELOG`)。同时,注意YashanDB支持自动清理功能,可通过设置上下阈值避免磁盘空间不足。相关参数可用`show parameter clean`查看。

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7281311.html?templateId=1718516

问题:

按照官方文档提供的清理归档日志三种方式,手动删除归档日志文件返回succeed后,发现归档日志文件仍然存在

原因:

按照Yashan的默认配置,如果archivelog没有备份,没有同步到备机时,归档日志是不能删除的。因此考虑是因为archivelog没有备份,也没有同步到备机的情况下直接执行了归档日志删除操作,

解决方法:

YashanDB手动清理归档日志的策略是由ARCH_CLEAN_IGNORE_MODE参数决定的,指定清理归档日志文件时的忽略模式,包括如下值:

● NONE:表示清理归档文件时不忽略备份和备机。

● BACKUP:表示清理归档时忽略备份,此设置可能导致数据库无法恢复至任意时间点 。

● STANDBY:表示清理归档时忽略备机,此设置可能导致备机跟不上主机,出现need repair状态,单机部署中默认忽略备机。

● BOTH:表示清理归档时忽略备份和备机,此设置可能导致如上所述的两种问题均会出现。

其中:

● 忽略备份指的是无论该归档文件是否已经备份,均会被清理。

● 忽略备机指的是无论该归档文件是否已经被所有备机获取,均会被清理。

可通过以下方式清理归档日志:

--将清理归档日志策略指定为BOTH模式

1、alter system set ARCH_CLEAN_IGNORE_MODE=BOTH;

2、查看归档日志:

select * from V$ARCHIVED_LOG;

3、再需要选择以下sql执行清理归档日志的命令:

--删除所有归档日志

ALTER DATABASE DELETE ARCHIVELOG ALL;

--删除包括2022-01-06 11:30:00之前的归档日志

ALTER DATABASE DELETE ARCHIVELOG UNTIL TIME TO_DATE('2022-01-06 11:30:00', 'yyyy-mm-dd hh24:mi:ss');

--删除序列号包括71号之前的归档日志

ALTER DATABASE DELETE ARCHIVELOG UNTIL SEQUENCE 71;

--强制归档清理

ALTER DATABASE DELETE ARCHIVELOG ALL FORCE;

注意:

1、YashanDB具有自动清理归档日志的功能,默认情况下触发归档日志清理的最低和最高阈值分别为12G和16G,可根据实际情况设置该阈值来达到及时清理归档日志的目的,避免归档日志清理不及时导致磁盘空间被占满的情况。

示例SQL如下:

alter system set ARCH_CLEAN_LOWER_THRESHOLD=2G;

alter system set ARCH_CLEAN_UPPER_THRESHOLD=4G;

2、上述清理归档日志的相关参数可在后台yasql环境用以下sql查看

show parameter clean;

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
98
分享
相关文章
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
本文介绍了YashanDB在特定场景下的问题分析与解决方法。当使用yasboot重启数据库后,yasom和yasagent进程虽启动成功但出现告警,原因是缺少libnsl.so.1库文件或环境变量配置错误。解决步骤包括:检查系统中是否存在该库文件,若不存在则根据操作系统类型安装(有外网时通过yum或apt,无外网时创建符号链接),若存在则调整环境变量配置,并重新启动相关进程验证问题是否解决。
【YashanDB知识库】共享从 MySQL异常处理CONTINUE HANDLER的改写方法
本文介绍了MySQL中`CONTINUE HANDLER FOR NOT FOUND`的用法及其在YashanDB中的改写方法。通过一个示例存储过程,展示了如何使用游标和异常处理机制来应对“未找到数据”的情况。在MySQL中,`CONTINUE HANDLER`用于捕获此类异常;而在YashanDB中,则需改用游标的`%NOTFOUND`属性和`NO_DATA_FOUND`异常处理。文章对比了两者的执行效果,帮助用户顺利完成从MySQL到YashanDB的业务迁移。
【YashanDB知识库】共享超过32000字节字符串插入CLOB类型方案
本文来自YashanDB官网,介绍了解决向崖山数据库CLOB类型字段插入超过32000字节字符串时出现的YAS-04107错误的方法。通过JDBC动态变量绑定技术,实现对不同表的超长字符串插入支持。方案基于YashanDB JDBC和Druid组件,动态解析SQL语句并绑定变量,提供通用性。文章包含关键代码示例及程序使用说明,需JDK 1.8环境运行,并提供附件下载以辅助实施。
【YashanDB知识库】扩展redo大小
本文介绍了崖山数据库(YashanDB)中调整redo文件数量和大小的方法。通过修改配置文件的REDO_FILE_NUM和REDO_FILE_SIZE参数,或使用SQL命令手动扩容redo文件,具体包括:查看当前redo状态、新增redo文件、切换日志写入、执行检查点操作以确保数据安全、删除旧redo文件等步骤。此方法适用于安装后发现redo配置过小的情况,帮助优化数据库性能。
【YashanDB知识库】MySQL和YashanDB 隐式转换不一致引起的报错
本文分析了在YashanDB中执行特定SQL语句时出现的类型转换错误问题,并对比了YashanDB、Oracle和MySQL 5.7的行为差异。问题源于隐式类型转换,当数值字段与非法数字字符串(如'1,2')进行比较时,YashanDB和Oracle会报错,而MySQL 5.7虽不报错但会引发警告。通过调整SQL语句,避免数值与字符串直接比较,可有效解决问题。文章还详细解析了不同值表现不一致的原因,涉及执行计划和过滤条件的实际运行细节。
【YashanDB知识库】数据库升级后用yasboot在线扩充备节点出现报错
本文来自YashanDB官网,讨论从22.2.4.1升级至23.2.2.100过程中遇到的在线扩容问题。使用yasboot增加备节点时出现“no replication addr in node 1-1”错误,尽管数据库中存在相关配置。原因是早期托管功能未支持扩容,导致OM无法获取新库配置。提供两种规避方法:一是手动修改`cod_domor.db`信息并调整配置文件;二是手动安装YashanDB并配置备机。最终已向研发反馈,将在扩容时优化配置检查逻辑。

热门文章

最新文章