数据文件SCN的一致性问题

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

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 select file#,checkpoint_change# from v$datafile;

FILE#CHECKPOINT_CHANGE#

---------- ------------------

1546198149

2546198149

3546198149

SQL select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

546198149

SQL alter tablespace users offline;

Tablespace altered.

SQL select file#,checkpoint_change# from v$datafile;

FILE#CHECKPOINT_CHANGE#

---------- ------------------

1546198149

2546198149

3546198153

SQL select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

546198159

SQL alter tablespace users online;

Tablespace altered.

SQL select file#,checkpoint_change# from v$datafile;

FILE#CHECKPOINT_CHANGE#

---------- ------------------

1546198149

2546198149

3546198162

SQL

SQL select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

546198178

假如是单纯的offline datafile,那么将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。

实验结果是最好的明证。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有