Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2088288
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 17:46:27

    先看看 lsnrctl status 的输出信息:

    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this
    service...
    Service "catadb" has 2 instance(s).
    Instance "catadb", status UNKNOWN, has 1 handler(s) for this
    service...
    Instance "catadb", status READY, has 1 handler(s) for this service...
    Service "catadbXDB" has 1 instance(s).
    Instance "catadb", status READY, has 1 handler(s) for this service...
    The command completed successfully


    这里提出两个问题:

    1. 输出中显示的这些 service 是在哪里定义的?
    2. 为什么一个 service 会有两个 instance?

    先来看第二个问题。从oracle 8.1 版本后,在listener.ora文件中没有为数据库预先定义条目的时候,instance 和 listener 可以自动的互相发现。但是习惯上在listener.ora文件中为每个数据库定义一个SID_DESC条目以便在需要的时候使用。这就使服务“catadb”有两个实例:

    一个状态是 UNKNOWN 的实例 是在 listener.ora 文件中静态定义;另一个状态是 READY 的实例是当数据库启动时 PMON进程自动把数据库注册到监听器。在数据库启动后每一分钟注册一次。在使用OEM等工具时需要有监听的静态定义。

    再来看看这些服务是怎么定义的。oracle有三种监听方式:

Database

提供对数据库实例的网络访问

PLSExtProc

PL/SQL 包访问操作系统可执行程序的方法

Executable

提供对操作系统可执行程序的网络访问

    Service "PLSExtProc" 是在 listener.ora 文件中为数据库实例缺省配置的,允许PL/SQL包访问外部程序;
    Service "catadb" 也是在 listener.ora 文件中配置,是每个数据库连接使用的标准模式;
    Service "catadbXDB" 是 9i以后版本创建数据库时默认包含的XML DB特性,提供http、ftp等服务,在初始化文spfile(或pfile)中定义;

【责编:Peng】

--------------------next---------------------

阅读(190) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~