表空间自动增长,导致磁盘空间不足,给数据库表空间瘦身

    有时管理员图方便,给业务表空间设置自动增长空间的权限,在管理员疏忽的情况下,表空间会长满,导致磁盘空间紧张,为了给磁盘瘦身,就测试如下想法是否可行


    搭建环境 oracle10g windows2003系统

    创建一个test表空间,大小为50m 

    create tablespace test_tablespace datafile 'D:\jxj\test\test_data.dbf' size 50m;

    创建用户test,默认表空间为test_tablespace

    create user test  identified by test123 default tablespace test_tablespace;

    赋予用户相应权限

    grant connect,resource to test;

     grant dba to test;

     计划是这样,创建一个表,使用pl/sql的文本导入器导入数据,在将现有的50m空间占满后,再增加一个数据文件给test_tablespace,容量同样是50m;

     alter tablespace test add datafile 'D:\jxj\test\test_data2.dbf' size 50m;

     然后再次导入数据,当数据达到表空间使用量的70%时,开始测试。

     question1:删除表数据,使表空间低于50%表空间容量,试着删除增加表空间,看数据库是否正常运行?

 操作

 1将表空间数据exp导出

C:\>exp test/test123 file=c:\test_tablespace3.dmp log=c:\test_tablespace3.log owner=test

 2将表空间删除,并删除文件

drop tablespace test_tablespace including contents and datafiles cascade constraints;

    删除表空间文件

 3重建表空间,可重新设计表空间大小

   create tablespace test_tablespace datafile 'D:\jxj\test\test_data.dbf' size 80m;

4将表空间设置为test用户的默认表空间

 alter user test default tablespace test_tablespace;

5将exp导出数据imp导入

C:\>imp test/test123 file=c:\test_tablespace3.dmp log=c:\test_tablespace3.log fromuser=test touser=test

  ok,导入完成,无报错。

 至此,数据库空间由原先的100m,变成了80m,表空间瘦身完成,无异常。

数据库是出于非归档模式下测试操作完成。




    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值