RMAN-00554 RMAN-04005 ORA-12528
RMAN在使用recover catalog的情况下在nomount状态连接实例出现以下错误信息: RMAN-00554: initialization of internal recovery
RMAN在使用recover catalog的情况下在nomount状态连接实例出现以下错误信息:
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
下面我来模拟一下这种情况
1.将数据库置于nomount状态
SQL> startup nomount
Oracle instance started.
Total System Global Area 327155712 bytes
Fixed Size 1273516 bytes
Variable Size 138412372 bytes
Database Buffers 184549376 bytes
Redo Buffers 2920448 bytes
2.连接目标数据库
[oracle@oracle11g ~]$ rman target sys/zzh_2046@test catalog rman/rman@jy
Recovery Manager: Release 10.2.0.5.0 - Production on Sun Feb 1 23:01:08 2015
Copyright (c) 1982, 2007, Oracle. All rights reserved.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
3.检查监听状态
[oracle@oracle11g ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 01-FEB-2015 23:00:49
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date 01-FEB-2015 22:51:09
Uptime 0 days 0 hr. 9 min. 40 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/10.2.0/db/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle11g)(PORT=1521)))
Services Summary...
Service "test" has 1 instance(s).
Instance "test", status BLOCKED, has 1 handler(s) for this service...
Service "test_XPT" has 1 instance(s).
Instance "test", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully
从上面的信息可以看到Instance "test",status BLOCKED,,对于ora-12528错误在MOS有一篇文章描述造成这种问题的原因:
Cause
When an instance is in restricted mode, PMON updates the listener with that information and blocks new connections from being established.
The lsnrctl services output will show the handler is blocked for new connections or lsnrctl status may show the instance is in RESTRICTED mode.
解决方法如下:
The (UR=A) clause for TNS connect strings was created in response to an enhancement request. This clause can be inserted into the "(CONNECT_DATA=" section of a TNS connect string and allow a privileged or administrative user to connect via the listener even when the service handler is blocking connections for non-privileged users.
Here's an example of a connect string configured with (UR=A):
PROD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost.oracle.com)(PORT = 1521)))
(CONNECT_DATA =
(UR=A)
(SERVICE_NAME = prod10ib.oracle.com)
)
)
Please note that the (UR=A) clause is intended to work with a dynamically registered handler so the use of SERVICE_NAME versus SID is required when using dynamic registration (i.e. handler exists in lsnrctl output but is BLOCKED). The use of SID in a TNS connect string may allow a connection if using a static handler in the listener.ora file under SID_DESC.
4.修改tns文件增加(UR=A)
[oracle@oracle11g admin]$ vi tnsnames.ora
test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1521))
)
(CONNECT_DATA =
(UR=A)
(SERVICE_NAME = test)
)
)
jy =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = jy)
)
)
5.再次连接目标数据库执行恢复
[oracle@oracle11g admin]$ rman target catalog
Recovery Manager: Release 10.2.0.5.0 - Production on Sun Feb 1 23:04:03 2015
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: test (not mounted)
connected to recovery catalog database
RMAN> restore controlfile;
Starting restore at 01-FEB-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK