sqlplus 登陆 RAC 11.2.0.4 数据库缓慢问题完美解决方案

近日发现一套数据库在节点一使用 sqlplus 登录时反应巨慢,但在节点 2 却很迅速登录进去,节点一无任何报错,只是反应巨慢,观察大约需要 81s 的时间才可以正常登录。如下图所示:

  

首先想到的是不是由于审计目录过大的原因,因为 sqlplus / as sysdba 使用的是操作系统鉴权,猜想在进行审计是写入过慢导致,但去查看相关的目录均不到 1G 大小,这种问题也无法通过其他类似 AWR 报告的东西查看。所以也想不到更好的办法了,便只能去寻找帮助了,咨询了一圈同事后无果,便灰溜溜的去 MOS 提 SR 了。

 

不过 SR 首先回复的也是目录过大的问题,并给出了如下参考文档 Slow SYSDBA OS authentication ( Doc ID 2225093.1 ) 

 

当在 MOS 上打开此文档时发现给出的意见就是前面所提到的,感觉无果,继续更新 SR。

Clearthe old OS audit files under /u01/app/oracle/admin/adump

 

 

第二次 SR 建议使用 truss 查看,如下命令:

 

truss -adefo/tmp/sqlplusconnection.log sqlplus / as sysdba

 

将 log 输出以便检查问题。

 

检查此 log 后便定位于此文件 /etc/netsvc.conf ,oracle 用户无权访问 /etc/netsvc.conf 导致 sqlplus / as sysdba 去尝试 LDAP 解析。但唯一的不同是您这里访问 /etc/netsvc.conf 时报的是 Err#25 ENOTTY 而不是 Err#13 EACCES。检查下 RDBMS 属主用户是否对 /etc/netsvc.conf 有读取权限,是否为 664 权限,使用 oracle 用户查看有访问权限,权限无问题,并给出参考文档  SQL*Plus Appears to Hang on Logon to the Database on IBM AIX (文档 ID 2017323.1)

 

Correctthe permission for /etc/netsvc.conf to -rw-rw-r--.

 

# chmod664 /etc/netsvc.conf

 

当查看文件权限时无任何问题,文件内容可读,但发现文件内容都是注释行,那么 SR的回复是说明走的是默认的地址解析顺序,即 DNS,NIS,本机 /etc/hosts。

所以我们可以让本地解析优先,在 /etc/netsvc.conf 中增加这行:

hosts =local, bind4

 

保存退出后,sqlplus / as sysdba 则可正常登录,那么简单说明一下此文件的作用及解析顺序。

 

/etc/netsvc.conf 是 AIX 系统配置主机地址解析顺序的,如果没配置它,默认是按照DNS,NIS,本机 /etc/hosts 这样的顺序来的。所以如果 DNS 服务器响应比较慢,连接就会延迟。

hosts=local,bind4 就是设置先从本地解析,本地解析不了的 IPv4 地址再走 DNS 解析。详情参考 IBM 官方文档:

https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/filesreference/netsvc.conf.html

  

以下为全英文, Google 翻译虽不是标准但可凑合着看,哦了!

 

netsvc.conf File:该 /etc/netsvc.conf 中的文件是用来指定名称解析的顺序为sendmail 的命令,调用 gethostbyname 子程序,gethostaddr 子程序和gethostent 子程序和别名分辨率的 sendmail 的命令。有几种用于解析主机名和别名的机制。在调用 gethostbyname,gethostbyaddr 和 gethostent 子程序使用这些机制的解析名称。存在默认顺序,其中解析程序子例程尝试使用解析主机名和Internet 协议(IP)地址的机制。

好咯,今天就到这里了,详细内容需查看官方文档,感谢你能读到这里,如果此文对你有那么一丁点的帮助,那么只需要您点个 在看 或是 转发,则是对我最大的支持。您的小小举动将是我不断更新的动力,骚年努力向上吧。

80%

推荐阅读:

Linux Oracle 11.2.0.4 单机数据库升级至最新补丁安装指北

万字详解Oracle架构、原理、进程,学会世间再无复杂架构

模拟真实环境下超简单超详细的 MySQL 5.7 安装

CentOS6.7安装PostgreSQL10.9详细教程

Oracle 12C 最新补丁下载与安装操作指北

Oracle 12CR2 安装配置与基础学习

Linux CentOS 7 安装教程

Linux RHEL7 安装教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1)rpm格式包安装配置 1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus 的即时客户端; oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --补充包/文件,为运行ODBC环境附加库; oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm --补充JDBC下的XA、国际标准、行集操作; oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm --包含头文件和示例文件,为开发Oracle应用程序的即时客户端; 1.2 使用rpm -ivh [包名] 进行安装, 如:rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 安装的文件默认放在两个位置: 头文件:/usr/include/oracle/11.2/client64/ 下,如果在使用时报错找不到头文件,记得看路径是否是这个。 包文件:/usr/lib/oracle/11.2/client64/ 下,包含{bin、lib}两个文件夹; 1.3 创建文件夹: #mkdir -p /usr/lib/oracle/11.2/client64/network/admin/ 1.4 创建监听文件,并添加内容 #vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = *SID*) ) ) 1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG='simplified chinese_china'.ZHS16GBK export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH 1.6 使配置完的环境变量生效 #source ~/.bashrc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值