数据库恢复全解析:从实例崩溃到介质故障
1. 实例恢复机制
当数据库的前滚阶段完成,所有数据库文件彼此同步后,数据库就可以打开。不过,由于前滚阶段将已提交和未提交的数据都应用到了数据文件中,这些文件中会存在不一致的数据。因此,在打开阶段,回滚阶段会开始处理这些未提交的数据。
回滚阶段会使用撤销表空间中的数据来回滚未提交的更改。SMON 进程会启动未提交缓冲区的回滚操作。为了加快回滚速度,可以设置 FAST_START_PARALLEL_ROLLBACK 参数,该参数会生成并行从属进程来加速回滚。
回滚阶段结束后,实例恢复即完成。对于 RAC 数据库实例,还需要额外的步骤来恢复全局缓存和入队服务。
对于 12c 多租户容器数据库(CDB),实例恢复的基本概念与非容器数据库相同,但由于容器数据库包含可插拔数据库(PDB)、控制文件和重做日志文件,实例恢复是在容器数据库级别进行的,PDB 无法单独进行实例恢复。
如果容器数据库发生实例崩溃,会按以下步骤进行恢复:
1. 启动容器数据库 :DBA 使用 STARTUP 命令启动整个容器数据库。
2. 比较数据文件头与控制文件 :对比数据文件头和控制文件中的检查点计数以及系统更改号(SCN)。
3. 检测并执行实例恢复 :如果检查点计数和 SCN 不匹配,则检测到需要进行实例恢复,并从重做日志文件中应用所需的更改向量到数据文件,使数据文件与控制文件同步。
4. 打开容器数据
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



