redo日志全部丢失的情况下。Oracle的实例恢复
场景:
redo日志全部丢失的场景。
alert日志报错如下:
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: '/u01/app/oradata/oradb/redo01.log'
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Thu Oct 15 16:22:08 2020
Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
ORA-00322: log 1 of thread 1 is not current copy
ORA-00312: online log 1 thread 1: '/u01/app/oradata/oradb/redo01.log'
Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oradata/oradb/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Completed: ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1
Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oradata/oradb/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Checker run found 6 new persistent data failures
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2
Clearing online log 2 of thread 1 sequence number 4430
Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_ora_2826.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: '/u01/app/oradata/oradb/redo02.log'
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_ora_2826.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: '/u01/app/oradata/oradb/redo02.log'
也可以看到redo在线日志丢失。
这里可以看看redo日志的位置和状态:
SYS@oradb> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
NEXT_CHANGE# NEXT_TIME
------------ --------------
1 1 4429 52428800 512 1 YES INACTIVE 1.0235E+13 15-10月-20
1.0235E+13 15-10月-20
3 1 4431 52428800 512 1 NO CURRENT 1.0235E+13 15-10月-20
2.8147E+14
2 1 4430 52428800 512 1 YES INACTIVE 1.0235E+13 15-10月-20
1.0235E+13 15-10月-20
SYS@oradb> select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
------------------------------------------------------------------------------------------------------------------------
IS_
---
3 ONLINE
/u01/app/oradata/oradb/redo03.log
NO
2 ONLINE
/u01/app/oradata/oradb/redo02.log
NO
1 ONLINE
/u01/app/oradata/oradb/redo01.log
NO
可以看到group1和group2是inactive。可以通过如下命令恢复重建
SYS@oradb> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;
数据库已更改。
SYS@oradb> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
数据库已更改。
但是,对于current的redo日志来说,就是很大的问题了。
这里是通过一个实例恢复的方式,命令如下:
正常关闭数据库
SYS@oradb> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
启动数据库至mount状态,恢复数据库实例
SYS@oradb> startup mount;
ORACLE 例程已经启动。
Total System Global Area 1.0260E+10 bytes
Fixed Size 2347880 bytes
Variable Size 2583694488 bytes
Database Buffers 7667187712 bytes
Redo Buffers 6402048 bytes
数据库装载完毕。
SYS@oradb> recover database until cancel;
完成介质恢复。
SYS@oradb> alter database open resetlogs;
NOTE: If the current online log, needed for instance recovery, is lost, the database must be restored and recovered through the last available archivelog file(PITR).
至此,模拟环境的oracle恢复成功,文献参考:
How to Recover from Loss Of Online Redo Log And ORA-312 And ORA-313 (Doc ID 117481.1) To BottomTo Bottom
redo日志全部丢失的情况下。Oracle的实例恢复的更多相关文章
- 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结
数据库一致性关闭下redo日志文件丢失的处理办法(归档和非归档都行) 1. inactive log 在一致性关闭后删除重启时可以在mount下(不丢失数据) alter database clea ...
- 【恢复】Redo日志文件丢失的恢复
第一章 Redo文件丢失的恢复 1.1 online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...
- 解决 RecyclerView 在Android Studio已经导入情况下还无法实例引用问题
系统:Windows 10 IDE::android studio 1. 问题:RecyclerView 在Android Studio已经导入情况下还无法实例引用问题 由于RecyclerView是 ...
- Oracle的实例恢复解析
在数据库服务器异常断电重启后,数据库会进行实例恢复,那么实例恢复的过程中Oracle做了什么操作呢?参考官网在这里做一下解释,菜鸟水平有限,欢迎勘正. 首先说下实例恢复的定义: Instance re ...
- Linux在丢失的情况下重置密码
1.开机菜单是 移动光标到第一行 --敲击e 2.找到UTF-8,加上空格rd.break,敲击ctrl+x 3.输入以下命令 mount -o remount,rw /sysroot chroot ...
- linux下Oracle数据库实例开机自启动设置
linux下数据库实例开机自启动设置 1.改动/oratab [root@org54 ~]# vi/etc/oratab --把N改为Y,例如以下提示 # This file is used ...
- spring-如何在项目启动的情况下获取Bean实例
十年阿里,就只剩下这套Java开发体系了 >>> 大家都知道,项目启动的时候,spring读取xml文件,将配置的bean 或者 注解下的controller service d ...
- Oracle recover current redo ORA-00600:[4193] (oracle 故障恢复current redo日志ORA-00600:[4193]报错)
背景:搭建了一套oracle 19c主备库(单实例非CDB,PDB),linux7.5在断电后(没有进行数据库关闭)重启数据库报错如下图,redo当前状态下进行不完全恢复主库后resetlogs 打开 ...
- ORACLE联机日志文件丢失或损坏的处理方法(转)
经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA ...
- Linux 6.x 下Oracle 11g R2 安装配置
Oracle 11g R2 数据库安装硬件配置要求: 最小内存 1 GB of RAM 虚拟内存容量,这个oracle也有要求,不用担心此时的swap分区不够oracle的要求 .虚拟内存swap如何 ...
随机推荐
- KingbaseES Insert On Conflict 功能
针对数据写入时有主键冲突的情况,INSERT ON CONFLICT语法可以将冲突主键的INSERT行为转换为UPDATE行为,从而实现冲突主键的覆盖写入.该特性又称UPSERT覆盖写,与MySQL的 ...
- 初学STM32 CAN通信(三)
1. stm32 CAN通信标准库函数 //CAN通信初始化函数 uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct ...
- ET介绍——强大的MongoBson库
强大的MongoBson库 后端开发,统计了一下大概有这些场景需要用到序列化: 对象通过序列化反序列化clone 服务端数据库存储数据,二进制 分布式服务端,多进程间的消息,二进制 后端日志,文本格式 ...
- .Net接入AzureOpenAI、OpenAI、通义千问、智谱AI、讯飞星火、文心一言大语言模型。
前言 现在在网上搜索.NET接入大模型的帖子很少,有些官方案例只提供java和python的SDK,所以有了这篇.Net的接入大模型文章,目前仅实现对话模型的调用. 这里仅举例通义千问,其他模型实现可 ...
- #费马小定理,BSGS#BZOJ 3285 离散对数解指数方程
题目 求最小的正整数 \(x\) 满足 \(g^{ax+b}\equiv c\pmod p\) 其中 \(p\) 是一个质数, \(g,a,b,c\leq 10^{1000000},p\leq 2^{ ...
- #dp#NOIP2020.9.26模拟jerry
题目 Jerry 写下了一个只由非负整数和加减号组成的算式. 它想给这个算式添加合法的括号,使得算式的结果最大. 分析 考场\(O(n^3)\)伪部分分成功爆零, 设\(dp[i][j]\)表示前\( ...
- 本周四晚19:00知识赋能第3期直播丨OpenHarmony智能家居项目之控制面板功能实现
OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划项目自 2021 年 10 月 24 日上线以来,在开发者中引发高度关注. 成长计划 ...
- 国产开源数据库OpenGauss的安装运行
步骤一:OpenGauss 的安装 环境 OS:openEuler 20.03 64bit with ARM 架构:arm64 部署:单机 安装过程 1.环境配置 安装依赖包: yum install ...
- 安装pnpm 和报错解决,亲测可行
安装pnpm 和报错解决,亲测可行 pnpm 是一款磁盘空间高效的软件包管理器. 当使用 npm 或 Yarn 时,如果你有 1000个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要 ...
- Windows Server之KMS
KMS是什么? KMS全称是Key Management Service,本身就是微软官方提供的一种激活方式,通常用于大型组织客需要激活的客户端数量不固定的情况. 正常情况下,激活Windows系统需 ...