求助双机热备下监听程序注册的问题

时间:2022-05-01 05:45:52
硬件:两台HP服务器,一台HP磁盘阵列
操作系统:WINDOWS SERVER2003,数据库:ORACLE10g R2
分别在两台服务器上安装ORACLE数据库,数据库主目录放在磁盘阵列上(f:\oracle\product\10.2.0\db_1).此时只能有一台服务器能正常启动各项服务,另外一台不能启动监听服务。将监听程序由动态注册改为静态注册,并把HOST改为localhost.两台服务器服务启动正常,并且应用程序能正常访问数据库。但是登陆Oracle Enterprise Manager显示无法连接到数据库实例(用lsnrctl start 启动监听服务,最下面提示 实例"<SID>" 状态UNKNOWN.......),请问这是什么原因?该如何解决?

10 个解决方案

#1


分别在两台服务器上安装ORACLE数据库,数据库主目录放在磁盘阵列上(f:\oracle\product\10.2.0\db_1).
===================================================================================================
热备不能简单的通过两台服务器访问同一个目录来达到,需要通过配置 RAC 来完成。

#2


以前我用9i做过,在服务器A安装完ORACLE后,服务器B先格式化数据库主目录磁盘,然后再安装一次。修改listener.ora和tnsnames.ora就可以了。正常运行很长一段时间。换了10g后 Oracle Enterprise Manager就老出问题,要么DBconsole启动不了,要么就是能启动但无法连接数据库实例。(双机软件我是用的roseHA)

#3


引用楼主 laslovemm 的帖子:
硬件:两台HP服务器,一台HP磁盘阵列 
操作系统:WINDOWS SERVER2003,数据库:ORACLE10g R2 
分别在两台服务器上安装ORACLE数据库,数据库主目录放在磁盘阵列上(f:\oracle\product\10.2.0\db_1).此时只能有一台服务器能正常启动各项服务,另外一台不能启动监听服务。将监听程序由动态注册改为静态注册,并把HOST改为localhost.两台服务器服务启动正常,并且应用程序能正常访问数据库。但是登陆Oracle Enterprise Manager显示…


你不是通过RAC的方式做的双机么,你这样做的不是双机,没有OCR和VOTE DISK的机制,你是怎么控制对数据文件的读写是通过负载均衡上去的,而不是简单的两个机器操作同一个共享磁盘而已, 你以前能用,觉得很奇怪,不知道你原来的应用是不是做过fail over的测试,感觉象你原来的这样的方式,顶多只能启动一个服务器.能够启动两个就确实怪异了.

#4


不好意思,应该是我表述有错,我做的是双机容错不是双机热备。两台服务器始终只有一台活动,另外一台处于备用状态。一旦活动服务器出现故障,备用服务器马上接管。始终只有一台服务器和数据库打交道。

#5


引用 4 楼 laslovemm 的回复:
不好意思,应该是我表述有错,我做的是双机容错不是双机热备。两台服务器始终只有一台活动,另外一台处于备用状态。一旦活动服务器出现故障,备用服务器马上接管。始终只有一台服务器和数据库打交道。


双机热备是DATA GUARD的方式,日志复制的方式,每个HOST都有自己独立的实力和储存空间,你这里是用共享磁盘阵列做储存的,显然不是双机热备,

你现在是每个HOST都有自己独立的实力,但是共享储存空间,和RAC类似,但是如上面所提到的,你没有OCR这些机制,如何保证负载均衡性哟。

没有RAC你是如何判断数据库的可用性的,或者你只是简单的做了网络负载而已。

对你的方法和现象很疑惑。

#6


你不是通过RAC的方式做的双机么,你这样做的不是双机,没有OCR和VOTE DISK的机制,你是怎么控制对数据文件的读写是通过负载均衡上去的,而不是简单的两个机器操作同一个共享磁盘而已, 你以前能用,觉得很奇怪,不知道你原来的应用是不是做过fail over的测试,感觉象你原来的这样的方式,顶多只能启动一个服务器.能够启动两个就确实怪异了. 
 
 

#7


