Oracle 引发No space left on device+扩容Inode
Oracle 引发No space left on device+扩容Inode
背景
很久没遇到数据库存储和文件系统相关的问题,碰到了就复习一下。现象是: 某个小应用跑在很老的服务器上【准备淘汰废弃待定中】,突然应用报错,检查发现是数据库查询插入都异常了【自建oracle数据库】,这时候登上数据库服务器,查看一下日志发现存储空间打满,就准备移动到其他分区缓解情况恢复应用再下一步处理优化。移动的时候发现inode不够了报错No space left on device,如下图
mv: error writing ‘/u01/app/archivelog/1_4787_1058140424.dbf’: No space left on device
mv: failed to extend ‘/u01/app/archivelog/1_4787_1058140424.dbf’: No space left on device
扩容inode
抱着侥幸心理,检查文件系统是否支持在线扩容inode,如果是xfs就可以洗洗睡了,如果是ext4就得大动作【不支持在线扩容inode】——备份数据格式化文件系统扩容。
查看文件系统
万幸是xfs,可以直接在线扩容,扩容完就可以安心洗洗睡了
# df -T /archivelog
查看分区inode占比
查看inode使用率限制百分比为25%
# xfs_info /archivelog
扩容inode
扩容完,会提示限制百分比从25到50%
# sudo xfs_growfs -m 50 /archivelog
验证
至此,文件系统的节点编号已经完成在线扩容,应用也恢复正常使用。
注意
1、做好数据备份,数据是命根子。
2、执行扩容前一定要确认扩容分区的文件系统的类型,是否支持在线扩容
3、操作前再三思考,谨慎操作,保持胆大心细认真负责的态度去完成。