eygle.com   eygle.com
eygle.com  
 

« 当Oracle9i的OPTIMIZER_MODE = FIRST_ROWS时EXP过慢的解决方法 | Blog首页 | 对referrers.cgi(反向链接)的一点调整 »

数据文件SCN的一致性问题

作者:eygle |【转载时请务必以超链接形式标明文章和作者信息及本声明
链接:
回答几个留言板上的问题:
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#
---------- ------------------
         1          546198149
         2          546198149
         3          546198149

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#
---------- ------------------
         1          546198149
         2          546198149
         3          546198153

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#
---------- ------------------
         1          546198149
         2          546198149
         3          546198162

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不需要。
实验结果是最好的明证。
-----
这篇 【数据文件SCN的一致性问题】来自 www.eygle.com | CSDN技术网摘| del.icio.us|365Key

By eygle on 2005-08-06 23:28 | Comments (6) | Posted to Backup&Recovery | Edit |Pageviews:

相关文章 随机文章
  • Oracle Wait Event:Data file init write
  • DMT之后SMON还需要coalesce么?
  • Oracle中数据文件大小的限制
  • Oracle10g的current_scn是如何计算的?
  • Oracle10g中SCN与TimeStamp的相互转换
  • 2007 年终总结-从热点排行看世界
    《深入浅出Oracle》技术交流会PPT下载
    扩展Oracle10gR2 ASM磁盘空间
    又是一年放榜时
    数据仓库的概念[摘录]
    网上相关主题:
    Google

    留言 (6)

    对于数据文件的offline我补充一点吧,如果是单纯的offline datafile,那么将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。

    Posted by: wanghai at August 8, 2005 6:26 PM

    恩,这个确实是我没写清楚,修正过来。

    Posted by: eygle at August 8, 2005 6:36 PM

    有个问题,想请教一下啊?
    对于第二点:我的理解也是这样的,但现在看到一个问题
    2.表空间online时,Oracle会取得当前SCN,解冻offline文件SCN,和当前SCN同步。
    SQL> alter tablespace users online;

    Tablespace altered.

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

    FILE# CHECKPOINT_CHANGE#
    ---------- ------------------
    1 546198149
    2 546198149
    3 546198162

    SQL>
    SQL> select dbms_flashback.get_system_change_number from dual;

    GET_SYSTEM_CHANGE_NUMBER
    ------------------------
    546198178

    这两个所看到的并不一致啊?

    Posted by: Anonymous at March 17, 2006 3:08 PM

    数据库的SCN会不停变化的,GET_SYSTEM_CHANGE_NUMBER获得的是当前SCN,会高于数据文件的SCN的.

    Posted by: eygle at March 17, 2006 3:13 PM

    我对通过dbms_flashback.get_system_change_number 是不断的变化,并没有像eygle大师那样说的情况。。

    但是select file#,checkpoint_change# from v$datafile

    是offline然后online之后就可以了。。

    Posted by: Hopewell_Go at September 26, 2007 11:51 AM

    Hopewell_Go 说的是什么意思啊?我没大看明白

    Posted by: Julia at September 26, 2007 9:02 PM

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004 eygle.com, All rights reserved.