本地创建数据库的表空间过大,磁盘空间不足,需要删除用户和表空间后进行重建:
首先导入每个用户下的对象和对应的数据:
exp 用户名/用户密码@实例名file= E:\xxx.dmp
使用exp命令导出的文件中,如果表为空表,则不会导出,所以最终重新导入后,会缺表。
所有需要首先在PLSQL>tools下,导出所有的用户对象,创建时,也首先创建用户用户,然后再导入数据,会避免少表的问题。
删除用户 DROP USER XXX CASCADE ; DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES; 本地有有三个用户,其中一个删除时报错,另外两个正常,报错信息为,无法删除当前连接的用户。如图:
处理步骤如下:
先查询对应的会话ID
Select username ,sid ,serial# from v$session;
然后找到想要删除的用户:
Alter system kill session ‘92,225’;
再次执行用户删除命令,可以成功执行:
删除掉对应的表空间后,数据库的根目录只减少了一半,仍有10多G,此时只能卸载重装。
本机为win10,在搜索框中输入universal Installer ,找到oracle的卸载程序,进入删除产品页面:
执行,报错,提示需要到对应的目录下执行删除功能:
找到11g对应的deinstall.bat 脚本,执行,中间会有询问,一直回车:
运行完后,执行手动删除app根目录,卸载完成。
重新安装数据库,并创建用户,导入数据:
需要首先看导入的用户对象中,用到的表空间是否是系统表空间,如果不是系统表空间,需要首先创建表空间后,再用PLSQL的command 界面执行sql文件。
创建表空间:
create tablespace tablespace_name logging datafile 'D:\app\Administrator\oradata\实例名\tablespace_name.DBF' size 50m -- 根据文件数据量进行调整 autoextend on next 50m extent management local ;导入sql文件:
完成。