我是 Oracle 的新手。我使用以下方法从我的数据库中删除了一些用户:
DROP USER username cascade;
Run Code Online (Sandbox Code Playgroud)
问题是该.dbf
文件仍然存在于$ORACLE_HOME/dbs/oradata/
目录中,这造成了磁盘空间问题。
我可以直接或通过其他一些进程删除未使用的文件吗?.trc
文件的大小也增加到 16 GB。我怎样才能清理它?
我可以直接删除这些文件,但不确定它是否会导致任何我不想要的启动或配置问题。
只是我关心的是摆脱上述不需要的文件的磁盘空间问题。
数据文件分配给表空间,而不是用户。删除用户将从表空间中删除表等,但不影响底层存储。
不要直接从文件系统中删除 dbf 文件,你会让你的数据库变得一团糟。要删除它们,请使用以下语句查找文件属于哪个表空间:
select tablespace_name
from dba_data_files
where file_name = <file name with full path>;
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过删除表空间来删除文件:
drop tablespace <tablespace_name> including contents and datafiles;
Run Code Online (Sandbox Code Playgroud)
在执行此操作之前,您应该确认没有任何对象仍然分配给其他用户的表空间。您可以通过运行找到它:
select * from dba_segments
where tablespace_name = <tablespace to drop>;
Run Code Online (Sandbox Code Playgroud)
如果这返回任何内容,如果您想在删除表空间之前保留它们,请将对象移动到另一个表空间。