Oracle 数据库报 ora-00257 错误并且执行alter system switch logfile 命令卡死的解决过程

Oracle 数据库报 ora-00257 错误并且执行alter system switch logfile 命令卡死的解决过程

726日下午,某医院用户的 HIS 系统无法连接,报如下错误:

在这里插入图片描述

在这里插入图片描述

初步判断是归档日志问题。

用户的 HIS 系统数据库是双节点 Oracle 11g Rac 集群。登录服务器之后发现使用 sqlplus 可以登录系统,但是执行 alter system switch logfile; 命令时系统无反应,出现卡死状态。

这应该是 Oracle 的日志不能归档,导致无法切换日志。用户反映HIS客户断无法连接数据库,导致医院业务停止。

解决过程如下:

步骤1:使用 v$flash_recovery_area_usage 视图查看归档日志的空间利用率。发现达到 99.95%,如下图所示:

在这里插入图片描述

步骤2:使用 rman 删除归档日志。

命令如下:

rman target /
DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7';
CROSSCHECK ARCHIVELOG ALL; 
DELETE EXPIRED ARCHIVELOG ALL;

执行以上命令后发现 7 天之前的归档日志并没有被删除。原因是 DELETE ARCHIVELOG 命令只删除做过备份的归档文件。

使用如下命令继续删除归档文件:

DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7';
DELETE FORCE ARCHIVELOG UNTIL TIME 'SYSDATE-7';  -- 强制删除归档日志,不管有没有做过备份
DELETE EXPIRED ARCHIVELOG ALL;

删除之后查询 v$flash_recovery_area_usage 视图信息,发现日志文件数量由 697 个减少为 290 个,但REDO LOG对应的PERCENT_SPACE_USED参数的值却变成了1455.6%(正常值应该为 0-100)。执行 alter system switch logfile; 命令时系统仍然处于卡死状态。
查询发现:当 V$FLASH_RECOVERY_AREA_USAGE 显示 ARCHIVED LOG 使用率超过 100% 时,说明闪回恢复区空间已耗尽,会导致:

(1)归档失败(出现 ORA-00257 错误);
(2)数据库挂起(DML 操作阻塞);
(3)日志切换卡死(ALTER SYSTEM SWITCH LOGFILE 无响应)。

SQL> select * from v$flash_recovery_area_usage;FILE_TYPE	     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE			0 				0				0
REDO LOG				0 				0				0
ARCHIVED LOG			1455.6 			0     			 290
BACKUP PIECE			0 				0				0
IMAGE COPY				0 				0				0
FLASHBACK LOG			0 				0				0
FOREIGN ARCHIVED LOG	 0 			 	0	 	 		0
7 rows selected.

步骤3:考虑到业务需要,临时修改归档日志存放的地址,然后再查找原因。

系统配置有 dg,参数log_archive_dest_1log_archive_dest_2 的配置如下:

log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=hisdb'
log_archive_dest_2='SERVICE=dghisdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dghisdb'

执行如下操作切换归档日志存放的地址:

-- 在两个节点上分别创建目录:/u01/app/oracle/gdbak0726
-- 然后执行下面的命令切换归档日志的地址
alter system set log_archive_dest_2='location=/u01/app/oracle/gdbak0726' scope=both;

执行上面的命令之后,过了几分钟,发现系统恢复正常。用户反映可以登录系统了,业务恢复正常。执行alter system switch logfile 命令时也比较顺利。

=====================================================================================================

=============== 问题最终解决 =========================================================================

=====================================================================================================

到晚上八点半,医院下班之后,把归档日志的地址恢复为原来的参数。命令如下:

alter system set log_archive_dest_2='SERVICE=dghisdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dghisdb' scope=both;

执行以上命令之后,发现执行alter system switch logfile 命令时仍然卡死。

查询发现, v$flash_recovery_area_usage 视图中 ARCHIVED LOG 对应的参数 PERCENT_SPACE_USED 的值与参数db_recovery_file_dest_size有关,把参数db_recovery_file_dest_size的值调大即可。

查看参数db_recovery_file_dest_size的值:

