oracle实例的启动和监听的启动有顺序要求吗??没有顺序要求吗??呵呵,可能你从没有注意过这个问题。当然了,他们的启动顺序是没有任何硬性要求的。先启动哪一个都无所谓的。

那么,没有要求我还要讲什么呢??当然不会无病呻吟了。在测试的过程中,发现oracle的监听需要比oracle的实例先启动,这样会带来将近一分钟的好处。

配置过oracle监听之后,然后启动oracle实例。或者说同时启动。oracle 11g的监听不需要你再手工的指定他监听哪一个实例,他监听的实例是由pmon进程向监听程序注册的。在启动实例的时候,会把pmon进程拉起来的。然后pmon进程向listener注册实例,pmon进程告诉监听说,我的实例已经启动了,可以向外提供服务了。然后监听就可以接受外部的查询请求。假如,pmon进程向监听进程注册时,监听没有启动,那么pmon会注册不成功。因为pmon进程是周期性的被唤醒。所以,如果监听晚于实例启动,那么数据库实例向往提供服务的时间大概会晚于实例启动的一个周期再加上注册的时间。

多次的测试发现,如果监听和实例同时启动,那么在完全启动数据库实例前,就可以通过网络访问oracle实例了(我用的是虚拟机,启动oracle实例大概需要40秒,商用环境大概11秒左右)。如果启动完实例后,再启动监听,那么数据库实例能够通过网络向外服务的时间大概在监听启动后50多秒。所以建议先启动监听再启动数据库实例。

另外要注意的是:如果你的应用程序没有兼容数据库没有完全启动的错误时,那么你还是先启动实例吧。因为在你的数据库完全启动前,就能够向往提供服务了,呵呵。

 

 

当我配置EM时,发现不先起监听再起实例,发现em可能会报无法连接数据库实例的错,当然这是在动态实例的前提下。