某部一所红旗ha监控oracle远程无法访问问题的解决-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 2018039
  • 博文数量: 220
  • 博客积分: 8531
  • 博客等级: 中将
  • 技术积分: 4976
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-18 13:33
文章分类

全部博文(220)

文章存档

2017年(1)

2015年(1)

2014年(5)

2013年(6)

2012年(6)

2011年(30)

2010年(37)

2009年(53)

2008年(41)

2007年(40)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2013-09-23 11:39:55

    原同事部署的一套ha监控oracle数据库,用户一直说window客户端无法访问。
   
    问题1:ha启动oracle之后,本地可以sqlplus登录,远程客户端无法登录。
    测试发现的确如此,而且本地加@orcl之后也无法登录,说明是侦听问题。侦听文件listener.ora中内容较少,只有:

点击(此处)折叠或打开

  1. lisitener =
  2. (discription_list =
  3.  (description =
  4.   (address = (protocol = tcp)(host = 172.31.114.210)(port = 1521))
  5.  )
  6. )
  7. adr_base_listener = /opt/app/oracle
    listener.ora中只有ip和端口信息,没有sid信息,所以启动后无法被客户端远程访问,相关资料可以参考:
   解决办法有两种,简单的通过netca删除重建一下侦听即可。但是现场没有图形,所以采用修改listener.ora文件,在此文件中添加如下部分:

点击(此处)折叠或打开

  1. sid_list_listener =
  2. (sid_desc =
  3.  (global_dbname = orcl)
  4.  (sid_name = orcl)
  5.  (oracle_home = /data/app/oracle/product/10.2.0/db_1)
  6. )
    重启侦听服务即可。其实在本地tnsname.ora配置正确的话(使用fip),本地通过sqlplus wangjx/111111@orcl即模拟客户端远程登录,不加@orcl则只登录本地数据库。
   
    问题2:oracle oem(oracleenterprisemanager基于web管理数据库的工具)无法使用。
    oracle企业管理器简称oem,是数据库启动后,通过执行命令emctl start dbconsole来启动的,ha是不负责这部分的。这部分启动停止都非常耗时。
    oem在db1启动之后,通过访问时提示数据库没有启动,所以无法使用。通过排查主要原因是:数据库安装时默认创建oem,是和主机名严格绑定的,而使用ha之后侦听启动在fip上,而oem是找主机名db1上的1521,没有,所以oem提示数据库没有启动。解决还是简单的:首先在listener.ora中再添加一行ip信息(address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))即可,这样侦听启动后,在fip和lo上都有1521打开。之所以使用不使用本机ip,是因为这个ha使用镜像版本,镜像的是/opt目录,所以两台机器的listener.ora文件一模一样,如果改成db1的本地ip之后,当切换到db2上,会因为此ip不存在而无法启动侦听,所以使用127.0.0.1,ha切换到任何一台,都可以正常启动侦听。
    这是第一步,还有一个第二步也非常重要,刚才说了,oem是和主机名绑死的,所以127.0.0.1要和主机名对应起来,这需要修改/etc/hosts文件,在第一行127.0.0.1对应localhost前面加上db1即可(如127.0.0.1   db1 localhost localhost.localdomain localhost4 localhost4.localdomain4)。
通过这两步之后,oem即可正常。

   
    问题3:ha切换过程中发现,切换一次之后oracle无法启动。
    奇怪的现象,当ha无法启动数据库的时候,手工启动数据库提示:ora-01012: not logged on。
    因为以前配置ha从来没有遇到过,所以网上搜索了一下,基本确定是oracle没有停止干净导致的。后来发现此ha配置时用的不是agent脚本,而是自己写的脚本。
    ha自带的oracle的agent停止数据库有很多步骤,不单单是shutdown immediate,还有很多ipcs的清理。而自己写的脚本中只调用shutdown immediate,很多ipcs信息没有清除。
    解决也很简单,不修改ha配置(当时时间太紧)的情况下,在停止脚本最后和启动脚本之前都添加ipcrm清除消息量的命令:

点击(此处)折叠或打开

  1. for i in `ipcs -m |grep oracle|awk '{print $2}'`
  2. do
  3.  ipcrm -m $i
  4. done
  5. for j in `ipcs -s |grep oracle|awk '{print $2}'`
  6. do
  7.  ipcrm -s $j
  8. done
    建议以后用ha自带的oracle的agent来监控。

阅读(3619) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图