ITPub博客

首页 > 数据库 > Oracle > 数据库一致性关闭与非一致性关闭的一些问题

数据库一致性关闭与非一致性关闭的一些问题

原创 Oracle 作者:wenjunheyixiao 时间:2016-08-04 11:41:05 0 删除 编辑

 1        


SQL> select  FILE#, CHECKPOINT_CHANGE# from v$datafile;---------控制文件里记录的数据文件的scn


     FILE# CHECKPOINT_CHANGE#

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

         1            1133266

         2            1133266

         3            1133266

         4            1133266

         5            1133266

         6            1133266


6 rows selected.


SQL> select  FILE#, CHECKPOINT_CHANGE# from v$datafile_header;---------------数据文件里记录的数据文件头的scn


     FILE# CHECKPOINT_CHANGE#

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

         1            1133266

         2            1133266

         3            1133266

         4            1133266

         5            1133266

         6            1133266


6 rows selected.

2

SQL> select CURRENT_SCN from v$database;-----------当前数据库的scn

CURRENT_SCN

-----------

          0

SQL> select CHECKPOINT_CHANGE# from v$database;---------------控制文件的scn


CHECKPOINT_CHANGE#

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

           1133266


3

一致性关闭数据库的状态下

SQL> select FILE#,CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;


     FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

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

         1            1133266      1133266

         2            1133266      1133266

         3            1133266      1133266

         4            1133266      1133266

         5            1133266      1133266

         6            1133266      1133266


6 rows selected.

由此可以发现CHECKPOINT_CHANGE# LAST_CHANGE#scn号是一样的;


非一致性关闭数据库的状态下;

SQL>  select FILE#,CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;


     FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

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

         1            1133734

         2            1133734

         3            1133734

         4            1133734

         5            1133734

         6            1133734


6 rows selected.

由此可以看出CHECKPOINT_CHANGE#LAST_CHANGE#scn号是不一样的。所以此时要正常关闭数据库重新启动,然后再查看发现他们的scn号一样了

SQL> alter database open;


Database altered.


SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.


Total System Global Area  830930944 bytes

Fixed Size                  2257800 bytes

Variable Size             536874104 bytes

Database Buffers          285212672 bytes

Redo Buffers                6586368 bytes

Database mounted.

SQL> select FILE#,CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;


     FILE# CHECKPOINT_CHANGE# LAST_CHANGE#

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

         1            1154340      1154340

         2            1154340      1154340

         3            1154340      1154340

         4            1154340      1154340

         5            1154340      1154340

         6            1154340      1154340


6 rows selected.


4

SQL>  select  GROUP#,FIRST_CHANGE#,NEXT_CHANGE#  from v$log;


    GROUP# FIRST_CHANGE# NEXT_CHANGE#

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

         1       1154682      1154685

         2       1154685      1154689

         3       1154689   2.8147E+14


SQL> alter system switch logfile;


System altered.


SQL> select  GROUP#,FIRST_CHANGE#,NEXT_CHANGE#  from v$log;


    GROUP# FIRST_CHANGE# NEXT_CHANGE#

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

         1       1154699   2.8147E+14

         2       1154685      1154689

         3       1154689      1154699


由此可以发现下一个 FIRST_CHANGE#scn号是上一个 NEXT_CHANGE#scn号。

5


SQL> select current_scn from v$database;


CURRENT_SCN

-----------

    1154858


SQL>

SQL> select  FILE#, CHECKPOINT_CHANGE# from v$datafile;


     FILE# CHECKPOINT_CHANGE#

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

         1            1154699

         2            1154699

         3            1154699

         4            1154699

         5            1154699

         6            1154699


6 rows selected.


SQL>  select  FILE#, CHECKPOINT_CHANGE# from v$datafile_header;


     FILE# CHECKPOINT_CHANGE#

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

         1            1154699

         2            1154699

         3            1154699

         4            1154699

         5            1154699

         6            1154699


6 rows selected.

由此可以发现数据库当前的scn号比控制文件中记录的数据文件的scn号和数据文件里记录的数据文件头部的scn号都大。

注:current日志组必须大于或者等于控制文件中记录的数据文件的scn号和数据文件里记录的数据文件头部的scn



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30606702/viewspace-2122965/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-12-02

  • 博文量
    117
  • 访问量
    161253