关于aix中大文件限制的问题

作者:佚名 和AIX相关  

目前常见的主要有两种情况限制文件大小:

 

一,操作系统文件大小限制

一般文件大小限制为2g,如果要改变限制,可以有两种方法:

1,  如果文件系统为jfs,则必须重建jfs文件系统且将文件系统设置为允许大文件。之后就可以支持大于2g的文件了。

2,  如果文件系统为jfs2,则无此限制,理论上jfs2文件系统支持最大1T的文件。所以你也可以创建jfs2文件系统满足要求。

3,  如果以上2个都不行,则可能是操作系统对单一用户的文件大小有限制,必须修改/etc/secrucity/limits 文件中指定用户的 fsize参数为-1(表示无限制),修改完后,必须重新登陆shell生效。可使用ulimit –a命令查看修改后的值。

4,  为什么在一个目录下无法再创建目录,因为一个目录下最多只能创建32767个文件(含目录),该参数是由系统内核决定的,在系统安装以后该参数不能更改。

(/usr/include/sys/limits.h文件里的  #define SHRT_MAX  参数      (32767))

    This is due to the fact that ".." in each subdirectory is a hard-link back to
the parent directory and the link count is implemented with a signed 16
bit quantity. Hence the error, EMLINK. Regular files are ok since they
do not require this link. You could work around this limitation by using
symbolic <links> to directories
/usr/include/sys/limits.h as the LINK_MAX value set to 32767

 

 

二,tar文件大小限制

tar文件最大只能为8g,原因是:tar命令介绍,因为tar使用USTAR格式,(美国磁带归档程序),而ustar头格式允许文件大到8GB,所以tar支持归档最大8GB文件。

The ustar header format allows for file sizes to be as large as 8 GB. Therefore, the tar command is enabled to archive files of up to 8 GB in size.

 

 

解决办法有以下三种:

1,  pax

    pax使用方法:

备份:pax -wvf /dev/rmt0 <directory or filename>

查看备份文件列表:pax -vf /dev/rmt0

解备份:pax -rvf /dev/rmt0 <directory or filename> -----可以随意解哪个都行,空为全部

复制:pax -rw <old directory> <new directory>

向磁带后追加:pax -avf /dev/rmt0 <directory or filename>

处理大文件(超过8GB):pax -x pax -wvf /dev/rmt0 <directory or filename>

不方便之处:分卷、不存在的目录不能恢复、存在的目录自动覆盖。

  

 

2,  backup

backup使用方法:

find <directory1 or filename1> <directory2 or filename2> ... -print | backup -iqvf /dev/rmt0

注:qv不是关键参数,默认是/dev/fd0所以f一般为主要参数,i为文件而非文件系统。

restore -Tqf /dev/rmt0 查看备份列表

restore -xdqvf /dev/rmt0 <directory1 or filename1> <directory2 or filename2> ...

注:d表示如果为目录将目录下的文件全部RESTORE,x为主要解备参数。

 

3,  exp 的filesize参数

如果是数据库的备份文件,可以使用exp 的filesize参数。将大文件分片存取。

相关资料:

关于aix中大文件限制的问题来源网络,如有侵权请告知,即处理!

编程Tags: