ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 藏记offline和offline drop

藏记offline和offline drop

原创 Linux操作系统 作者:yyp2009 时间:2011-05-24 19:38:56 0 删除 编辑
、对一个datafile执行offline或offline drop本质上是一回事,但对一个datafile执行offline只能在归档模式下;而对一个datafile执行offline drop则既可以在归档模式也可以在非归档模式下;

 

2、对一个datafile无论是执行offline还是offline drop,都是只改写了control文件,不会更新file$和ts$,这就是为什么可以在mount状态下对某个datafile执行offline/offline drop的本质原因

 

3、只有当对datafile所在的表空间执行offline normal的时候,才会既改写control文件,又更新ts$seg$oracle这里会把ts$online$字段的值由1改为2,但依然不会去更新file$

 

4、只有当对datafile所在的表空间执行drop操作的时候,oracle才会去更新ts$file$oracle这里会把ts$online$字段的值由1改为3,会把file$status$字段由2改为1

注意,无论是file$file#还是ts$ts#,它们都是连续的!并且oracle会重用file$file#,但是不会重用ts$里的ts#,这本质上是因为ts$里会记录tablespace的名字,而file$里并没有记录datafile的名字,所以file$里的记录可以重用而ts$则不能

 

5、只要你对一个datafile执行了offline或者offline drop操作,则oracleopen的时候就不会去存储上(无论是文件系统、裸设备还是ASM)校验这个文件了,所以即使这个文件已经在存储上被删掉了,此时库依然可以open

 

6、无论你是在归档模式还是在非归档模式,且无论你对某个datafile是执行了offline还是offline drop操作,只要归档日志还在(对应于归档模式)或者相关的online redo log没有被logfile switch覆盖(对应于非归档模式),则这个datafile始终是可以online的,里面的数据都还在。当然,即使归档日志不在了,online redo loglogfile switch覆盖了,这个datafile也是可以online的,只是里面的数据可能会不一致。

 

 

 

在对表空间进行offline时,oracle需要针对这个表空间生成检查点,刷新表空间中数据文件的相关事务,更新数据文件头SCN,数据文件SCN,文件终止SCN,达到一致状态,当表空间被再次ONLINE时,oracle会捕捉online时刻的SCN,更新上面各个位置的SCN(当然文件结束SCN号会置为无穷大),将数据文件都打开

在对单个数据文件做offline时,是立即offline,此时不会针对数据文件生成检查点,所以数据文件的终止SCN为无穷大,处于不一致状态,数据文件也需要recover,在v$recover_file视图也可以看到这个文件的信息,要想将数据文件online,必须先对文件执行recover操作,所以建议offline数据文件后应该立刻执行recover操作,使他处于一致状态,以免后面出现不必要的麻烦

对于非归档模式下进行数据文件offline操作需要接上drop子句,他不会物理删除文件的,在归档模式下指定drop子句会被Oracle忽略

另外对于offline的数据文件,正常重起是不能对他进行recover的,因为他的状态是offline,数据库启动时是不检查offline文件的SCN是否一致的,所以启动后你仍然可以在v$recover_file视图中看到他,需要手工对他进行recover才能恢复,如果应用的联机日志已经switch掉,则要从归档中进行恢复,没有归档的话,文件就只能一直处于recover状态

 
SQL>  alter tablespace users offline Normal;

表空间已更改。

SQL>  alter tablespace users online;

表空间已更改。

SQL> alter tablespace users offline immediate;

表空间已更改。

SQL>
SQL> alter tablespace users online;
alter tablespace users online
*
第 1 行出现错误:
ORA-01113: 文件 4 需要介质恢复
ORA-01110: 数据文件 4: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF'


SQL> recover tablespace users;
完成介质恢复。
SQL> alter tablespace users online;

表空间已更改。

SQL>
SQL> alter tablespace users offline Temporary;

表空间已更改。

SQL>  alter tablespace users online;

表空间已更改。


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

上一篇: explain
请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    330
  • 访问量
    1029086