从Oracle10g开始删除数据库表不是真正删除表,而是把表放到了recyclebin中,就像windows删除文件后会放入回收站,oracle也有自己的回收站。
1.查看回收站中的文件
select object_name,original_name from recyclebin;

2.查询回收站中要删除的表
SELECT object_name, original_name
FROM user_recyclebin
WHERE original_name = 'STATION_AWSTIMEDATA_FOR';---表名根据自己查出来的写。

3.删除回收站中的表
PURGE TABLE "BIN$GrvzoM/ySgXgYyBengoCdQ==$0"; -- 替换为实际的object_name

清理好回收站的表发现磁盘空间并没有被释放出来,怀疑是服务器的问题(太长时间没有重启),
决定重启机器试试看。
由于数据库是双机备份,重启主机前确定副备份是否正常。
步骤
1.远程连接上副备份机,
2.执行命令lsnrctl status查看数据库监听状态,显示监听。
3.通过sqlplus登录Sys用户:sqlplus Sys/密码 as sysdba
4.查询实例状态:>select status from v$instance;
(若返回 STATUS = OPEN,说明数据库正常运行,若返回 MOUNTED(仅加载未打开)、NOMOUNT(仅实例启动)或 SHUTDOWN,则数据库未正常运行。)
确认备份数据库正常后就可以对数据库进行重启了。
步骤:
1.连接主机,通过sqlplus登录sys管理员账户:sqlplus Sys/密码 as sysdba
2.>shutdown immediate; ------拒绝连接,回滚事务后关闭。
关闭数据库后访问网站正常,副数据库正常支撑。
就可以通过root用户进行重启系统。
重启系统后使用df -h 发现磁盘空间得到释放。
再对主数据库进行启动即可
步骤:
命令行执行lsnrctl start
通过sqlplus登录sys管理员账户:sqlplus Sys/密码 as sysdba
>startup;
--数据库启动···
3032

被折叠的 条评论
为什么被折叠?