SQL> show parameter DB_RECOVERY_FILE_DEST_SIZENAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size	     big integer 5G

执行下面的命令把参数db_recovery_file_dest_size的值修改为 50G:

alter system set db_recovery_file_dest_size=50G scope=both;

然后查询 v$flash_recovery_area_usage 视图信息:

SQL> select * from v$flash_recovery_area_usage;FILE_TYPE	     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE			0 				0				0
REDO LOG				0 				0				0
ARCHIVED LOG			145.56 			0     			 290
BACKUP PIECE			0 				0				0
IMAGE COPY				0 				0				0
FLASHBACK LOG			0 				0				0
FOREIGN ARCHIVED LOG	 0 			 	0	 	 		0
7 rows selected.

再次把参数db_recovery_file_dest_size的值修改为 100G:

alter system set db_recovery_file_dest_size=100G scope=both;

然后查询 v$flash_recovery_area_usage 视图信息,发现ARCHIVED LOG选项对应的PERCENT_SPACE_USED参数的值已下降到100以内。

SQL> select * from v$flash_recovery_area_usage;FILE_TYPE	     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE				0					0				0
REDO LOG					0					0				0
ARCHIVED LOG				72.78				72.43			290
BACKUP PIECE				0					0				0
IMAGE COPY					0					0				0
FLASHBACK LOG				0					0				0
FOREIGN ARCHIVED LOG		0					0				07 rows selected.

过了几分钟,用户反映业务恢复正常了。说明通过修改参数db_recovery_file_dest_size的值是可以的解决问题的。

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

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

相关文章

ArKTS:List 数组

