首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用SQL删除Oracle中的用户数据文件?

如何使用SQL删除Oracle中的用户数据文件?
EN

Stack Overflow用户
提问于 2015-01-29 22:30:17
回答 2查看 7.8K关注 0票数 0

我已经尝试了放弃数据文件本身,但我得到了这个错误。

代码语言:javascript
运行
复制
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

我也尝试过让表空间离线并删除整个表空间,但这也不起作用。

代码语言:javascript
运行
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-29 22:53:05

如果您只想删除数据文件来模拟硬件故障,那么您可以简单地从机器中删除它们。

您可以使用一个简单的查询知道数据文件存储在哪里:

代码语言:javascript
运行
复制
select name
from V$DATAFILE;

这将为所有数据文件提供路径。

编辑:来模拟一个更酷的系统故障,以确保您的备份脚本或您正在测试的任何东西都能正常工作,您还可以破坏数据(打开一个文件并在其中编写一些随意的胡言乱语)

票数 2
EN

Stack Overflow用户

发布于 2016-08-29 00:12:25

因为用户是默认的表空间,所以不能删除它的任何数据文件并得到错误ORA-12919。解决方案是创建另一个表空间,然后更改默认表空间:

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;

现在您可以删除用户:

SQL>DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;

若要删除位于“app\Ora11gHome\oradata”上的数据文件,必须关闭数据库服务。打开Oracle管理助理并停止服务,现在可以删除该文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28225903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档