ipcs、ipcrm、sysresv、kernel.shmmax

1.1BLOG文档结构图

1.2  前言部分1.2.1  导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:

①ipcs的使用

② ipcrm释放oracle内存段

③ sysresv的使用

④ 内核参数kernel.shmmax

⑤ 如何快速的清理Oracle的进程

⑥ 其它维护操作

unix/linux下的共享内存、信号量、队列信息管理

在Unix或Linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清除而引起一些问题。

查看共享内存的命令是:ipcs [-m|-s|-q]。若ipcs命令不带参数,则默认会列出共享内存、信号量,队列信息,而-m列出共享内存,-s列出共享信号量,-q列出共享队列。

清除命令是:ipcrm [-m|-s|-q] id,其中,-m删除共享内存,-s删除共享信号量,-q删除共享队列。

2.3  如何快速的清理Oracle的进程?

真题1、 如何快速的清理Oracle的进程?

答案:若想要快速清理掉Oracle的进程,则最直接的办法是杀pmon进程。有如下3条命令可供选择,其中加粗的orcl替换成ORACLE_SID的值即可。kill -9 `ps -ef|grep orcl| grep -v grep | awk '{print $2}'`

ps -ef |grep orcl|grep -v grep|awk '{print $2}' | xargs kill -9

ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm

