首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-12514: TNS:侦听器当前不知道在使用data guard broker进行切换时连接描述符中请求的服务

ORA-12514: TNS:侦听器当前不知道在使用data guard broker进行切换时连接描述符中请求的服务
EN

Stack Overflow用户
提问于 2014-09-25 13:22:27
回答 1查看 8.1K关注 0票数 0

我有一个带有节点的oracle data guard设置-一个作为主节点,另一个作为物理备用节点。我还在它上面配置了data guard代理。

问题是当我试图切换的时候,我得到了上面的错误。在使用DGMGRL (data guard broker)进行切换的过程中,成功地完成了切换工作,但切换后无法启动satndby数据库,必须手动启动并挂载备用数据库。

我还检查了tnsnames.ora中的tnsping和服务名称是否正确。tnsnames.ora文件的内容为:

代码语言:javascript
复制
 PRI =
   (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = vcslx502-rana-vm1)(PORT = 1521))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = pri)
      )
   )


 STBY =
   (DESCRIPTION=
       (ADDRESS = (PROTOCOL = TCP) (HOST = vcslx502-rana-vm2) (PORT = 1521))
       (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = stby)
       )
   )

服务名的查询结果如下:

代码语言:javascript
复制
SQL>  select value from v$parameter where name='service_names';

VALUE
--------------------------------------------------------------------------------
pri

在待机状态:

代码语言:javascript
复制
SQL> select value from v$parameter where name='service_names';

VALUE
--------------------------------------------------------------------------------
stby

我还检查了服务,发现这两个服务都在运行。下面是结果。在主服务器上:

代码语言:javascript
复制
[oracle@vcslx502-rana-vm1 admin]$ lsnrctl services

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-SEP-2014 11:45:15

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "pri" has 2 instance(s).
  Instance "pri", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "pri", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
Service "priXDB" has 1 instance(s).
  Instance "pri", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: vcslx502-rana-vm1, pid: 29432>
         (ADDRESS=(PROTOCOL=tcp)(HOST=vcslx502-rana-vm1)(PORT=28706))
Service "pri_DGB" has 1 instance(s).
  Instance "pri", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

在待机状态:

代码语言:javascript
复制
[oracle@vcslx502-rana-vm2 admin]$ lsnrctl services

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-SEP-2014 11:40:30

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "stby" has 2 instance(s).
  Instance "stby", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
  Instance "stby", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
Service "stby_DGB" has 1 instance(s).
  Instance "stby", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

有没有人可以帮助我,这样每次我使用DGMGRL进行切换时,我就不需要启动和挂载备用数据库了?

还有一件事,我可以通过运行所需的每个命令来手动执行切换过程,而不会收到任何此类错误。

谢谢,拉娜

EN

回答 1

Stack Overflow用户

发布于 2014-12-23 04:37:00

listener.ora文件应如下所示:

代码语言:javascript
复制
<unique_name>_LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = <port>))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = <unique_name>_DGMGRL.<domain>)
      (SID_NAME = <oracle_sid>)
      (ORACLE_HOME = <oracle_home>)
    )
  )

你可以在数据库里找到它。在我的例子中,它们如下所示:

代码语言:javascript
复制
SQL>  select name as parameter,value from v$parameter
      where name in ('service_names','db_domain','db_unique_name');

PARAMETER       VALUE
--------------- --------------------
db_domain       rgolovko.com
service_names   RGTST.rgolovko.com
db_unique_name  RGTST

在我将域名添加到侦听器中并将service_name添加到数据库中之后,dataguard将正确地执行切换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26031123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档