本文共 2520 字,大约阅读时间需要 8 分钟。
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的这篇
3、如果表空间有offline的datafile,表空间不能置为readonly
4、把含offline datafile的表空间offline,表空间无法再online,除非有历史归档。
[@more@]Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4itpub上的一个案例:
表空间有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博客 ” ,链接:http://blog.itpub.net/668365/viewspace-1027874/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/668365/viewspace-1027874/