使数据文件脱机有两种办法,
1) alter tablespace tablespace_name offline;
2) alter database datafile number|完整路径名 offline;
注:只有在处于archived log状态下才能用ALTER DATABASE offline的方式。
1, 表空间offline的方式
表空间Offline时,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生局部检查点,使单个数据文件SCN和数据库其他问题不一致。
注:这里是局部检查点还是文件检查点oracle文档上也没有说
SQL> alter tablespace test offline;
表空间已更改。
SQL> selectdbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
157370738
SQL> select file#,CHECKPOINT_CHANGE#from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 157367480
2 157367480
3 157367480
4 157367480
5 157367480
6 157370623
7 157367480
已选择7行。
注意:第6号数据文件的scn号。
SQL> alter tablespace test online;
表空间已更改。
SQL> select file#,CHECKPOINT_CHANGE#from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 157367480
2 157367480
3 157367480
4 157367480
5 157367480
6 157370879
7 157367480
注意:第6号数据文件的scn有又继续升高,当发生检查点后就相同了。
SQL> alter system checkpoint;
系统已更改。
SQL> select file#,CHECKPOINT_CHANGE#from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 157371381
2 157371381
3 157371381
4 157371381
5 157371381
6 157371381
7 157371381
已选择7行。
2, 数据文件的offline的方式
单纯的offline datafile,将不会触发文件检查点,只有针对offline tablespace的时候才会触发文件检查点,这也是为什么online datafile需要media recovery而online tablespace不需要。
SQL> alter database datafile 6 offline;
数据库已更改。
SQL> select file#,CHECKPOINT_CHANGE#from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 157371381
2 157371381
3 157371381
4 157371381
5 157371381
6 157371381
7 157371381
已选择7行。
注意:所有的scn号就停留在这一刻了
SQL> alter database datafile 6 online;
alter database datafile 6 online
第 1 行出现错误:
ORA-01113: 文件 6 需要介质恢复
ORA-01110: 数据文件 6:'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ZXNTAGL\TEST.DBF'
SQL> recovery datafile 6;
SP2-0734: 未知的命令开头"recovery d..." - 忽略了剩余的行。
SQL> recover datafile 6;
完成介质恢复。
SQL> alter database datafile 6 online;
数据库已更改。
SQL> select file#,CHECKPOINT_CHANGE#from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 157371381
2 157371381
3 157371381
4 157371381
5 157371381
6 157371706
7 157371381
已选择7行。