Linux 系统告警报“ inode”空间不足引起数据库启动失败

启动数据库报错,错误如下:

SQL> startup nomount pfile=’/oracle/admin/ecis/ecis.ora1’;
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpsemsper
看如上报错空间不足,但是查看分区磁盘空间都充裕,为啥报这个错误呢?
查看系统日志发现如下信息:
告警信息:

DISK CRITICAL - free space : /backup/script 5773 MB (28% inode=99%);/u01/app/oracle/oradata 171485 MB (20% inode=99%);/u01/app/oracle/archivelog 12059 MB (7% inode=99%);

以上告警可知,inode空间不足,这类告警出现的频率相对是比较少的,想要彻底解决此类告警,就不得不说一下有关存储的相关知识了。
文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
而系统会把真是的数据和文件属性(rwx,group,uid…..),存放到不通的块,权限等属性存放到不同的inode中,实际数据会存放到data block中,另外还有一个超级块superblock会记录文件系统的基本信息,如inode,block总量使用量以及剩余量等。
inode 中除了记录文件属性外,还记录了文件所在的block号,一个文件占一个inode,因此 我们知道的是,如果得到inode就很轻松知道对应的文件的block,也就能找到data block了。
inode包含文件的元信息,具体来说有以下内容:

 * 文件的字节数

  * 文件拥有者的User ID

  * 文件的Group ID

  * 文件的读、写、执行权限

  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  * 链接数,即有多少文件名指向这个inode

  * 文件数据block的位置

可以用stat命令,查看某个文件的inode信息:

[root@pcrdb01 ~]# stat install.log
  File: `install.log'
  Size: 50712           Blocks: 112        IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 652802      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-06-06 19:59:43.111889181 +0800
Modify: 2018-05-09 14:34:04.278999817 +0800
Change: 2018-05-09 14:34:13.545999813 +0800

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值