转载加自己整理编辑。
root下设置完/etc/sysctl.conf,键入
#su - oracle,显示
su: /bin/bash: Too many open files in system
不得已,查看原因,cat /home/oracle/.bash_profile:
kernel.sem=1055 32000 100 128
kernel.shmmax=2147483648
fs.file-max = 512 * PROCESSES --数值太小
kernel.shmall = 2097152
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.conf.default.rp_filter = 0
net.core.optmem_max = 65535
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
net.ipv4.ip_local_port_range = 1024 65000
***************************************
原来是它在搞鬼,擦,修改如下
fs.file-max = 6553600 --这个数值可以随意,我习惯这个数字,总之超过512就行,不行你再改,呵呵
保存退出,再次执行:
sysctl -p
这个可以按照oracle的安装说明复制粘贴上去了,没有改动,修改为:
kernel.sem=1055 32000 100 128
kernel.shmmax=2147483648
kernel.shmall = 2097152
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.conf.default.rp_filter = 0
net.core.optmem_max = 65535
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
运行:
[root@test ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.sem = 1055 32000 100 128
kernel.shmmax = 2147483648
kernel.shmall = 2097152
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.conf.default.rp_filter = 0
net.core.optmem_max = 65535
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
[root@test ~]# cat /proc/sys/fs/file-max
6553600
[root@test ~]#
然后就可以切换过去了
还有一种方法,
echo "10240" >/proc/sys/fs/file-max
重启后就失效了。
这个错误是在安装Oracle时发现的,该解决方案是ITpub的tonykorn97日志,小弟转贴在自己的日志中,首先谢谢tonykorn97了。