我试过单独删除数据文件,但是我收到了这个错误。
SQL> alter tablespace USERS drop datafile '/u01/app/oracle/oradata/orcl/users01.dbf';
alter tablespace USERS drop datafile '/u01/app/oracle/oradata/orcl/users01.dbf'
*
ERROR at line 1:
ORA-03261: the tablespace USERS has only one file
我还尝试使表空间脱机并删除整个表空间,但这也不起作用。
SQL> drop tablespace users including contents and datafiles;
drop tablespace users including contents and datafiles
*
ERROR at line 1:
ORA-12919: Can not drop the default permanent tablespace
编辑:这是一个用于模拟我将要恢复的数据文件失败的分配。我会手动删除它但分配要求我使用SQL。
答案 0 :(得分:4)
由于USERS是默认表空间,因此您不能删除任何数据文件,并且会收到错误ORA-12919。 解决方案是创建另一个表空间,然后更改默认表空间:
position: relative;
现在您可以删除USERS:
SQL> CREATE TABLESPACE USERS_TEMP DATAFILE '/u01/app/oracle/oradata/orcl/users_temp_01.dbf' size 10M AUTOEXTEND ON;
SQL>alter database default tablespace USERS_TEMP;
要删除位于“app \ Ora11gHome \ oradata \ someName”上的数据文件,必须关闭数据库服务。打开Oracle Administration Assistant并停止服务,现在可以删除该文件。
答案 1 :(得分:2)
如果您只想删除数据文件以模拟硬件故障,那么您只需将其从计算机中删除即可。
您可以使用简单的查询知道数据文件的存储位置:
select name
from V$DATAFILE;
这将提供所有数据文件的路径。
编辑:要模拟更酷的系统故障以确保您的备份脚本或您正在测试的任何内容正常工作,您还可能损坏数据(打开文件并写一些随机的乱码在它)