之前在基于linux 4.7的oracle DataGuard上发现一个奇怪的问题,主库的归档日志无法传递到备库,检查了数据库本身的各种配置,同时排除了网络方面的原因,最后扡瞧点放到操作系统层面上。
检查了standby归档目的地所在分区的磁盘空间,空闲约700GB,最后绞尽脑汁,突然想到是不是linux 操作系统本身由于某种错误变成readonly状态的,(之前在一台oracle HA的备机上出现过这种情况,redhat 4.7),于是就试着创建新文件,果然创建不了,无法写入。但是查看了其他分区是可以的。这个分区也并不是只读状态的。最后找了一下文件系统方面的相关知识,发现是inode 已分配完了,用如下命令可以查看 :
[root@hfcc-svr-newccsdb1 ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 10256384 341651 9914733 4% /
/dev/sda1 52208 41 52 167 1% /boot
none 9271430 1 927 1429 1% /dev/shm
/dev/sda5 6258688 69672 6189016 2% /dba
/dev/sda6 781312 119 781193 1% /u01
/dev/sda7 442112 11 442101 1% /u02
/dev/emcpowera1 480128 92 480036 1% /u03
我的那个分区IUse%为100%,所以分配不了inode了,无法再创建新文件,关于inode 的知识可以搜索一下,
linux man上面 mke2fs -T参数说明如下:
-T fs-type
Specify how the filesystem is going to be used, so that mke2fs can chose optimal filesystem parameters for that use. The supported filesys-
tem types are:
news one inode per 4kb block
largefile one inode per megabyte
largefile4 one inode per 4 megabytes
作为数据库服务器数据文件大小都在几GB,几十GB以上,所以数据文件分区的inode的分配都相对稀疏,因文件本身的数量并不庞大。
出现我这种情况的原因:在创建文件系统的时候inode分配方式是没有问题的,我在这个分区上临时作了一个web在线服务系统的备份,这个系统也是linux的,从磁盘分区空间上来看作这个备份是没有问题的,但要备份的都是一些小文件,这些文件的数超过了可用inode的数量。
阅读(759) | 评论(1) | 转发(0) |