Oracle缩小表空间的方法

0    217    1

Tags:

👉 本文共约2250个字,系统预计阅读时间或需9分钟。

前言部分

导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,\~O(∩_∩)O\~:

① 收缩表空间的几种办法

② 表空间大小查询

③ AIX下查询磁盘空间大小的shell脚本

④ 删除数据文件的正确方法

⑤ ORA-03262处理

⑥ 缩小数据文件

⑦ su - grid asmcmd lsdg的使用

⑧ 其他常用命令

环境介绍

项目source db
db 类型RAC
db version11.2.0.3.0
db 存储ASM
OS版本及kernel版本AIX 64位 7.1.0.0

处理过程

一个同事过来说,表空间不够了,让我帮忙看看,好吧,首先看一下表空间的大小,SQL语句如下:

Oracle缩小表空间的方法

TPCCIND表空间占用了99%了,剩下378M,不够用了,好吧,看看系统还有剩余的空间没有:

Oracle缩小表空间的方法

这个截图的shell脚本如下,可以在AIX环境下查看磁盘的使用情况,作者曾花了接近2天的时间写的(主要是不熟悉AWK,汗颜,,,):

从截图可以看出分配给数据库的一共8块磁盘,看看数据库中有多少:

Oracle缩小表空间的方法

看了8块磁盘分配完了,而系统剩余空间还有769M:Oracle缩小表空间的方法

那就只能隔东墙补西墙,看到系统里TPCCHIS表空间剩下270G,经开发确认,可以缩小一些空间:

Oracle缩小表空间的方法

而缩小表空间有3种办法:

1、ALTER TABLESPACE test SHRINK SPACE KEEP 20M; --主要针对临时表空间

2、删除数据文件

3、缩小数据文件的大小

我们试试第一种:

ORA-12916: cannot shrink permanent or dictionary managed tablespace

Oracle缩小表空间的方法

报错了,永久表空间或是字典管理的不能SHRINK,只能针对temp表空间进行SHRINK SPACE。

试试第二种办法:删除数据文件

Oracle缩小表空间的方法

Oracle缩小表空间的方法

所以,表都在23号文件上,其它文件应该可以删掉的。

结果报错了:ORA-03262: the file is non-empty

Oracle缩小表空间的方法

参考mos文章:
Unable to Drop a Datafile From the Tablespace Using Alter Tablespace Command (文档 ID 1050261.1)

违反下列任何一个条件,该datafile均不能被drop

1)必须为空,否则会报:ORA-03262: the file is non-empty。值得注意的是,non-empty的含义是有extent被分配给了table,而不是该table中有无rows,此时若是使用drop table xxx是不行的,必须使用 drop table xxx purge;或者在已经使用了drop table xxx的情况下,再使用purge table “xxx表在回收站中的名称”来purge该表,否则空间还是不释放,datafile依然drop不掉。

2)不能是所属表空间的第一个file

以上两者可以通过drop tablespace来达到目的。

3)不能在read-only表空间中。

4)不能被offline,否则会报:ORA-03264: cannot drop offline datafile of locally managed tablespace

针对该报错,解决方法为:

5) Cannot be a datafile that is part of the system tablespace, even if it is not the first datafile of the system tablespace --该条来源于How to Drop a Datafile From a Tablespace (文档 ID 111316.1)

试了试其它文件还是不能删除,好吧,这个必须把表移动到其它表空间后才可以,算了,比较麻烦。

试试第3种办法:缩小数据文件的大小

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Oracle缩小表空间的方法后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部