开发者社区> yangyi_dba> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

当前日志组全部损坏的恢复

简介:         当前日志组是指在被后台进程LGWR写入事务变化的日志组。如果在关闭状态下,当前日志组全部损坏或出现介质失败,那么数据库不能重启。 1)查看当前的日志组状态。
+关注继续查看

        当前日志组是指在被后台进程LGWR写入事务变化的日志组。如果在关闭状态下,当前日志组全部损坏或出现介质失败,那么数据库不能重启。

1)查看当前的日志组状态。

SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                   TYPE    STATUS             
---------- ---------------------------------------- ------- -------            
         3 F:\APP\YANG\ORADATA\ORACL\REDO03.LOG     ONLINE                     
         2 F:\APP\YANG\ORADATA\ORACL\REDO02.LOG     ONLINE                     
         1 F:\APP\YANG\ORADATA\ORACL\REDO01.LOG     ONLINE                     

SQL> select group#,members,sequence#,status from v$log;

    GROUP#    MEMBERS  SEQUENCE# STATUS                                        
---------- ---------- ---------- ----------------                              
         1          1          7 ACTIVE                                        
         2          1          8 ACTIVE                                        
         3          1          9 CURRENT
       

2)在关闭状态下,删除日志组以模拟当前日志组全部损坏。                                

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

-----删除当前日志组。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             142607252 bytes                                      
Database Buffers          385875968 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。

ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员
ORA-00312: 联机日志 3 线程 1: 'F:\APP\YANG\ORADATA\ORACL\REDO03.LOG'

3)当在关闭情况下,当前日志组所有日志成员全部出现介质损坏时,因为数据文件和控制文件处于一致状态,所以我们只需使用RECOVER DATABASE UNTIL CANCEL 命令执行基于取消的不完全的恢复。然后使用RESETLOGS 方式打开数据库

SQL> recover database until cancel
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                   TYPE    STATUS             
---------- ---------------------------------------- ------- -------            
         3 F:\APP\YANG\ORADATA\ORACL\REDO03.LOG     ONLINE                     
         2 F:\APP\YANG\ORADATA\ORACL\REDO02.LOG     ONLINE                     
         1 F:\APP\YANG\ORADATA\ORACL\REDO01.LOG     ONLINE                     

SQL> select group#,members,sequence#,status from v$log;

    GROUP#    MEMBERS  SEQUENCE# STATUS                                        
---------- ---------- ---------- ----------------                              
         1          1          1 CURRENT                                       
         2          1          0 UNUSED                                        
         3          1          0 UNUSED
                                        

注意:别忘了 备份全数据库。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
仅仅丢失一个普通用户数据文件的恢复A(联机恢复)
(例如,丢失D:\BACKUPDB\USERS01.DBF) 准备工作, 通过下面的工作,如果完全恢复,应该可以看到; insert into test1 values(2); SQL> conn lunar/lunar SQL> select *...
479 0
如何恢复磁盘中被删除的数据
如何恢复磁盘中被删除的数据
0 0
今天你检查备份了吗?
今天你检查备份了吗?
0 0
用Partimage创建或恢复分区备份
1 Preliminary Note Partimage is part of the system rescue CD found on http://www.sysresccd.org which is a multi-functional rescue CD useful for both Linux and Windows operating systems.
1443 0
+关注
yangyi_dba
数据库相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库异地备份及不还原快速查询备份集最佳实践
立即下载
微信SQLite数据库损坏恢复实践
立即下载
低代码开发师(初级)实战教程
立即下载