恢复某个数据文件不适当,导致DataGuard无法open数据库

news/2025/9/23 22:24:08/文章来源:https://www.cnblogs.com/missyou-shiyh/p/19108275

1、案例概述

同事反馈:一套11gR2的DataGuard环境,备库执行alter databases open时,一直hang住,数据库的alert日志也没有任何的报错信息。询问得知,由于备库的system数据文件损坏,导致DG环境中断,于是同事从主库备份了数据文件并在备库进行了恢复。目前,故障现象是执行alter databases open时一直hang住。

 

2、案例分析

2.1 建议同事收集10046事件 和进程的pstack 和 strace日志。

2.2 分析10046事件,摘取部分10046日志如下所示。

PARSING IN CURSOR #140049693225008 len=19 dep=0 uid=0 oct=35 lid=0 tim=1758607635447030 hv=684487124 ad='a3fe61a20' sqlid='1h50ks4ncswfn'
ALTER DATABASE OPEN
END OF STMT
PARSE #140049693225008:c=1165,e=5441,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1758607635447028
WAIT #140049693225008: nam='control file sequential read' ela= 21 file#=0 block#=1 blocks=1 obj#=-1 tim=1758607635448107
WAIT #140049693225008: nam='control file sequential read' ela= 9 file#=0 block#=39 blocks=1 obj#=-1 tim=1758607635448165

......

WAIT #140049693225008: nam='db file sequential read' ela= 24 file#=1 block#=1 blocks=1 obj#=-1 tim=1758607635502499
WAIT #140049693225008: nam='control file sequential read' ela= 14 file#=0 block#=413 blocks=1 obj#=-1 tim=1758607635502547
DDE: Problem Key 'ORA 1110' was flood controlled (0x1) (no incident)
ORA-01110: data file 1: '/u01/app/oracle/oradata/dg/datafile/system.271.1133385189'
Managed Recovery: Real Time Apply enabled.
WAIT #140049693225008: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks=1 obj#=-1 tim=1758607635503330

......

WAIT #140049693225008: nam='rdbms ipc reply' ela= 1301 from_process=10 timeout=2147483647 p3=0 obj#=-1 tim=1758607926054331
ORA-10458: standby database requires recovery
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/dg/datafile/system.271.1133385189'
EXEC #140049693225008:c=6067521,e=290607626,p=6542,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=0,tim=1758607926054783
ERROR #140049693225008:err=10458 tim=1758607926054813
WAIT #140049693225008: nam='SQL*Net break/reset to client' ela= 34 driver id=1650815232 break?=1 p3=0 obj#=-1 tim=1758607926061084
WAIT #140049693225008: nam='SQL*Net break/reset to client' ela= 154 driver id=1650815232 break?=0 p3=0 obj#=-1 tim=1758607926061286
WAIT #140049693225008: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1758607926061311

*** 2025-09-23 14:12:18.084
WAIT #140049693225008: nam='SQL*Net message from client' ela= 12844805 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1758607938906164
CLOSE #140049693225008:c=13,e=13,dep=0,type=0,tim=1758607938906343
=====================
PARSING IN CURSOR #140049693263712 len=55 dep=0 uid=0 oct=42 lid=0 tim=1758607938906731 hv=2655499671 ad='0' sqlid='0kjg1c2g4gdcr'
ALTER SESSION SET EVENTS '10046 trace name context off'
END OF STMT

从10046事件的日志可以看出,alter database open时,虽然表面上是hang住,但实际上已经有报错信息了,提示file 1当前处于不一致的状态,需要继续恢复。

2.3 让同事重新发起alter database open,把数据库刚刚产生的alert日志发出来看看。显示如下:

