1、数据库正常运行中,所有数据文件的SCN都是一致的吗?
2、将一数据文件offline后,再将其online时,这个数据文件的SCN会前提吗?假如是,前提到的SCN是怎么确定的?
1.数据库正常运行时,所有数据文件的SCN不一定一致。
问题在这个所有上,比如Offline表空间,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。
2.表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。
简单的实验就可以清晰地看到这些变化:
SQL> set echo on
SQL> @a
SQL> alter system checkpoint.
System altered.
SQL> 0select file#,checkpoint_change# from v$datafile.
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 546198149
2 546198149
3 546198149
SQL> 0select dbms_flashback.get_system_change_number from dual.
GET_SYSTEM_CHANGE_NUMBER
------------------------
546198149
SQL> alter tablespace users offline.
Tablespace altered.
SQL> 0select file#,checkpoint_change# from v$datafile.
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 546198149
2 546198149
3 546198153
SQL> 0select dbms_flashback.get_system_change_number from dual.
GET_SYSTEM_CHANGE_NUMBER
------------------------
546198159
SQL> alter tablespace users online.
Tablespace altered.
SQL> 0select file#,checkpoint_change# from v$datafile.
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 546198149
2 546198149
3 546198162
SQL>
SQL> 0select dbms_flashback.get_system_change_number from dual.
GET_SYSTEM_CHANGE_NUMBER
------------------------
546198178
如果是单纯的offline datafile,那么将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。
实验结果是最好的明证。
相关文章
Qmail如何使一个用户能使用多个域
对Oracle自己的Web运营所进行的幕后观察
在非归档模式下如何更改数据文件位置
DBA如何以别人的身份注册数据库
数据文件SCN的一致性问题
应用技术:数据库登录说明
关于Oracle数据库的启动和停止
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