resetlogs做的几件事

1、
我们先了解 一下归档的格式:%t_%s_%r.arc
%t:
thread号,就是进程号,如果你是单实例那么就是1,如果是多实例数据库,有多少个实例就
依次排(1,2,3...)
%s:
日志序列号,也叫log sequence number。每次resetlogs之后,就会变为1,从1开始没生成一个归档
就加1.
%r:
叫做incarnation号,不同的incremental他的incremental号不一样,同一个incremental的incremental
号一样,我们下面会用归档的格式来证明。
注意:
想知道什么叫incarnation,可以去查查资料或者文档,有详细的解释。

2、
resetlogs做的几件事:
(1)
当每次以resetlogs的方式打开数据库的时候,归档日志的序列号就会变为1。
(2)
当联机日志不存在的时候,用resetlogs的方式打开数据库会自动将联机日志重建出来,
回想一下我们在非归档的情况下恢复数据库的时候就用的了这个特点。
(3)
更新控制文件里面的信息
(4)
截断scn号,将数据文件、联机日志文件以及所有归档归档日志都以新的scn号开始。

3、
证明:
我做了一个不完全恢复,并用alter database open resetlogs的方式打开了数据库。
(1)
这是我上个实验刚刚做的不完全恢复。
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;
(2)
去查看归档的信息
[root@RAC1 arch]# ll
-rw-r----- 1 oracle oinstall 3174400 Nov 27 19:03 1_1_832583518.arc
(3)
我们以resetlogs的方式打开了数据库之后,切换日志看看
SQL> alter system switch logfile;
System altered.
(4)
查看归档:
[root@RAC1 arch]# ls -al
total 6780
drwxr-xr-x  2 oracle oinstall    4096 Nov 27 20:19 .
drwxr-xr-x 29 root   root        4096 Nov 27 12:36 ..
-rw-r-----  1 oracle oinstall 3174400 Nov 27 19:03 1_1_832583518.arc
-rw-r-----  1 oracle oinstall 3746816 Nov 27 20:19 1_1_832618997.arc
注意:
看这两个文件就不一样了。每个文件的第一个是thread号为1因为是单实例,第二个是日志序列号被设置为1了,
第三个就是incremental号,因为resetlogs了,所以与上一个归档不一样。
如果想证明log sequence是递增的,只需再次切换日志就可以看到,自己证明。
(5)
我们可以发现其实1_1_832583518.arc这个是没有用的,其实如果是生产数据库,跟这个832583518类似
的归档都是没用的,因为数据库已经重置了。可用的归档是跟这个832618997incremental号相同的归档,
所以我们完全可以删掉那个无效的归档,因为那个归档中存放的数据已经没用了。
[root@RAC1 arch]# rm -rf 1_1_832583518.arc

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29107230/viewspace-1062467/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29107230/viewspace-1062467/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值