Tue Sep 23 18:21:23 2025
alter database open read only
Beginning Standby Crash Recovery.
Serial Media Recovery started
Managed Standby Recovery starting Real Time Apply
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782523_nf4x17rc_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545049_nf4x2jl5_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782524_nf4x34bc_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545050_nf4x34s5_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782525_nf4x3hvb_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545051_nf4x3j80_.arc
Tue Sep 23 18:21:33 2025
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_2_782526_nf4x41vl_.arc
Media Recovery Log /u01/app/oracle/oradata/fast_recovery_area/DG01/archivelog/2025_09_23/o1_mf_1_1545052_nf4x4288_.arc
Media Recovery Waiting for thread 2 sequence 782527 (in transit)
Media Recovery of Online Log [Thread=2, Seq=782527]
Recovery of Online Redo Log: Thread 2 Group 10 Seq 782527 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/dg/onlinelog/group_10.320.1133484345
Mem# 1: /u01/app/oracle/oradata/dg/onlinelog/group_10.4595.1133484345
Media Recovery Waiting for thread 1 sequence 1545053 (in transit)
Media Recovery of Online Log [Thread=1, Seq=1545053]
Recovery of Online Redo Log: Thread 1 Group 7 Seq 1545053 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/dg/onlinelog/group_7.302.1133484315
Mem# 1: /u01/app/oracle/oradata/dg/onlinelog/group_7.4584.1133484315

可以看出,发起alter database open read only命令后,备库先应用归档日志,归档日志应用完毕后,又开始继续应用standby log,永无止境。所以前台发起的alter database open read only命令就一直hang住。

2.4 感觉还是那个当初出问题的system数据文件有问题。于是再次询问同事,当备库原始的那个system数据文件损坏后,为解决这个问题,是怎么重新将system数据文件恢复到备库的?得知:首先用rman的backup datafile 1..命令备份时报错,于是改成直接用cp命令了,最终,是现在的故障现象,备库没有任何报错,但alter database open read only命令就一直hang住。

2.5 主库在open的情况下,直接用cp命令将system数据文件复制到备库。这肯定不对。由于让同事把rman的backup datafile 1..命令备份时报错的日志发出来看看。backup命令的确是报错了,但其实system数据文件也已经备份成功,具体报错原因不在本案例进行详细说明。让同事用刚刚rman生成的备份集在备库进行恢复,最终故障处理完毕,备库成功open。

 

3、案例总结

怎么恢复备库的某个数据文件,步骤如下:
1) 在主库对该数据文件进行备份。
rman> backup datafile n format '/tmp/datafilen.bak';
2) 将主库刚生成的备份集复制至备库。
3) 在备库注册备份集。
rman> catalog backuppiece '/tmp/datafilen.bak';
4) 停止备库应用日志功能。
SQL> alter database recover managed standby database cancel;
5) 在备库restore数据文件。
rman> restore datafile n;
6) 启用备库应用日志功能。
SQL> alter database recover managed standby database using current logfile disconnect;

 

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

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

相关文章

Nginx 部署及配置

一、前言 Nginx 是现代 Web 架构中不可或缺的组件,广泛用于反向代理、负载均衡、静态资源服务和安全网关。二、基础部署与核心配置 1. 常见安装方式(以 Ubuntu 为例) sudo apt update sudo apt install nginx -y s…

VSCode C/C++ 开发环境配置

VSCode C/C++ 开发环境配置在Windows和Ubuntu下, 使用VSCode开发GCC C/C++的环境配置.VSCode 安装插件C/C++ Extension PackC/C++ C/C++ Themes CMake ToolsMakefile Tools CMakeWindows下的环境配置 安装 MSYS2 和 GC…

做网站买流量网站线框图

前言众所周知, 现在的 Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目。Spring 的两个核心概念是 IoC(控制反转)和 AOP(面向切面编程)。想了解 Spring 的工…

南阳网站排名优化费用wordpress主题 简洁

文章目录 java整合农行支付1:业务需求了解2:第三方App接入农行支付流程2.1 java 集成农行依赖2.2 java配置农行支付相关证书信息2.2.1:首先我们要配置ConfigSource 文件2.2.2: 配置TrustMerchant 文件信息3:接入农行支付等相关api接口java整合农行支付 技术背景:idea+jd…

公司建设网站算入什么会计科目修改wordpress wp-admin

~~ 转载于:https://www.cnblogs.com/agllero/p/4533848.html

网站开发团队如何接活自己做网站可以上传软件

天池竞赛-津南数字制造算法挑战赛【赛场二】解决方案分享 一、前言 竞赛页面 团队名BugFlow,最终排名35/2157 虽然成绩一般,但是作为一支目标检测领域的新手队伍,仅仅有一块1070显卡,从零开始拿到这个排名,也算有一…

