offline temporary
如果表空间的所属数据文件中有offline的数据文件(off1)和online的数据文件(off2),offline
temporary 会offline
那个online的数据文件(off2),并对这个文件进行checkpoint,而那个已经offline的数据文件(off1)则不去checkpoint,因此online表空间的时候,需要去recover
那个之前已经offline的数据文件(off1),而那个后offline的数据文件(off2)不需要recover
--创建表空间t_offline,包含两个文件off1,off2
SQL> create tablespace t_offline datafile
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\off1.dbf' size
10M,'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\off2.dbf' size
10M;
--offline off1 数据文件
SYS@ sun>ALTER DATABASE DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\off1.dbf' OFFLINE;
数据库已更改。
SYS@ sun>ALTER TABLESPACE T_OFFLINE OFFLINE
TEMPORARY; --offline 表空间
表空间已更改。
SYS@ sun>ALTER TABLESPACE T_OFFLINE
ONLINE; --online 表空间,发现off1数据文件需要恢复
ALTER TABLESPACE T_OFFLINE ONLINE
*
第 1 行出现错误:
ORA-01113: 文件 9 需要介质恢复
ORA-01110: 数据文件 9:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\OFF1.DBF'
SYS@ sun>RECOVER DATAFILE 9; --恢复off1 数据文件
完成介质恢复。
SYS@ sun>ALTER TABLESPACE T_OFFLINE
ONLINE; --online成功,说明off2数据文件不需要恢复
表空间已更改。
SYS@ sun>
--那如果在这种情况下
如果表空间的所属数据文件中有offline的数据文件(off1)和online的数据文件(off2),是否可以offline
normal呢?
SYS@ sun>ALTER DATABASE DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\off1.dbf' OFFLINE;
数据库已更改。
SYS@ sun>alter tablespace t_offline
offline; --无法offline normal
alter tablespace t_offline offline
*
第 1 行出现错误:
ORA-01191: 文件 9 已脱机 - 无法进行正常脱机
ORA-01110: 数据文件 9:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUN\OFF1.DBF'