上回讲到,不理解为什么需要resetlog。其实现在的认识是,不理解自己为什么当时不理解?!呵呵,这就是辩证法中的认识的上升。
好了,其实要讨论resetlog的问题,首先要知道两个东西:
1. SCN -- System Change Number。其实就是一个序列计数器,由此可以精确地确定数据库中的具体时刻。据说,是最精确的方法了。可以通过如下语句查询:
SELECT CURRENT_SCN FROM V$DATABASE;
OR:
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
2. INCARNATION -- 就是数据库的化身。
当恢复了Controlfile和数据库后,很显然,恢复点的SCN和恢复前的SCN是不尽相同的。而对一个数据库而言,是不允许SCN的不连续的。所以必然要发生的情况是需要让当前的SCN和恢复点的SCN一致。这个一致的过程,就是resetlog的过程。
其二,每当resetlog发生,对于数据库而言,就是一个新的(INCARNATION)化身的诞生。而恢复点之前的,将会成为Parent Incarnation。
其三,每当Resetlog,Archived Log的编号会回滚到1,开始重新计算。
好了,今天到此。明天继续。。。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23246931/viewspace-627293/
,如需转载,请注明出处,否则将追究法律责任。