Oracle 10g表空间联机脱机跟检查点的关系(一)

2014-11-24 18:15:53 · 作者: · 浏览: 4

一般,归档下offline tablespace有3种方式:normal(默认),immediate,temporary


Normal会对该表空间所有文件执行检查点,会将对应的db_buffer中的脏数据写到数据文件中,online时不需要recover,只需要将当前的scn写到数据文件头即可;


Immediate 不会对该表空间执行检查点,立即脱机,不会转储任何脏数据。所以online的时候需要应用日志做recover。只有文件受到损坏以至没法完成检查点时,通常才这么做;


Temporary 介于normal跟immediate之间,能执行检查点的执行检查点,不能执行检查点的(如文件损坏)就立即脱机,当然online时也相应的需要恢复。

数据文件的offline相当于immediate方式,不写检查点,但online时需要recover



archive mode


1. tablespace offline: normal(默认)
SQL> select dbms_flashback.get_system_change_number from dual;


GET_SYSTEM_CHANGE_NUMBER
------------------------
493517


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


6 rows selected.


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


FILE# NAME STATUS CHECKPOINT_CHANGE#
---------- ---------------------------------------- ------- ------------------
1 C:\ORACLE\ORADATA\RC\SYSTEM01.DBF SYSTEM 493334
2 C:\ORACLE\ORADATA\RC\UNDOTBS01.DBF ONLINE 493334
3 C:\ORACLE\ORADATA\RC\SYSAUX01.DBF ONLINE 493334
4 C:\ORACLE\ORADATA\RC\USERS01.DBF ONLINE 493334
5 C:\ORACLE\ORADATA\RC\CQF01.DBF ONLINE 493334
6 C:\ORACLE\ORADATA\RC\CQF02.DBF ONLINE 493334


6 rows selected.


SQL> alter tablespace cqf offline normal;


Tablespace altered.


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


FILE# NAME STATUS CHECKPOINT_CHANGE#
---------- ---------------------------------------- ------- ------------------
1 C:\ORACLE\ORADATA\RC\SYSTEM01.DBF SYSTEM 493334
2 C:\ORACLE\ORADATA\RC\UNDOTBS01.DBF ONLINE 493334
3 C:\ORACLE\ORADATA\RC\SYSAUX01.DBF ONLINE 493334
4 C:\ORACLE\ORADATA\RC\USERS01.DBF ONLINE 493334
5 C:\ORACLE\ORADATA\RC\CQF01.DBF OFFLINE 493550
6 C:\ORACLE\ORADATA\RC\CQF02.DBF OFFLINE 493550


6 rows selected.


SQL> alter tablespace cqf online;


Tablespace altered.


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


FILE# NAME STATUS CHECKPOINT_CHANGE#
---------- ---------------------------------------- ------- ------------------
1 C:\ORACLE\ORADATA\RC\SYSTEM01.DBF SYSTEM 493334
2 C:\ORACLE\ORADATA\RC\UNDOTBS01.DBF ONLINE 493334
3 C:\ORACLE\ORADATA\RC\SYSAUX01.DBF ONLINE 493334
4 C:\ORACLE\ORADATA\RC\USERS01.DBF ONLINE 493334
5 C:\ORACLE\ORADATA\RC\CQF01.DBF ONLINE 493623
6 C:\ORACLE\ORADATA\RC\CQF02.DBF ONLINE 493623


6 rows selected.


SQL> select dbms_flashback.get_system_change_number from dual;


GET_SYSTEM_CHANGE_NUMBER
------------------------
493647


2. tablespace offline: immediate
SQL> alter tablespace cqf offline immediate;


Tablespace altered.


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


FILE# N