? ? ? ? FUZYY表示模糊性,意思是,该数据文件处于模糊状态,在最近一次CHECKPOINT后,该文件上的数据可能被修改过了,但没来得及更新到该文件上(或者该文件不知道),需要读取日志信息来判断。
SQL> select file#,checkpoint_change#,last_change# from v$datafile;
? ? FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------------------ ------------
? ? ? ? 1? ? ? ? ? ? 1165820
? ? ? ? 2? ? ? ? ? ? 1165820
? ? ? ? 3? ? ? ? ? ? 1165820
? ? ? ? 4? ? ? ? ? ? 1165820
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area? 313860096 bytes
Fixed Size? ? ? ? ? ? ? ? ? 1384352 bytes
Variable Size? ? ? ? ? ? 155189344 bytes
Database Buffers? ? ? ? ? 150994944 bytes
Redo Buffers? ? ? ? ? ? ? ? 6291456 bytes
数据库装载完毕。
SQL> select file#,checkpoint_change#,fuzzy from v$datafile_header;
? ? FILE# CHECKPOINT_CHANGE# FUZ
---------- ------------------ ---
? ? ? ? 1? ? ? ? ? ? 1166324 NO
? ? ? ? 2? ? ? ? ? ? 1166324 NO
? ? ? ? 3? ? ? ? ? ? 1166324 NO
? ? ? ? 4? ? ? ? ? ? 1166324 NO
? ? ? ? 在正常管理数据库的情况下,FUZZY字段都应该是NO,表示没有模糊不清的SCN存储在数据文件中。
SQL> select file#,checkpoint_change#,last_change# from v$datafile;
? ? FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------------------ ------------
? ? ? ? 1? ? ? ? ? ? 1166324? ? ? 1166324
? ? ? ? 2? ? ? ? ? ? 1166324? ? ? 1166324
? ? ? ? 3? ? ? ? ? ? 1166324? ? ? 1166324
? ? ? ? 4? ? ? ? ? ? 1166324? ? ? 1166324
? ? ? ? 正常关闭数据库的终止SCN应该和启动SCN相同。FUZZY等于NO,且数据库的终止SCN等于启动SCN等于数据文件SCN,那么可以认为数据库是正常关闭,且在打开数据库之前不需要执行实例恢复或Crash恢复。
SQL> alter database open;
数据库已更改。
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area? 313860096 bytes
Fixed Size? ? ? ? ? ? ? ? ? 1384352 bytes
Variable Size? ? ? ? ? ? 155189344 bytes
Database Buffers? ? ? ? ? 150994944 bytes
Redo Buffers? ? ? ? ? ? ? ? 6291456 bytes
数据库装载完毕。
SQL> select file#,checkpoint_change#,fuzzy from v$datafile_header;
? ? FILE# CHECKPOINT_CHANGE# FUZ
---------- ------------------ ---
? ? ? ? 1? ? ? ? ? ? 1166327 YES
? ? ? ? 2? ? ? ? ? ? 1166327 YES
? ? ? ? 3? ? ? ? ? ? 1166327 YES
? ? ? ? 4? ? ? ? ? ? 1166327 YES
? ? ? ? 非正常关闭数据库实例,FUZZY字段的值是YES。
SQL> select file#,checkpoint_change#,last_change# from v$datafile;
? ? FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------------------ ------------
? ? ? ? 1? ? ? ? ? ? 1166327
? ? ? ? 2? ? ? ? ? ? 1166327
? ? ? ? 3? ? ? ? ? ? 1166327
? ? ? ? 4? ? ? ? ? ? 1166327
? ? ? ? 非正常关闭数据库实例,终止SCN依然为空。那么,在数据库被打开之前必须使用归档Redo日志完成实例恢复或Crash恢复。
五.结论:
非正常关闭的当前日志丢失,可能导致数据库启动后的混乱,并可能造成少量数据的丢失。其他情况不会导致数据的丢失。