Oracle数据库的安装 

  先关闭B机,在A机上安装Oracle数据库,安装路径默认为D盘,归档日志放在E盘。安装完毕后,将Oracle的3个服务(此处SID为ORCL,所以3个服务就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的启动方式改为手动并将此3个服务停止。注意: 改为手动的目的是为了让这3个服务由双机容错软件来启动,而不是由操作系统启动。 

  然后,关闭A机,启动B机,格式化D盘,将刚刚由A机建立在磁盘阵列上的Oracle目录也格式化掉; 在B机上安装Oracle数据库,安装路径默认为D盘,安装完毕,同样将Oracle的3个服务的启动方式改为手动并停止3个服务。 

  双机上安装Oracle的实质就是将Oracle系统分别装在2台服务器上,而数据只存储在磁盘阵列上。

双机容错软件的安装及双机容错环境的建立 

  双机容错软件的安装非常简单,只需启动A机和B机,在2台服务器上分别安装该软件即可。建立双机容错环境是将磁盘阵列上的D盘和E盘以及Oracle 的3个服务交由双机容错软件控制,并由双机容错软件进行切换。

  在双机容错软件SLHA的"Configuration"选项中将数据库服务器设为Active状态,即平时正常工作状态时,此时数据库服务器工作,备份服务器等待。当A机Active时,只有A机可以访问磁盘阵列,B机不能访问磁盘阵列。此时,Oracle数据库服务器实际上是A机,A机的IP地址就是Active IP Address,同时A机的主机名为Active Host Name; 当A机因故不能工作时,A机的状态会被"心跳线"侦测到,这时B机开始切换到Active状态,接管磁盘阵列,此时的Oracle数据库服务器改为B机,B机的IP地址就是Active IP Address,同时B机的主机名为Active Host Name。上述操作均由系统自动完成,实践证明切换所需的时间很快,对客户端的影响很小。


ORACLE9i用此方案完全没问题,10g新增加了个DBconsole服务,此服务变更主机名必须要重新配置才能启动。目前我碰到主要问题就是当服务器切换时(相当于变更了主机名)DBconsole服务不能正常启动。

#8


引用 7 楼 laslovemm 的回复:
Oracle数据库的安装 

  先关闭B机,在A机上安装Oracle数据库,安装路径默认为D盘,归档日志放在E盘。安装完毕后,将Oracle的3个服务(此处SID为ORCL,所以3个服务就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的启动方式改为手动并将此3个服务停止。注意: 改为手动的目的是为了让这3个服务由双机容错软件来启动,而不是由操作系统启动。 

  然后,关闭A机,启动B机,格式化D盘,将刚刚由A机建立在磁盘阵列上的…


以前见过这样的类似你这样的安装,2个机器都装数据库,用一个阵列做共享磁盘,作为双机热备的一种模拟,但是这样的情况,都是一活一死,也就是启动其中一个,另一个就停掉,像你这样两台数据库都能启动的这样的安装方式,还没有接触过,

前面是我理解错了,还以为你是用的RAC这样的方式。

#9


请问楼主找到方法了没

#10


楼主这种方式 跟我们以前配置的一样。。的确是可以的

#1


分别在两台服务器上安装ORACLE数据库,数据库主目录放在磁盘阵列上(f:\oracle\product\10.2.0\db_1).
===================================================================================================
热备不能简单的通过两台服务器访问同一个目录来达到,需要通过配置 RAC 来完成。

#2


以前我用9i做过,在服务器A安装完ORACLE后,服务器B先格式化数据库主目录磁盘,然后再安装一次。修改listener.ora和tnsnames.ora就可以了。正常运行很长一段时间。换了10g后 Oracle Enterprise Manager就老出问题,要么DBconsole启动不了,要么就是能启动但无法连接数据库实例。(双机软件我是用的roseHA)

#3


引用楼主 laslovemm 的帖子:
硬件:两台HP服务器,一台HP磁盘阵列 
操作系统:WINDOWS SERVER2003,数据库:ORACLE10g R2 
分别在两台服务器上安装ORACLE数据库,数据库主目录放在磁盘阵列上(f:\oracle\product\10.2.0\db_1).此时只能有一台服务器能正常启动各项服务,另外一台不能启动监听服务。将监听程序由动态注册改为静态注册,并把HOST改为localhost.两台服务器服务启动正常,并且应用程序能正常访问数据库。但是登陆Oracle Enterprise Manager显示…


你不是通过RAC的方式做的双机么,你这样做的不是双机,没有OCR和VOTE DISK的机制,你是怎么控制对数据文件的读写是通过负载均衡上去的,而不是简单的两个机器操作同一个共享磁盘而已, 你以前能用,觉得很奇怪,不知道你原来的应用是不是做过fail over的测试,感觉象你原来的这样的方式,顶多只能启动一个服务器.能够启动两个就确实怪异了.

#4


不好意思,应该是我表述有错,我做的是双机容错不是双机热备。两台服务器始终只有一台活动,另外一台处于备用状态。一旦活动服务器出现故障,备用服务器马上接管。始终只有一台服务器和数据库打交道。

#5


引用 4 楼 laslovemm 的回复:
不好意思,应该是我表述有错,我做的是双机容错不是双机热备。两台服务器始终只有一台活动,另外一台处于备用状态。一旦活动服务器出现故障,备用服务器马上接管。始终只有一台服务器和数据库打交道。


双机热备是DATA GUARD的方式,日志复制的方式,每个HOST都有自己独立的实力和储存空间,你这里是用共享磁盘阵列做储存的,显然不是双机热备,

你现在是每个HOST都有自己独立的实力,但是共享储存空间,和RAC类似,但是如上面所提到的,你没有OCR这些机制,如何保证负载均衡性哟。

没有RAC你是如何判断数据库的可用性的,或者你只是简单的做了网络负载而已。

对你的方法和现象很疑惑。

#6


你不是通过RAC的方式做的双机么,你这样做的不是双机,没有OCR和VOTE DISK的机制,你是怎么控制对数据文件的读写是通过负载均衡上去的,而不是简单的两个机器操作同一个共享磁盘而已, 你以前能用,觉得很奇怪,不知道你原来的应用是不是做过fail over的测试,感觉象你原来的这样的方式,顶多只能启动一个服务器.能够启动两个就确实怪异了. 
 
 

#7


Oracle数据库的安装 

  先关闭B机,在A机上安装Oracle数据库,安装路径默认为D盘,归档日志放在E盘。安装完毕后,将Oracle的3个服务(此处SID为ORCL,所以3个服务就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的启动方式改为手动并将此3个服务停止。注意: 改为手动的目的是为了让这3个服务由双机容错软件来启动,而不是由操作系统启动。 

  然后,关闭A机,启动B机,格式化D盘,将刚刚由A机建立在磁盘阵列上的Oracle目录也格式化掉; 在B机上安装Oracle数据库,安装路径默认为D盘,安装完毕,同样将Oracle的3个服务的启动方式改为手动并停止3个服务。 

  双机上安装Oracle的实质就是将Oracle系统分别装在2台服务器上,而数据只存储在磁盘阵列上。

双机容错软件的安装及双机容错环境的建立 

  双机容错软件的安装非常简单,只需启动A机和B机,在2台服务器上分别安装该软件即可。建立双机容错环境是将磁盘阵列上的D盘和E盘以及Oracle 的3个服务交由双机容错软件控制,并由双机容错软件进行切换。

  在双机容错软件SLHA的"Configuration"选项中将数据库服务器设为Active状态,即平时正常工作状态时,此时数据库服务器工作,备份服务器等待。当A机Active时,只有A机可以访问磁盘阵列,B机不能访问磁盘阵列。此时,Oracle数据库服务器实际上是A机,A机的IP地址就是Active IP Address,同时A机的主机名为Active Host Name; 当A机因故不能工作时,A机的状态会被"心跳线"侦测到,这时B机开始切换到Active状态,接管磁盘阵列,此时的Oracle数据库服务器改为B机,B机的IP地址就是Active IP Address,同时B机的主机名为Active Host Name。上述操作均由系统自动完成,实践证明切换所需的时间很快,对客户端的影响很小。


ORACLE9i用此方案完全没问题,10g新增加了个DBconsole服务,此服务变更主机名必须要重新配置才能启动。目前我碰到主要问题就是当服务器切换时(相当于变更了主机名)DBconsole服务不能正常启动。

#8


引用 7 楼 laslovemm 的回复:
Oracle数据库的安装 

  先关闭B机,在A机上安装Oracle数据库,安装路径默认为D盘,归档日志放在E盘。安装完毕后,将Oracle的3个服务(此处SID为ORCL,所以3个服务就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的启动方式改为手动并将此3个服务停止。注意: 改为手动的目的是为了让这3个服务由双机容错软件来启动,而不是由操作系统启动。 

  然后,关闭A机,启动B机,格式化D盘,将刚刚由A机建立在磁盘阵列上的…


以前见过这样的类似你这样的安装,2个机器都装数据库,用一个阵列做共享磁盘,作为双机热备的一种模拟,但是这样的情况,都是一活一死,也就是启动其中一个,另一个就停掉,像你这样两台数据库都能启动的这样的安装方式,还没有接触过,

前面是我理解错了,还以为你是用的RAC这样的方式。

#9


请问楼主找到方法了没

#10


楼主这种方式 跟我们以前配置的一样。。的确是可以的