热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

AIX系统的非计算内存最大值设置过大导致Oracle数据库有些不能连接上

AIX系统、Oracle数据库以及其监听器都没有做任何的修改,发现连接远程的数据库,有时可以连接上,有时连接不上数据库。

AIX系统、Oracle数据库以及其监听器都没有做任何的修改,发现连接远程的数据库,有时可以连接上,有时连接不上数据库。

错误描述:

AIX系统、Oracle数据库以及其监听器都没有做任何的修改,发现连接远程的数据库,有时可以连接上,有时连接不上数据库。

1、连接不上数据库时:回报ORA-12537:TNS连接己关闭

2、发现alert_SID.log没有发现错误

3、查看$ORACLE_HOME/network/log/listener.log日志错误如下:

25-MAY-2010 18:54:26 * (CONNECT_DATA=(SERVICE_NAME=testoms)(CID=(PROGRAM=D:\项目资料\plsqldev\plsqldev.exe)(HOST=89587D60816246E)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.88.22.77)(PORT=4954)) * establish * testoms * 12518

TNS-12518: TNS:listener could not hand off client connection

TNS-12547: TNS:lost contact

TNS-12560: TNS:protocol adapter error

TNS-00517: Lost contact

IBM/AIX RISC System/6000 Error: 32: Broken pipe

原因分析:

连接数据库,有时可以连接,有时连接不上。

用ping数据库ip -t 发现网络很稳定

一般出现上面的ora-12537错误,一般是因为数据库的listener.ora文件没有配置好,导致这样的错误。但没有改变过该文件,,原来连接数据库一直很正常,突然发现有时能连接有时不能连接的现象。

用lsnrct status查看该监听正常。

该库为测试库,尝试了关闭数据库,再启动

>shutdown immediate 关闭正常

但启动时出现下面的错误

SQL> startup

Could not load program oracletestoms:

Could not load module /usr/lib/libperfstat.a(shr_64.o).

Dependent module liblvm.a(shr_64.o) could not be loaded.

Could not load module liblvm.a(shr_64.o).

System error: Not enough space

Could not load module oracle.

Dependent module /usr/lib/libperfstat.a(shr_64.o) could not be loaded.

Could not load module .

ORA-12547: TNS:lost contact

再次启动的错误又不一样:

SQL> startup

ORA-00443: background process "MMAN" did not start

感到这是AIX系统出现的问题,查看下交换空间

omstestdb:/> lsps -a

Page Space Physical Volume Volume Group Size %Used Active Auto Type

Could not load program /usr/bin/sed:

Dependent module libc.a(shr.o) could not be loaded.

Could not load module libc.a(shr.o).

Could not load program /usr/bin/awk:

Dependent module libc.a(shr.o) could not be loaded.

Could not load module libc.a(shr.o).

0517-041 lsps: Cannot list paging space .

提示不能列出交换空间的大小,从这可以知道这是由于AIX的内存耗尽。

用topas查看目前的AIX查看内存及其交换空间的使用情况。

AIX的comp(计算内存)使用了4 GB,而nocomp(非计算内存)也使用了4GB,而交换空间则有很多的空闲。系统总共8GB的内存,而oracle中内存一般使用comp内存。而oracle的缓存则使用nocomp,有很多sql语句一直没有释放,使用了4GB的内存,而AIXnocomp的最大值也为4GB,导致内存不足。

限制AIX的nocomp(非计算)内存最大值。

把AIX的

minperm% = 20

maxclient% = 80

maxperm% = 80

调整更低。

解决步骤:

查看原来的AIX的minperm%、maxclient%、maxperm%的值。如下:

Root用户查看:

>vmo –a

minperm% = 20

maxclient% = 80

maxperm% = 80

把minperm%设置成10,maxclient%设置成20,maxperm%设置成20

用root命令行执行:

1、

vmo -p -o minperm%=10

2、

vmo -p -o maxclient%=20

3、

vmo -p -o maxperm%=20

