ITPub博客

首页 > 数据库 > 数据库开发技术 > online/offline 表空间和数据文件需谨慎!

online/offline 表空间和数据文件需谨慎!

原创 数据库开发技术 作者:cccgw 时间:2009-10-15 10:15:44 0 删除 编辑

1、不要想把表空间备份,然后删除再restore回来。因为删除时控制文件里不再包含表空间的信息,RMAN备份信息放在控制文件的话,也一块儿没了。RMAN backup tablespace后,drop tablespace 无法再Restore回来,必须restore database(上一次的全备)。

2、10.2的alter tablespace drop datafile 不一定有效。已经alter database datafile 72 offline drop的,不能再用。

SQL> alter database datafile '/u01/oradata/t03.dbf' offline;

SQL> alter tablespace test drop datafile '/u01/oradata/t03.dbf';

alter tablespace test drop datafile '/u01/oradata/t03.dbf'

*

ERROR at line 1:

ORA-03264: cannot drop offline datafile of locally managed tablespace

且在DataGuard里要打完Patch才能用。见ningoo的这篇http://www.ningoo.net/html/category/database/page/3

3、如果表空间有offline的datafile,表空间不能置为readonly

4、把含offline datafile的表空间offline,表空间无法再online,除非有历史归档。

[@more@] Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

itpub上的一个案例:

http://www.itpub.net/viewthread.php?tid=1014590&extra=&page=1

表空间有4个文件,有3个有数据,有1个是没有数据的,很久以前是offline drop的。不小心按了表空间立即脱机,即alter tablespace test offline immediate.

sql>shutdown immediate;
sql>startup mount
sql>alter database datafile '/data/a001.dbf' online;
sql>alter database datafile '/data/a002.dbf' online;
sql>alter database datafile '/data/a003.dbf' online;

以上都没问题,但第4个文件就不行,提示要恢复

sql>recover datafile 121;

ORA-00289: suggestion : /arch/1_2123.dbf
ORA-00280: change 1974069278 for thread 1 is in sequence #2123


Specify log: {=suggested | filename | AUTO | CANCEL}
(这里不管选 什么都出错,因为根本就没有那个文件)

数据暂时可以正常启动,就是这个表空间的数据不能访问了。

分析:

主要是因为是用了offline immediate将表空间脱机,所以这样的脱机方式是不等Oracle对任何数据文件做检查。所以当Online时,当联机表空间时就必须需要介质恢复。否则就是脱机。

sql>alter database datafile 121 offline drop;

sql>alter tablespace a001 online;

*

ERROR at line 1:

ORA-01113: file 121 needs media recovery

ORA-01110: data file 121: '/data/b_001.dbf'

没有办法把tablespace online,先用dba_extents或dba_segments查表在哪个数据文件,然后用aul这样的工具抽取表数据吧,还有极端的方法就是通过bbed和dul修改该文件的scn号,使的在online时,oracle不恢复该数据文件。

Restrictions for Dropping Datafiles

The following are restrictions for dropping datafiles and tempfiles:

■ The database must be open.

■ If a datafile is not empty, it cannot be dropped

If you must remove a datafile that is not empty and that cannot be made empty by

dropping schema objects, you must drop the tablespace that contains the datafile.

■ You cannot drop the first or only datafile in a tablespace.

This means that DROP DATAFILE cannot be used with a bigfile tablespace.

■ You cannot drop datafiles in a read-only tablespace.

■ You cannot drop datafiles in the SYSTEM tablespace.

■ If a datafile in a locally managed tablespace is offline, it cannot be dropped.

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

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

注册时间:2012-08-27

  • 博文量
    82
  • 访问量
    1035049