一种:/**# encoding: utf-8# 版权所有 2025 ©涂聚文有限公司™ # 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 数组# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 …

Spring Boot 3整合Spring AI实战:9轮面试对话解析AI应用开发

Spring Boot 3整合Spring AI实战:9轮面试对话解析AI应用开发 第1轮:基础配置与模型调用 周先生:cc,先聊聊Spring AI的基础配置吧。如何在Spring Boot 3项目中集成Ollama? cc:我们可以通过OllamaConfig.java…

标准SQL语句示例

一、基础操作1. 数据库操作-- 1. 创建数据库 CREATE DATABASE 数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;-- 2. 删除数据库 DROP DATABASE IF EXISTS 数据库名称;-- 3. 选择数据库 USE 数据库名称;-- 4. 显示所有数据库 SHOW DATABASES;-- 5. 查看数据库创…

STM32-基本定时器

一.基本定时器简介 STM32F1 系列共有 8 个定时器,分别为:基本定时器、通用定时器、高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部IO。 二.基本定时器功能 上图为基本定时器的功能框…

ofd文件转pdf

主要后端使用Java实现&#xff0c;前端可随意搭配http请求添加依赖&#xff1a;<!-- OFD解析与转换库 --><dependency><groupId>org.ofdrw</groupId><artifactId>ofdrw-converter</artifactId><version>1.17.9</version></…

4.应用层自定义协议与序列化

1.应用层程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层1.1再谈“协议”协议是一种 "约定". socket api 的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些 "结构化的数据" 怎么办呢…

【QT搭建opencv环境】

本文参考以下文章&#xff1a; https://blog.csdn.net/weixin_43763292/article/details/112975207 https://blog.csdn.net/qq_44743171/article/details/124335100 使用软件 QT 5.14.2下载地址&#xff1a;download.qt.io 选择版本&#xff1a;Qt 5.14.2 Qt 5.14.2百度网盘链接…

golang--函数栈

一、函数栈的组成结构&#xff08;栈帧&#xff09; 每个函数调用对应一个栈帧&#xff0c;包含以下核心部分&#xff1a; 1. 参数区 (Arguments) 位置&#xff1a;栈帧顶部&#xff08;高地址端&#xff09;内容&#xff1a; 函数调用时传入的参数按从右向左顺序压栈&#xff…

【FAQ】创建Dynamics 365 Sales环境

参考文章&#xff1a;5 分钟内安装 Dynamics 365 Sales 步骤 1&#xff1a;访问 Power Platform 管理中心 导航到make.powerapps.com&#xff0c;然后点击右上角的齿轮图标。选择管理中心&#xff0c;或者访问aka.ms/ppac访问 Power Platform 管理中心。 第 2 步&#xff1a…

【数据库】使用Sql Server将分组后指定字段的行数据转为一个字段显示,并且以逗号隔开每个值,收藏不迷路

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录前言示例数据集数…

7.项目起步(1)

1&#xff0c;项目起步-初始化项目并使用git管理创建项目并精细化配置src目录调整git 管理项目2项目起步-配置别名路径联想提示什么是别名路径联想提示如何进行配置 &#xff08;自动配置了&#xff09;{"compilerOptions" : {"baseUrl" : "./",…

【C++详解】深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承

文章目录一、继承概念二、继承定义定义格式继承后基类成员访问方式的变化类模板的继承三、基类和派⽣类间的转换(赋值兼容转换)四、继承中的作用域隐藏规则两道笔试常考题五、派生类的默认成员函数四个常见默认成员函数实现⼀个不能被继承的类六、继承与友元七、继承与静态成员…

加法器 以及ALU(逻辑算术单元)

加法器框架&#xff0c;首先介绍原理&#xff0c;然后引入一位加法器最后再引入多位加法器最后引入带符号的加法器这一节涉及到的硬件电路的知识理解就好&#xff0c;实在看不懂就跳过&#xff0c;但是封装以后的功能必须看懂。这是一个一般的加法过程涉及到的必要元素图中已经…

设计模式实战:自定义SpringIOC(亲手实践)

上一篇&#xff1a;设计模式实战&#xff1a;自定义SpringIOC&#xff08;理论分析&#xff09; 自定义SpringIOC&#xff08;亲手实践&#xff09; 上一篇文章&#xff0c;我们介绍了SpringIOC容器的核心组件及其作用&#xff0c;下面我们来动手仿写一个SpringIOC容器&#…

力扣面试150(42/150)

7.28 20. 有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一…

基于黑马教程——微服务架构解析(二):雪崩防护+分布式事务

之前的两篇文章我们介绍了微服务的基础概念及其服务间通信机制。本篇将深入探讨微服务的核心保障&#xff1a;服务保护与分布式事务。一、微服务保护问题描述&#xff1a; 在一个购物车的微服务中&#xff0c;倘若某一项服务&#xff08;服务A&#xff09;同一时刻访问的数据十…

LeetCode: 429 N叉树的层序遍历

题目描述给定一个 N 叉树&#xff0c;返回其节点值的层序遍历&#xff08;即从左到右&#xff0c;逐层访问每一层的所有节点&#xff09;。示例输入格式&#xff08;层序序列化&#xff09;&#xff1a;输入示意&#xff1a;1/ | \3 2 4/ \5 6输出&#xff1a;[[1], [3,2,4…

使用phpstudy极简快速安装mysql

使用 phpStudy 极简快速安装 MySQL 的完整指南&#xff1a; 一、phpStudy 简介 phpStudy 是一款 Windows 平台下的 PHP 环境集成包&#xff0c;包含&#xff1a; Apache/Nginx PHP 5.x-7.x MySQL 5.5-8.0 phpMyAdmin 二、安装步骤 1. 下载安装包 访问官网下载&#xf…

git lfs使用

apt install git lfs 或者下载二进制文件加到环境变量 https://github.com/git-lfs/git-lfs/releases git lfs install git lfs clone huggingface文件路径 如果访问不了hugggingface.co用hf-mirror.com替代&#xff0c;国内下载速度还是挺快的 先按照pip install modelscope m…

6、CentOS 9 安装 Docker

&#x1f433; CentOS 9 安装 Docker 最全图文教程&#xff08;含镜像源优化与常见问题解决&#xff09;标签&#xff1a;CentOS 9、Docker、容器技术、开发环境、国内镜像源 适合读者&#xff1a;后端开发、运维工程师、Linux 初学者&#x1f4cc; 前言 在 CentOS 9 上安装 Do…