连接数据库时报错ORA-12520和ORA-12516错误

在本地恢复了一个RAC数据库,通过设置连接数据库报错ORA-12520

 

 

其中本地tnsnames.ora已经进行了设置:

RACTEST2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ractest.us.oracle.com)
      (INSTANCE_NAME = ractest2)
    )
  )

RACTEST1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ractest.us.oracle.com)
      (INSTANCE_NAME = ractest1)
    )
  )

LISTENERS_RACTEST =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
  )

RACTEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ractest.us.oracle.com)
    )
  )

RAC11G2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac11g.us.oracle.com)
      (INSTANCE_NAME = rac11g2)
    )
  )

RAC11G1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac11g.us.oracle.com)
      (INSTANCE_NAME = rac11g1)
    )
  )

LISTENERS_RAC11G =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
  )

RAC11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = rac11g.us.oracle.com)
    )
  )

listener也监听了对应的实例:

$ lsnrctl status

LSNRCTL for Solaris: Version 11.1.0.6.0 - Production on 05-9 -2008 11:05:52

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER
STATUS
------------------------
别名                      LISTENER_SER2
版本                      TNSLSNR for Solaris: Version 11.1.0.6.0 - Production
启动日期                  02-9 -2008 15:46:25
正常运行时间              2 19 小时 19 28
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /data/oracle/product/11.1/database/network/admin/listener.ora
监听程序日志文件          /data/oracle/diag/tnslsnr/ser2/listener_ser2/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.0.2.69)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.0.2.63)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ser2)(PORT=8800))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ser2)(PORT=7788))(Presentation=FTP)(Session=RAW))
服务摘要..
服务 "+ASM" 包含 1 个例程。
 
例程 "+ASM2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "+ASM_XPT" 包含 1 个例程。
 
例程 "+ASM2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "rac11g.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "rac11gXDB.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "rac11g_XPT.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "ractest.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "ractest2", 状态 READY, 包含此服务的 2 个处理程序...
服务 "ractestXDB.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "ractest2", 状态 READY, 包含此服务的 1 个处理程序...
服务 "ractest_XPT.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
 
例程 "ractest2", 状态 READY, 包含此服务的 2 个处理程序...
命令执行成功

而通过RAC11G1RAC11G2RAC11G都无法连接数据库:

SQL> conn system/test@rac11g1
ERROR:
ORA-12520: TNS:
监听程序无法为请求的服务器类型找到可用的处理程序


SQL> conn system/test@rac11g2
ERROR:
ORA-12520: TNS:
监听程序无法为请求的服务器类型找到可用的处理程序


SQL> conn system/test@rac11g
ERROR:
ORA-12520: TNS:
监听程序无法为请求的服务器类型找到可用的处理程序


SQL> conn system/test@ractest1
已连接。
SQL> conn system/test@ractest2
已连接。
SQL> conn system/test@ractest
已连接。

本地原有的RAC环境可以访问,新恢复的RAC存在问题,尝试通过10g的简便方式连接数据库报错如下:

SQL> conn system/[email protected]/rac11g.us.oracle.com
ERROR:
ORA-12516: TNS:
监听程序找不到符合协议堆栈要求的可用处理程序


警告: 您不再连接到 ORACLE

最后通过lsnrctl service命令发现了问题:

$ lsnrctl services

LSNRCTL for Solaris: Version 11.1.0.6.0 - Production on 05-9 -2008 11:11:27

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

正在连接到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
服务摘要..
服务 "+ASM" 包含 1 个例程。
 
例程 "+ASM2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:10 已拒绝:0 状态:ready
         LOCAL SERVER
服务 "+ASM_XPT" 包含 1 个例程。
 
例程 "+ASM2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:10 已拒绝:0 状态:ready
         LOCAL SERVER
服务 "rac11g.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:0 已拒绝:0 状态:blocked
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.58)(PORT=1521))
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:0 已拒绝:0 状态:blocked
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.59)(PORT=1521))
服务 "rac11gXDB.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "D000"
已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=ser1)(PORT=39999))
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "D000"
已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=ser2)(PORT=37818))
服务 "rac11g_XPT.us.oracle.com" 包含 2 个例程。
 
例程 "rac11g1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:0 已拒绝:0 状态:blocked
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.58)(PORT=1521))
 
例程 "rac11g2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:0 已拒绝:0 状态:blocked
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.59)(PORT=1521))
服务 "ractest.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:1 已拒绝:0 状态:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=ser1)(PORT=1521))
 
例程 "ractest2", 状态 READY, 包含此服务的 2 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:1 已拒绝:0 状态:ready
         LOCAL SERVER
      "DEDICATED"
已建立:0 已拒绝:0 状态:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=ser2)(PORT=1521))
服务 "ractestXDB.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "D000"
已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=ser1)(PORT=42266))
 
例程 "ractest2", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "D000"
已建立:0 已被拒绝:0 当前: 0 最大: 1022 状态: ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=ser2)(PORT=39883))
服务 "ractest_XPT.us.oracle.com" 包含 2 个例程。
 
例程 "ractest1", 状态 READY, 包含此服务的 1 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:1 已拒绝:0 状态:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=ser1)(PORT=1521))
 
例程 "ractest2", 状态 READY, 包含此服务的 2 个处理程序...
   
处理程序:
      "DEDICATED"
已建立:1 已拒绝:0 状态:ready
         LOCAL SERVER
      "DEDICATED"
已建立:0 已拒绝:0 状态:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=TCP)(HOST=ser2)(PORT=1521))
命令执行成功

服务RAC11G指向了源数据库地址,而不是当前的主机地址。

检查数据库中初始化参数设置:

SQL> show parameter local_listener

NAME                   TYPE        VALUE
---------------------- ----------- -------------------
local_listener         string      (ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.58)(PORT=1521))

这里的设置果然有问题,在恢复的过程中,没有设置为本机的IP地址。

修改数据库参数并重启:

SQL> alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.62)(PORT=1521))'
  2  scope = spfile sid = 'rac11g1';

系统已更改。

SQL> alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.63)(PORT=1521))'
  2  scope = spfile sid = 'rac11g2';

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE
例程已经关闭。
SQL> startup
ORACLE
例程已经启动。

Total System Global Area 1.7108E+10 bytes
Fixed Size                  2101632 bytes
Variable Size            3814182528 bytes
Database Buffers         1.3288E+10 bytes
Redo Buffers                4431872 bytes
数据库装载完毕。
数据库已经打开。

另外的节点也重启数据库服务器。

SQL> conn system/test@rac11g
已连接。
SQL> conn system/test@rac11g1
已连接。
SQL> conn system/test@rac11g2
已连接。

问题解决。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-448368/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-448368/

你可能感兴趣的:(数据库,java,网络)