查看oracle实例位置,oracle实例恢复

检查点:

是一个数据库事件,用于减少崩溃恢复时间,检查点位置决定了实例恢复的起始位置由后台进程触发,触发时ckpt进程通知dbwn进程将数据缓冲区的脏数据写入到数据文件,ckpt进程同时负责更新数据文件的头部信息及控制文件上的检查点信息

检查点触发条件:

在日志切换的时候(自动切换或手动切换)

数据库用immediate ,transaction ,normal选项shutdown数据库的时候

用户手动触发(alter system checkpoint)

alter tablespace tablespace_name begin | end bakcup

alter tablespace tablespace_name offline

alter database datafile '

alter tablespace | datafile read only

select name,CHECKPOINT_CHANGE# from v$datafile;从控制文件中查看CKPT号

select name,CHECKPOINT_CHANGE# from v$datafile_header;从数据文件头部文件查看CKPT号

以控制文件中的CKPT检查点号为准!所有数据文件头部中记录的CKPT号都必须与他相同,如个别不同,则代表个别文件损坏。则数据库有可能启不来!

实例恢复前滚:从最后一次发生检查点的位置往下

SMON进程进行实例恢复时,会从控制文件中获得检查点位置。于是,SMON进程到联机日志文件中,找到该检查点位置,然后从该检查点位置开始往下,应用所有的重做条目,从而在buffer cache里又恢复了实例崩溃那个时间点的状态。这个过程叫做前滚,前滚完毕以后,buffer cache里既有崩溃时已经提交还没有写入数据文件的脏数据块,也还有事务被突然终止,而导致的既没有提交又没有回滚的事务所弄脏的数据块

回滚:

前滚一旦完毕,SMON进程立即打开数据库。但是,这时的数据库中还含有那些中间状态的、既没有提交又没有回滚的脏块,这种脏块是不能存在于数据库中的,因为它们并没有被提交,必须被回滚。打开数据库以后,SMON进程会在后台进行回滚。

有时,数据库打开以后,SMON进程还没来得及回滚这些中间状态的数据块时,就有用户进程发出读取这些数据块的请求。这时,服务器进程在将这些块返回给用户之前,由服务器进程负责进行回滚,回滚完毕后,将数据块的内容返回给用户。

select * from v$fast_start_servers;

select * from v$fast_start_transactions;

查看正在回滚的内容和事务

show parameter fast_start_mtty_target #设置回滚时间,指定多长时间完成实例恢复

recovery_parallelism    ##参数设置前滚并行参数

fast_start_parallel_rollback    ##设置回滚并行参数(FALSE NONE;LOW 2*CPU_COUNT;HIGH 4*CPU_COUNT)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值