执行上面的操作,AIX的nocomp还不能释放内存,重启了AIX系统

# reboot

重启之后,重启oracle以及监听器

SQL>startup

$lsnrctl start

启动数据库及其监听器均正常,连接数据库则正常。

备注:

minperm 和 maxperm 参数的值

操作系统通过把在曾经读写的内存页留在实内存一满足不同要求。如果文件页面在它们的页帧被重新分配前被请求,那就节省了输入输出操作。该文件页面可以来自本地的或远程的(如 NFS)系统。

页帧使用的文件相对用于计算的(工作或程序文本)段的文件的比例是松散地受控于 minperm 和 maxperm 的值的:

如果 RAM 中文件页面所占的百分比高于 maxperm,页面替换的窃取只用于文件页。

如果 RAM 中文件页面所占的百分比低于 minperm,页面替换的窃取同时用于文件页和计算页。

如果 RAM 中文件页面所占的百分比介于 minperm 和 maxperm之间,页面替换只窃取文件页,除非文件页的重调入数量大于计算页数。

其中Noncomp在20%-80%之间,此时内存页交换算法通常只交换文件缓存页,但如果文件缓存页的交换率大于程序页时,程序页也同样被交换。由于SGA属于Comp页,数据文件缓存属于Noncomp页,而在数据大量访问时,文件缓存页的交换率大于程序页(SGA),因此大量的SGA页面被交换;为避免大量SGA页被交换,需要降低maxperm%值到35%以下,这样就只有文件缓存页面被交换,减少了SGA交换的次数。

linux

推荐阅读
  • 垂直泊车路径设计
    本文探讨了垂直泊车路径的设计原理与实现方法。垂直泊车是指汽车从特定位置出发,经过一系列横向和纵向移动,最终达到与车位垂直停放的状态。路径设计旨在确保泊车过程既高效又安全。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 深入理解MongoDB的SCRAM-SHA-1认证流程
    本文详细解析了MongoDB的SCRAM-SHA-1认证机制的具体步骤,旨在帮助读者深入了解这一安全认证方法的工作原理及其在实际应用中的重要性。 ... [详细]
  • Web开发实践:创建连连看小游戏
    本文详细介绍了如何在Web环境中开发一款连连看小游戏,适合初学者和技术爱好者参考。通过本文,您将了解游戏的基本结构、连线算法以及实现方法。 ... [详细]
  • 本文介绍了如何通过 ADB 命令行工具启动和停止 Android 应用。通过简单的命令,您可以轻松地控制设备上的应用运行状态。 ... [详细]
  • 本文介绍了如何使用jQuery获取浏览器窗口的可视区域高度、文档的整体高度以及宽度等关键尺寸信息,包括边界、填充和边距在内的完整尺寸。 ... [详细]
  • SPFA算法详解与应用
    当图中包含负权边时,传统的最短路径算法如Dijkstra不再适用,而Bellman-Ford算法虽然能解决问题,但其时间复杂度过高。SPFA算法作为一种改进的Bellman-Ford算法,能够在多数情况下提供更高效的解决方案。本文将详细介绍SPFA算法的原理、实现步骤及其应用场景。 ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 我整理了HMOV四大5G旗舰的参数,可依然没能拯救我的选择困难症
    伊瓢茕茕发自凹非寺量子位报道|公众号QbitAI报道了那么多发布会,依然无法选出要换的第一部5G手机。这不,随着华为P40系列发布,目前国 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 最优化算法与matlab应用3:最速下降法
    最优化算法与matlab应用3:最速下降法最速下降法是一种沿着N维目标函数的负梯度方向搜索最小值的方法。(1)算法原理函数的负梯度表示如下:搜索步长可调整ak,通常记为(第k次迭代 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文探讨了在 Python 2.7 环境下,如何有效地对大量数据(如几百 KB 的字符串)进行加密和压缩,并确保能够准确无误地解密回原始数据。 ... [详细]
author-avatar
神秘怪我咯_525
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有