linux表空间满了,解决表空间撑满问题

为了解决表空间不足告警,到如今,我已经使用过下面三种形式:

一、添加数据文件

这个方法最为简单有效,但是需要足够的存储介质。

如果数据文件放在系统文件上则需要数据库主机上空间充裕;如果是裸设备的话,则需要有足够的lv。

脚本为:

alter tablespace ts_name add datafile 'file_name' size 4095M autoextend off;(裸设备:一般选择autoextend off,因为lv已经提前划好容量,而已最好设size比lv稍小一点)

二、压缩table和index

这种方法一般不推荐,除非是实在没有扩展的空间了,而且表或索引不能经常进行DDL操作的,这才允许。就算compress了,能节约出来的空间也是十分可怜的。

如果对已经压缩了的表或索引做update、insert等DDL操作,那将会牺牲无数的IO来做代价的……

脚本为:

alter table owner.table_name move compress parallel 8 nologging;

alter index owner.index_name rebuild compress nologging;

不知道为什么索引不能采用parallel(并行)操作,呵?

三、Move an object to a different tablespace

顾名思义,就是挪动对象到其它表空间去。将原来表空间容量紧张里的某些对象,挪到其它不紧张的表空间里,以解燃眉之急。

也不推荐,仅仅解燃眉之急而已。

具体步骤在下篇文档中说明

其实无论是那种方法,如果存储介质实在紧张了,让应用开发商清理旧的没用的数据,才是解决表空间告警的最佳方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux环境下,处理磁盘空间已,导致数据库无法正常使用的处理方法: 第一步:查看磁盘空间的使用情况 df -f 第二步:找到日志文件,并清理 1) 进入跟目录 cd / 2)查找日志文件(区分大小写) find -name *.Log; find -name *.log; find -name *.000; 第三步:进入到相应的目录,并删除日志文件 如: cd ./home1/data/db2inst2/NODE0000/SQL00001/SQLOGDIR/; rm -f *.LOG; 或者 rm -f *.log; 或者 rm -f *.000; linux下DB2管理命令 1:进入实例 su - db2inst2 2:查看某个库的表空间 db2pd -tablespaces -db mcmxfb 3:查看这个模式下所有活动库的表空间 db2pd -tablespaces -alldbs option and active database; 4: 系统重启后,对数据库的重启,首先要进入到实例下,再执行重启数据库的命令。系统会重启这个实例下的各个数据库 db2start; (注意,不同的实例,要分别进入各个实例,再重启); root用户下,重启系统的方法: 重启命令: 1、reboot 2、shutdown -r now 立刻重启(root用户使用) 3、shutdown -r 10 过10分钟自动重启(root用户使用) 4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 关机命令: 1、halt 立刻关机 2、poweroff 立刻关机 3、shutdown -h now 立刻关机(root用户使用) 4、shutdown -h 10 10分钟后自动关机 Linux环境下,磁盘空间已,导致db2数据库无法正常使用。这里解决的,主要是日志文件和环境文件占用磁盘空间太多所引起问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值