近日在搞rman备份恢复的实验,因为在虚拟机建立一个rman表空间,但是发现磁盘空间不够大,所以删除了,导致数据库启动不了了,解决办法如下:
1.误删rman表空间
SQL> ! rm -f /opt/oracle/oradata/rman.dbf;
2.连接oracle并启动
SQL> startup;
3.查询oracle启动状态
SQL> select status from v$instance;
STATUS
------------
MOUNTED
4.执行drop
SQL> alter database datafile '/opt/oracle/oradata/rman.dbf' offline drop;
Database altered.
5.从mount状态启动到open状态
SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
6.级联删除表空间
SQL> drop tablespace rman including contents;
Tablespace dropped.
7.查询表空间,数据文件,发现已成功删除
SQL> select tablespace_name,file_name from dba_data_files;
8.删除该表空间的用户,并级联收回权限
SQL> drop user rman cascade;
OK,一切搞定,数据库恢复正常