欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据库Linux服务器的内核参数配置

程序员文章站 2024-02-04 17:58:58
...

如果Linux内核参数设置不当或者不合理,oracle也会出错,Linux内核参数大致概括为4类:共享内存(shared memory),信号量(semaphor

如果Linux内核参数设置不当或者不合理,Oracle也会出错,比如
10g中:
SQL> startup;
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
11g RAC下报错:
SQL> startup;
ORA-00845: MEMORY_TARGET not supported on this system

本为总结下oracle数据库在linux下相关内核参数的配置

Linux内核参数大致概括为4类:共享内存(shared memory),信号量(semaphores),网络参数(network),文件参数(open files)
1.共享内存

内存查看:
[root@oraserv ~]# free -m
total used free shared buffers cached
Mem: 249 123 125 0 8 74
-/+ buffers/cache: 41 208
Swap: 2000 0 2000
共享内存是用于进程间通信的一种机制,共享内存可以由指定的多个进程共用,是一种系统资源。共享内存以段的形式分配,段有最大最小,可分配数量有限。

共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。

所有共享内存块的大小都必须是系统页面大小的整数倍。系统页面大小指的是系统中单个内存页面包含的字节数。在 Linux 系统中,内存页面大小是4KB,不过仍然应该通过调用 getpagesize 获取这个值(单位字节)。

[root@oraserv ~]# getconf PAGE_SIZE
4096

[root@oraserv ~]# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096 // SHMMNI
max seg size (kbytes) = 4194303 // SHMMAX
max total shared memory (kbytes) = 1073741824 // SHMALL
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128 // SEMMNI
max semaphores per array = 250 // SEMMSL
max semaphores system wide = 32000 // SEMMNS
max ops per semop call = 100 // SEMOPM
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 16 // MSGMNI
max size of message (bytes) = 65536 // MSGMAX
default max size of queue (bytes) = 65536 // MSGMNB

Oracle数据库Linux服务器的内核参数配置