Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1787291
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:22:02


  1、数据库正常运行中,所有数据文件的SCN都是一致的吗?
  
  2、将一数据文件offline后,再将其online时,这个数据文件的SCN会前提吗?假如是,前提到的SCN是怎么确定的?
  
  1.数据库正常运行时,所有数据文件的SCN不一定一致。
  
  问题在这个所有上,比如Offline表空间,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使单个数据文件SCN和数据库其他问题不一致。
  
  2.表空间online时,会取得当前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不需要。
  
  实验结果是最好的明证。
【责编:admin】

--------------------next---------------------

阅读(210) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~