最近看材料看到了表空间和数据文件脱机的问题,查看了许多网上的资料,整理了一下。
当时在数据库中想将USERS表空间脱机
(alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' offline),但是报了ORA-01145: offline immediate disallowed unless media recovery enabled 错误。后来才发现,要想对数据文件脱机,必须在归档模式下,这是ORACLE自动保护的一种措施,防止在非归档模式下对数据文件脱机,造成数据丢失。
解决办法:
可以在非归档模式下,使用alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' offline for drop;语句将数据文件脱机,drop并不会删除物理文件。如果没有使用alter system switch logfile;切换日志文件组,那么可以采用recover datafile name;来恢复,并联机。如果已切换日志文件组并清空了里面的内容,这个数据文件就不能再恢复联机,永远处于recover状态(可以通过v$datafile视图查看).
所以如果在实际的生产环境中,尽量在归档模式下做脱机数据文件操作。