zoukankan      html  css  js  c++  java
  • 清理oracle数据库空间

    背景:之前在电脑上安装了oracle并加载了100+G的数据,最近感觉用处不大,而且导致电脑相应很慢。于是乎,觉得整理一下oracle数据库空间,数据库实例还是不删除,作为以后慢慢摸索使用,把100+G的数据删除了吧。详细步骤如下:

    1、登陆PL/SQL

    2、之前数据库使用已久,先查询下有哪些table、view、index。。。

    select * from user_segments;/*查看当前数据库中有哪些table、view、index*/

    3、删除掉上述内容

    drop index xx

    drop view xx

    drop table xx

    这里不确定是否要先删除相应的index、view才能删除table,忘了测试。

    删除掉这些文件之后oracle垃圾站会产生一些垃圾文件,文件名以bin开头

    4、清楚垃圾站

    purge recyclebin; /*清空回收站,删除表之后会生成很多垃圾文件,文件名以bin开头*/

    5、删除表空间

    alter tablespace user_data online; drop tablespace user_data including contents and datafiles; /*删除表空间及其关联的物理文件*/

    但是,如果该tablespace是默认空间,则无法删除,需要先更改默认空间或者收缩当前默认空间,由于该默认空间是当初重新设置关联到非C盘的,因此觉得收缩空间即可。

    6、由于100+G的数据,该空间关联了4个物理文件,因此逐个删除

    alter tablespace user_data drop datafile 'F:ORACLEORADATAUSER_DATA01.DBF'; /*针对同一表空间关联多个物理文件的,可以逐个删除物理文件*/ 

    7、删除的差不多了之后,发现C盘有个空间文件较大,于是再收缩一下吧。

    alter database datafile 'C:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF'resize 2000M;/*收缩表空间文件大小*/

    以下几条命令是辅助查找和验证结果的。

    SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;  /*查看表空间及空间大小*/

    SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name; /*查看表空间、关联物理文件、总共空间*/

    select name from v$datafile; /*表空间的所有物理文件*/

    select * from user_segments;/*查看当前数据库中有哪些tabble、view、index*/

  • 相关阅读:
    SQL Server 数据库定时自动备份
    SQL SERVER 2012设置自动备份数据库
    SyncNavigator 数据库同步软件怎么用?
    SyncNavigator下载|SyncNavigator数据库同步软件 v8.4.1
    关于数据同步的几种实现
    课堂练习-找水王:
    软件工程第十四周总结
    Alpha版(内部测试版)发布
    软件工程第十三周总结
    意见评论汇总
  • 原文地址:https://www.cnblogs.com/eavn/p/4365170.html
Copyright © 2011-2022 走看看