小弟刚毕业,正在做初级java工程师的实习期。领导让我多了解一些关于Oracle的知识,刚看到SCN的一些内容,云里雾里的,只知道数据库中SCN无处不在,常见的事务表、控制文件、数据文件头、日志文件、数据块头等。但是这些SCN到底有什么意义呢?求大神们指点小弟一下以免多走弯路。

解决方案 »

  1.   


    初学者不建议搞的这么深入,先掌握搞基本的知识,掌握常见的概念和操作。 知道什么是SCN 就可以了。深入研究这种概念,不适合初学者。 
      

  2.   

    恩我就想多了解一些基本概念,想知道SCN的应用范畴。在备份和恢复的过程中应该是有用的这个东西。
      

  3.   

    感觉就像个时钟,把数据库看成一个人,今天早上起床了 敲一下SCN 就是8:10分就是个SCN但是敲下来有什么用不知道个人理解纯属扯淡希望大神指导纠正。
      

  4.   

    最直接的,保持数据一致性,
    oracle要管理这么多数据,得最起码有个红绿灯大家遵守,另外还要负责备份恢复,这就必须要能够控制时间点做时光倒流等
      

  5.   

    这个数据一致性能理解,SCN是一个时间点 能够让数据库崩溃的时候 回滚到某个时间点再前滚到数据库崩溃的时间点,那还有其他的用处吗
      

  6.   

    启动库的时候要让数据文件,数据文件头部,和控制文件中的database中的SCN号一样才能开库 
    还有在恢复数据库的时候也要对SCN号进行比较,主要是不完全恢复是不同的时间,就是他们SCN号不一致,用recover命令让三个文件中的SCN号一致才能完成恢复,并且开库。
      

  7.   

    1 启动库的时候要让数据文件,数据文件头部,和控制文件中的database中的SCN号一样才能开库 
    是不是
    SQL> alter session set events 'immediate trace name CONTROLF level 12';
    转储下来的控制文件中database的SCN号和
    SQL > alter session set events ‘immediate trace namefile_hdrs level 12’;
    转储下来的数据文件头中的SCN号一致才能开库
    这里的数据文件SCN如何查找2 恢复数据库的时候也要对SCN号进行比较,主要是不完全恢复是不同的时间,就是他们SCN号不一致,用recover命令让三个文件中的SCN号一致才能完成恢复,并且开库。 
    3个文件是指哪3个呢?
      

  8.   

    select checkpoint_change# from v$database;
    select checkpoint_change# from v$datafile;
    select checkpoint_change# from v$datafile_header;