OS 内核参数配置:
/etc/sysctl.conf里面的(sysctl -p生效):
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
rmem_default = 262144
rmem_max = 262144
wmem_default = 262144
wmem_max = 262144
/etc/security/limits.conf里面的(重新登录可生效):
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
实例启动时报ORA-00845: MEMORY_TARGET not supported on this system:
原因:/dev/shm 空间不足
1.df -h
2.vi /etc/fstab
3.tmpfs /dev/shm tmpfs defaults,size=8G 0 0
4.mount -o remount /dev/shm
实例启动时报ORA-01102: cannot mount database in EXCLUSIVE mode
原因:1 在ORACLE_HOME/dbs/存在 "sgadef.dbf" 文件或者lk 文件。这两个文件是用来用于锁内存的。
2 oracle的 pmon, smon, lgwr and dbwr等进程未正常关闭。
3 数据库关闭后,共享内存或者信号量依然被占用。
lk说明DATABASE 已经是MOUNT状态了,不用再次MOUNT.当 DATABASE 被UNMOUNT 后会被自动删除,如果DATABASE没有MOUNT,却依然存在这个问题,只有手工将其删除。
1. cd 到dbs下
2.使用fuser -u lkORCL 查看使用 lkORCL 文件的进程和用户。-u 为进程号后圆括号中的本地进程提供登录名。
3.使用 fuser -k lkORCL 杀死这些正在访问lkORCL的进程 -k 杀死这些正在访问这些文件的进程。
4.重新启动实例