若想要快速杀掉集群的进程,则可以执行如下命令:kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`

注意,生产库上严禁使用,否则可能导致集群不能正常启动。3.1  若是一个主机上有多个oracle实例的话该如何确定哪个共享内存段属于我们该清掉的oracle实例的内存段?

答案:使用sysresv命令。sysresv是Oracle在Linux/Unix平台提供的工具,用来查看Oracle实例使用的共享内存和信号量等信息。sysresv存放的路径:$ORACLE_HOME/bin/sysresv。使用时需要设置LD_LIBRARY_PATH环境变量,用来告诉Oracle共享库文件的位置。

第四章 Oracle内核参数

查看:more /proc/sys/kernel/shmmax

临时生效:echo 3145728 > /proc/sys/kernel/shmmax

永久生效,修改文件:/etc/sysctl.conf,并使修改参数立即生效:/sbin/sysctl -p

重要的几个参数如下所示:kernel.shmall = 2097152

kernel.shmmax = 1054472192

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

其含义分别如下所示:

(一)kernel.shmall = 2097152 # kernel.shmall参数是控制共享内存页数。Linux 共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。如果一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB = 16777216KB/4KB = 4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。简言之,该参数的值始终应该至少为: ceil(SHMMAX/PAGE_SIZE)。这个值太小有可能导致数据库启动报错(ORA-27102: out of memory)。

(二)kernel.shmmax = 1054472192  #定义一个内存段最大可以分配的内存空间,单位为字节。如果定义太小,那么会导致启动实例失败,或者SGA就会被分配到多个共享内存段。那么内存中的指针连接会给系统带来一定的开销,从而降低系统性能。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,最大值可以设置成大于或等于实际的物理内存。如果kernel.shmmax为100M,sga_max_size为500M,那么启动Oracle实例至少会分配5个共享内存段;如果设置kernel.shmmax为2G,sga_max_size为500M,那么启动Oracle实例只需要分配1个共享内存段。

(三)kernel.shmmni = 4096 #设置系统级最大共享内存段数量,该参数的默认值是4096。这一数值已经足够,通常不需要更改。。

(四)kernel.sem = 250 32000 100 128 #信号灯的相关配置,信号灯semaphores是进程或线程间访问共享内存时提供同步的计数器。可以通过命令“cat /proc/sys/kernel/sem”来查看当前信号灯的参数配置,如下所示:[root@edsir4p1 ~]# cat /proc/sys/kernel/sem

250     32000   100     128

其4个值的含义分别如下:

① 250表示SEMMSL,设置每个信号灯组中信号灯最大数量,推荐的最小值是250。对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10。

② 32000表示SEMMNS,设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSL*SEMMNI)。事实上,如果SEMMNS的值超过了SEMMSL*SEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI。Oracle推荐SEMMNS的设置不小于32000。

③ 100表示SEMOPM,设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。

④ 128表示SEMMNI,设置系统中信号灯组的最大数量。Oracle10g和11g的推荐值为142。

全文请参考:

oracle数据库res,ipcs、ipcrm、sysresv、kernel.shmmax相关推荐

  1. ipcs、ipcrm、sysresv、kernel.shmmax

    ipcs.ipcrm.sysresv.kernel.shmmax 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...

  2. Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE)

    Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE) 我们一般在Linux 上安装 设置Oracle 数据库 或者在更换或升级硬件的时候都需要配置 ...

  3. oracle共享内存设置spfile,IPC 资源、kernel.shmmax和Oracle 共享内存的调整

    ㈠ IPC 资源查看与释放 [root@david ~]# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms b ...

  4. linux 下oracle 的kernel.shmmax,Linux 下kernel.shmmax 的设置问题

    楼主理解的不对. oracle 建议 shmmax 大于sga,以让 sga在一个共享内存段中,从而提高性能 shmmax 仅仅表示一个最大值,在实际的生产条件中,如果运行apach等,可能就没有1个 ...

  5. 【体系结构】Oracle的kernel.shmmax和kernel.shmall设置

    1.  kernel.shmmax : 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值.设置应该足够大,能在一个共享内存段下容纳下整个的 SGA , 设置的过低可能会导致需要创建多个共享 ...

  6. Oracle数据库精讲与疑难解析(第2版)

    Oracle数据库精讲与疑难解析(第2版) 赵振平编著 ISBN978-7-121-20021-2 2013年4月出版 定价:148.00元 1100页 16开 编辑推荐 耗时3年,作者曾为本书辞职在 ...

  7. oracle anonhugepage,linux系统中配置hugepage,提升oracle数据库性能

    linux配置大内存技术 1.理论介绍 系统进程通过虚拟地址访问内存,CPU必须把它转换成物理内存地址才能真正访问内存.为了提高这个转换效率,CPU会缓存最近的虚拟内存地址和物理内存地址的映射关系,并 ...

  8. oracle ipcs mt,Oracle Study之--IPCS管理共享内存

    Oracle Study之--IPCS管理共享内存 Unix/linux下的共享内存.信号量.队列信息管理 在unix/linux下,经常有因为共享内存.信号量,队列等共享信息没有干净地清除而引起一些 ...

  9. ipcs ipcrm

    ipcs和ipcrm用法简介 命令名称:ipcs 使用权限:所有使用者 使用方式: ipcs [-m|-q|-s] -m       输出有关共享内存(shared memory)的信息 -q     ...

最新文章

  1. CV语义分割实践指南!
  2. 每天一个python 小案例——if else
  3. genisoimage命令用法
  4. PB初体验 class one
  5. hibernate中一对多关系的映射
  6. 【C++】读取文件夹下所有文件名
  7. php退出页面父元素,jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码...
  8. boost::hana::insert_range用法的测试程序
  9. 关于使用 jquery Validate 使用出现的问题
  10. confluence添加用户_知识管理平台Confluence教程:如何添加,分配和查看任务
  11. django表格_Django表格
  12. 学计算机买什么书好,学电脑基础知识买什么书好?
  13. 视频图像传输与显示(2)——彩色模拟电视广播制式NTSC、PAL和SECAM
  14. 统计基础:3.3_假设检验之t检验(Student‘s t test)
  15. 用谷歌按钮登录_使用非常简单的设置即可登录Google的按钮
  16. Linux下的Julia安装
  17. (进制转换)—— 十六进制转换
  18. java中数据类型的等级_Java 数据类型、变量
  19. 国内云服务器商怎么选?阿里云、腾讯云、华为云、天翼云怎么选?
  20. 手把手教学 | YOLOX的部署、优化及训练的实现全过程

热门文章

  1. Spring Boot 入门
  2. 用FIO测试存储性能
  3. mysql wait_timeout 8小时问题解决,tomcat数据源的配置
  4. 使用CSS隐藏HTML元素的4种常用方法
  5. C语言SQLite3基本操作Demo
  6. linux下磁盘分区
  7. Android开发问题集锦
  8. [转贴]现在在做一个WEB的站内消息系统,从工具栏位置弹出一徐徐上升的窗口...
  9. 基于Spring Boot + Dubbo的全链路日志追踪(一)
  10. 【业界】开源大势降低技术门槛,人工智能企业更依赖大数据