Oracle 数据库 打不开 oracle数据库打不开

本文介绍了Oracle数据库在遇到日志丢失等问题时如何进行不完全恢复,特别是使用open resetlogs命令的过程。不完全恢复适用于特定场景,如恢复到某个SCN或时间点之前。同时,解释了resetlogs的概念,它会清理online redo logs并重置日志序列。文章还探讨了在恢复控制文件时是否需要open resetlogs的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库打不开,碰到日志丢失丢失,如果没有快速恢复的多路复用备份,那么可能就需要进行不完全恢复。
当进行不完全恢复时,就需要使用open resetlogs命令。

那么,什么是”不完全恢复“呢?
 
对于完全恢复:

  • 数据库正在运行,你执行了shutdown immediate命令 
    --> 在这种情况下,所有文件都会有一个相同的scn(数据文件,redo和控制文件),在重新打开库时,数据库将以一个一致的状态开启(Oracle会去确认在每个文件中的所有内部标记并予以确认)。
  • 如果你执行的命令是shutdown abort 
    --> 那么你的数据文件在关库时会还保持在模糊不清的状态下,你的数据文件、控制文件和redo的scn都不是一致的,因此当你启动数据库时会需要进行”crash recovery“即崩溃恢复处理,这会将所有文件恢复的一致的SCN后再运行以正常状态打开数据库。
  • 如果你执行restore和recover命令时 
    --> 如果数据文件被恢复、使用当前的控制文件和redo日志进行恢复,你会注意到(数据文件的SCN值低,而控制文件和redo日志则SCN较高,或者之间的SCN相同)在这种情况下需要进行recover操作经文件都恢复到一致状态下才能正常开库。

对于不完全恢复:
举个简单例子,如果你的恢复并非要恢复到最新状态,即recover到某个scn(或某个时间点,某个sequence)之前,那么你就需要open resetlogs,因为你需要将redo logs置为新的日志文件并以重置开始。


关于resetlogs释义:

  • 对当前在线重做日志进行归档(或是如果发现文件损坏或讹误则,则归
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值