oracle连接错误20,连接数据库时报错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个处理程序...命令执行成功

而通过RAC11G1、RAC11G2和RAC11G都无法连接数据库:

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/test@172.0.2.63/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已连接。

问题解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值