归档模式下active日志损坏
active代表日志切换过可能已经归档;也可能代表日志中的脏块还没有被DBWR写盘
查看归档路径
SQL> show parameter recovery
NAME TYPE VALUE
----------------------------------------------- ------------------------------
db_recovery_file_dest string /u01/tiger/flash_recovery_area
db_recovery_file_dest_size big integer 2G
recovery_parallelism integer 0
如果是刚创建的数据库那么就会出现unused状态
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------
1 1 2 52428800 1 NO CURRENT 452423 07-SEP-12
2 1 0 52428800 1 YES UNUSED 0
3 1 1 52428800 1 YES INACTIVE 446075 07-SEP-12
第一,查看日志的状态和对应的日志文件
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ----------------------------------------------- ---
3 ONLINE /u01/tiger/oradata/orcl/redo03.log NO
2 ONLINE /u01/tiger/oradata/orcl/redo02.log NO
1 ONLINE /u01/tiger/oradata/orcl/redo01.log NO
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------
1 1 2 52428800 1 YES ACTIVE 460765 07-SEP-12
2 1 3 52428800 1 NO CURRENT 460767 07-SEP-12
3 1 1 52428800 1 YES ACTIVE 459268 07-SEP-12
第二破坏日志做测试
SQL> !cp /etc/passwd/u01/tiger/oradata/orcl/redo01.log
SQL> conn /as sysdba
Connected.
SQL> shut abort
Oracle instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219136 bytes
Variable Size 104859072 bytes
Database Buffers 201326592 bytes
Redo Buffers 7168000 bytes
Database mounted.
ORA-00313: open failed for members of loggroup 1 of thread 1
ORA-00312: online log 1 thread 1:'/u01/tiger/oradata/orcl/redo01.log'
ORA-27046: file size is not a multiple oflogical block size
Additional information: 1
第三恢复日志
SQL> alter database clear logfile group 1;
alter database clear logfile group 1
*
ERROR at line 1:
ORA-01624: log 1 needed for crash recovery of instance orcl(thread 1)
ORA-00312: online log 1 thread 1:'/u01/tiger/oradata/orcl/redo01.log'
------当我们清洗日志组的时候发现因为视力恢复的时候需要日志组1所以清洗不了
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- -------------------- --- ---------------- ------------- ---------
1 1 2 52428800 1 YES ACTIVE 460765 07-SEP-12
3 1 1 52428800 1 YES ACTIVE 459268 07-SEP-12
2 1 3 52428800 1 NO CURRENT 460767 07-SEP-12
------检查日志组的状态发现是在active的时候损坏的
SQL> recover database;
ORA-00283: recovery session canceled due toerrors
ORA-00313: open failed for members of log group 1 ofthread 1
ORA-00312: online log 1 thread 1:'/u01/tiger/oradata/orcl/redo01.log'
ORA-27046: file size is not a multiple oflogical block size
Additional information: 1
------当恢复读取日志组1的redo01.dbf的时候格式不对打开失败
因为有归档但是数据不认为此次恢复需要归档,我们手工提供归档
SQL> recover database until cancel;
ORA-00279: change 460765 generated at09/07/2012 13:32:38 needed for thread 1
ORA-00289: suggestion :/u01/tiger/flash_recovery_area/ORCL/archivelog/2012_09_07/o1_mf_1_2_%u_.arc
ORA-00280: change 460765 for thread 1 is insequence #2
Specify log: {<RET>=suggested |filename | AUTO | CANCEL}
ORA-00279: change 460767 generated at09/07/2012 13:32:40 needed for thread 1
ORA-00289: suggestion :/u01/tiger/flash_recovery_area/ORCL/archivelog/2012_09_07/o1_mf_1_3_%u_.arc
ORA-00280: change 460767 for thread 1 is insequence #3
ORA-00278: log file'/u01/tiger/flash_recovery_area/ORCL/archivelog/2012_09_07/o1_mf_1_2_84m1qrxr_.arc'no longer neededfor this recovery
------2号文件我们没有用到因为刚才recover databas恢复的时候应用了2号日志文件对应的是第三组下一个是3号日志文件实际上就是current日志还没有来得及切换就已经崩溃了所以没有归档我们提供在线的current日志,我们的在线日志是第二组里的日志文件
Specify log: {<RET>=suggested |filename | AUTO | CANCEL}
/u01/tiger/oradata/orcl/redo02.log
Log applied.
Media recovery complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS orNORESETLOGS option for database open
SQL> alter database open resetlogs;
Database altered.
- 大小: 47.2 KB
分享到:
相关推荐
- **恢复流程的实施**:在具体实施恢复过程中,实验考虑了日志文件的状态(CURRENT/INACTIVE/ACTIVE)以及其是否被归档。对于当前(CURRENT)状态的日志文件,如果损坏,可能需要进行实例恢复;而对于已归档...
- 归档模式:数据库在归档模式下,当redo文件损坏,可以通过已归档的日志文件还原未写入数据文件的脏块,以恢复数据库状态。 - 非归档模式:若未启用归档,数据库只能依赖于控制文件和在线redo日志进行恢复,可能...
- **日志损坏恢复**:inactive日志的清洗,active日志损坏的一致性恢复,以及current日志损坏的不完全恢复。 5. **归档日志管理**: - **查看存档状态**:确认数据库是否处于归档模式,这对于数据库的备份和恢复...
对于日志组的状态,Oracle定义了五种不同的状态,包括CURRENT(当前正在使用的日志组)、ACTIVE(活跃的日志组,对应的脏块尚未写入到数据文件或归档模式下未完成归档)、UNUSED(未使用的日志组)、INACTIVE(不...
- 随后执行 `recover datafile 5` 命令,却收到 Ora-00283 和 Ora-00353 错误,表明日志文件 2 有损坏,导致介质恢复失败。 2. **恢复尝试**: - 发现数据库是非归档模式,无法利用归档日志进行恢复。 - 检查 ...
- **重做日志切换失败**:分析原因,可能是因为检查点或归档操作未完成导致。可以通过增加重做日志文件组、优化检查点频率等方法来解决问题。 - **未授权的表空间删除**:加强数据库安全策略,如增强密码复杂度、...
5. **V$ARCHIVE_DEST**:展示所有归档日志目标文件的状态,帮助监控归档日志的存储位置和配置。 6. **V$ARCHIVED_LOG**:显示控制文件中的归档日志记录,包括归档日志名称,对于跟踪和恢复非常关键。 7. **V$...
- **Oracle日志文件**:包括归档日志、联机重做日志、报警日志等,确保日志无错误且空间充足。 - **核心转储**:检查核心转储目录,及时分析可能的故障。 - **邮件通知**:确认Root用户和Oracle用户的邮件配置,...
4. **日志管理**:确认redo log切换正常,日志组无损坏。使用`V$LOG`和`V$LOGFILE`视图进行检查,确保归档日志设置合理。 5. **性能指标监控**:通过`AWR(Automatic Workload Repository)`报告分析SQL语句执行...
同时,"DATABASE_STATUS"应为"ACTIVE",这意味着数据库处于活动状态,可以读写数据。 其次,数据库的归档模式也是巡检的重点。归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)决定了数据库在发生故障时的数据...
- **重做日志切换失败:** 增加重做日志文件组数量、优化检查点和归档操作效率。 - **未授权的操作:** 加强数据库安全策略,例如更改弱密码、限制用户权限。 - **坏块:** 验证硬件状态(如磁盘是否有物理损坏),若非...
同时,归档日志管理也是重要的一环,特别是在事务恢复和灾难恢复中起到关键作用。 4. **性能监控**:通过SQL Trace、AWR(Automatic Workload Repository)和ASH(Active Session History)等工具,监控数据库的...
可以使用`v$session_longops`视图、`v$sql`视图和`ASH(Active Session History)`来分析慢查询,找出耗时操作并优化。 4. **数据库实例监控**:使用`V$视图`(如V$INSTANCE、V$SESSION、V$PGA内存视图等)监控...
- 数据保护:了解闪回技术、归档日志模式、数据库备份与恢复策略。 4. 性能监控与优化: - SQL优化:通过Explain Plan分析执行计划,使用索引、物化视图和并行执行来优化查询。 - 会话与资源管理:使用V$视图...
数据故障指的是数据库中缺失、损坏或不一致的数据、日志、控件或其他文件,这些问题会导致 Oracle 实例无法正常访问数据内容。在数据库出现问题时,快速准确地定位根本原因并采取正确措施通常是缩短停机时间的关键。...
理解归档日志模式和非归档日志模式的区别,以及如何进行数据库的恢复操作,包括点-in-time恢复和介质恢复。 8. **安全性**:理解Oracle的用户管理和权限模型,如何创建和管理用户,设置权限,以及角色的概念。学习...
例如,通过分区和子分区策略可以提高查询效率,使用合适的数据块大小适应不同类型的表和索引,以及定期清理和归档不必要的日志文件以释放空间。 2. 表和索引设计:表的设计直接影响数据库的性能。应考虑适当的数据...
4. 根据业务需求细化和完善备份、恢复策略,包括增量备份、归档日志备份等。 5. 实践备份和恢复操作,包括验证恢复的正确性,确保数据的完整性和一致性。 6. 应对多种数据库损坏情况,熟练使用RMAN(Recovery ...