Oracle 12c - Resetlogs
2021/8/26 19:06:11
本文主要是介绍Oracle 12c - Resetlogs,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
When to use resetlogs?
Backup and recover is the important toipc in Database area. the resetlogs knowledge is important in Backup&Recover.
Resetlogs means that reset the online redolog.
We know that the instance need redologs while the instance startup, we can use resetlogs to startup instance while the redolog is deleted or unusable.
Oracle will create the new redologs according to the controlfile’s configuration(path/name/size/group etc.) in resetlog mode.
So we usually use resetlogs to incomplete database recovery or some scences like OGG’s setup…
The root cause is that the redologs can NOT be used.
How to use resetlogs?
I use test case to pratise the resetlogs as the following steps. (Please do NOT test these in Production env.)
1. Stop database 2. Delete redolog manually 3. Startup instance in mount mode 4. Open database in resetlogs
1. Stop database
Confirm with the datafile/controlfiles/logfiles/tempfiles before stop database in normal mode.
select name from v$datafile union select name from v$controlfile union select member from v$logfile union select name from v$tempfile; shu immediate;
Logs:
[oracle@host01 ~]$ export ORACLE_SID=PRODCDB; sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Thu Mar 15 12:43:22 2018 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 838860800 bytes Fixed Size 2929936 bytes Variable Size 570428144 bytes Database Buffers 260046848 bytes Redo Buffers 5455872 bytes Database mounted. Database opened. SQL> SQL> select name from v$datafile union select name from v$controlfile union select member from v$logfile union select name from v$tempfile; NAME -------------------------------------------------------------------------------- /u01/app/oracle/fast_recovery_area/PRODCDB/control02.ctl /u01/app/oracle/oradata/PRODCDB/PDBPROD1/PDBPROD1_users01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD1/example01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD1/sysaux01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD1/system01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD1/temp01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD2/PDBPROD2_users01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD2/sysaux01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD2/system01.dbf /u01/app/oracle/oradata/PRODCDB/PDBPROD2/temp01.dbf /u01/app/oracle/oradata/PRODCDB/control01.ctl NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/PRODCDB/pdbseed/sysaux01.dbf /u01/app/oracle/oradata/PRODCDB/pdbseed/system01.dbf /u01/app/oracle/oradata/PRODCDB/pdbseed/temp01.dbf /u01/app/oracle/oradata/PRODCDB/redo01.log /u01/app/oracle/oradata/PRODCDB/redo02.log /u01/app/oracle/oradata/PRODCDB/redo03.log /u01/app/oracle/oradata/PRODCDB/sysaux01.dbf /u01/app/oracle/oradata/PRODCDB/system01.dbf /u01/app/oracle/oradata/PRODCDB/temp01.dbf /u01/app/oracle/oradata/PRODCDB/undotbs01.dbf /u01/app/oracle/oradata/PRODCDB/users01.dbf 22 rows selected. SQL> SQL> shu immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL>
2. Delete redolog manually
Remove the redo*.log file in OS level.
host rm redo*.log
Logs:
SQL> host rm /u01/app/oracle/oradata/PRODCDB/redo*.log SQL> host ls /u01/app/oracle/oradata/PRODCDB/redo*.log ls: cannot access /u01/app/oracle/oradata/PRODCDB/redo*.log: No such file or directory SQL>
3. Startup instance in mount mode
Startup in mount mode.(just read controlfile and don’t open file like redologs.)
startup mount;
Logs:
SQL> startup mount; ORACLE instance started. Total System Global Area 838860800 bytes Fixed Size 2929936 bytes Variable Size 570428144 bytes Database Buffers 260046848 bytes Redo Buffers 5455872 bytes Database mounted. SQL>
4. Open database in resetlogs
Need execute incompleted database recovery before open resetlogs.
alter database open resetlogs; recover database until cancel; alter database open resetlogs;
Logs:
SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01139: RESETLOGS option only valid after an incomplete database recovery SQL> recover database until cancel; Media recovery complete. SQL> alter database open resetlogs; Database altered. SQL> host ls /u01/app/oracle/oradata/PRODCDB/redo*.log /u01/app/oracle/oradata/PRODCDB/redo01.log /u01/app/oracle/oradata/PRODCDB/redo02.log /u01/app/oracle/oradata/PRODCDB/redo03.log SQL>
In this test case, we can know the resetlogs’s knowledge.
Other
Regarding the recover commands, please check the following documents.
oracle备份恢复之recover database的四条语句区别
1. recover database using backup controlfile 如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点; 2. recover database until cancel redo都丢失,会先去自动应用归档日志,可以实现最大的恢复; 3. recover database using backup controlfile until cancel; 如果丢失当前controlfile并且current/active redo都丢失,会先去自动应用归档日志,可以实现最大的恢复; 4. recover database until cancel using backup controlfile; 如果丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点。因为没有应用归档日志,所有会丢失数据。 要理解recover database using backup controlfile,先理解 recover database,也就是说,不加using backup controlfile的情况。 在普通的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN” 而某些情况下,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backup controlfile , 或者 controlfile是根据trace create的。),这时候,就需要用using backup controlfile. 恢复就不会受“当前controlfile所记录的SCN”的限制。这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel)
这篇关于Oracle 12c - Resetlogs的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)