自做闪图网站网站建设需要什么材料

本是青灯不归客,却因浊酒恋红尘 一,基本使用 关于Room数据库的基本使用,请参考文章Android--Jetpack--数据库Room详解一-CSDN博客 二,Room与ViewModle,LiveData的结合使用 LiveData与ViewModle的使用,请参考文章Andr…

网站建设的心得与体会茂名市建设局网站

📖第4章 Android高德地图绘制标记点Marker ✅绘制默认 Marker✅绘制多个Marker✅绘制自定义 Marker✅Marker点击事件✅Marker动画效果✅Marker拖拽事件✅绘制默认 Infowindow🚩隐藏InfoWindow 弹框 ✅绘制自定义 InfoWindow🚩实现 InfoWindow…

婚恋咨询网站运营wordpress 外跳

2019独角兽企业重金招聘Python工程师标准>>> 用java实现对纯真IP数据库的查询,首先到网上下载QQwry.da文件,读取代码如下:1.IP记录实体类 package com.guess.tools; /** * 一条IP范围记录,不仅包括国家和区域&#xff…

设计网站建设长沙必去十大网红地方

1 ChatGPT每日一题:PCB布线,高速信号线走直角的后果 问题:PCB布线,高速信号线走直角的后果 ChatGPT:对于高速信号线来说,最好避免使用直角布线。直角布线会引入反射和信号损耗,从而导致信号完…

vite静态资源处理

/*** 获取完整解析静态资源的url,如图片、svg等* @param {string} path 静态资源在在assets中的地址,例如:images/pubilc/logo.png* @returns {string}*/ export function getStaticUrl(path: string | undefined):…

洛谷B4040 [GESP202409 四级] 黑白方块 题解

原题传送门 前言 天啊!上一周刚刚考完 \(CSP-J\) ,这一周就得去考 \(GESP\) 4级 (是的,你没有听错,我3级过了!) 所以,做了一道简单的题之后,我又来写题解了! (仍然是WA++) 题目解析 哇,这题可真长啊!什…

SerpApi:一站式搜索引擎数据抓取API完全指南

本文详细介绍SerpApi这一实时搜索引擎数据抓取API的技术特性,包括GET请求示例、多语言库集成、JSON结构化数据输出、极速模式配置以及地理位置搜索等核心功能,帮助开发者快速集成搜索引擎数据到应用程序中。SerpApi:…

网站建设过程中什么最重要百度竞价怎么开户

1、 session持久化是什么? web服务器把 session中存储的属性存储到本地磁盘或数据库中; 2、为什么需要持久化? 因为 session是服务器维护会话状态的对象,即便客户端关闭连接或客户端长时间没有访问,服务器还依然存储…

网站备案中更名菜单设计制作模板免费

1. 获取时间 时间是个重要的编程元素,可用于计算间隔、同步服务器以及控制超时。 计算机中的时间分为以下两种形式: 墙钟时间:以12或24小时为周期不断重复,不同的地区和季节会因时区或夏令时而异。单调时间:从一个时…

中山公司网站建设小型企业网站建设报告

一. Windows下为PowerShell/CMD/Git设置代理 —————————————————————————————————————————————————————— 二. [WinError 10061] 由于目标计算机积极拒绝,无法连接。 keyerror:192。 HTTP Error 403: Forbidd…

海丰网站建设wordpress如何置顶

我一开始的想法是:后序遍历是左右根,那么第一个数小于第二个数,第二个数大于第三个数,然后从第三个数开始又循环,显然错了,因为我这种是理想情况,是一个满二叉树。正确的解法是: class Solutio…

工信部网站备案系统登录机械网站建设公司

目录 一、了解什么是泛性编程 二、模版 1.函数模版 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.5 模板参数的匹配原则 2.类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 概念 4.2 …

网站建设的价重庆网站建设团队

Yocto .bb 文件字段解析 本文详细讲解了 Yocto .bb 文件中各字段的作用和用法,包括 SECTION、SRC_URI、SUMMARY 等,旨在帮助开发者更好地理解和使用 Yocto 构建系统。 目录 1. SECTION 字段 1.1 SECTION 的作用1.2 SECTION 的用法1.3 如何使用 SECTIO…