Cause
RMAN has failed to start a dummy instance without pfile.
Default values used for the dummy instance are not enough to start the instance up.
This is reported in Bug 9680987 - RMAN CANNOT START DATABASE WITHOUT PARAMETER FILE
Solution
There are two possible solutions:
1- Create temporary init.ora file (/oracle/product/11.2.0/db_1/dbs/initTEST.ora) with the following parameters:
? ? db_name=
? ? large_pool_size=100m
? ? shared_pool_size=250m
? ? db_cache_size=10m
2- Set environment variable? ORA_RMAN_SGA_TARGET before executing rman. For example:
? ? $ export ORA_RMAN_SGA_TARGET=350
?
这篇文章给出了两种解决方法,一种是增加内存参数,一种是设置环境变量,适用版本是11.2.0.1及其以后版本,我这里是oracle 10.2.0.5,因为第二种方法简单,所以尝试使用设置环境变量的方法:
[oracle@jingyong1 ~]$ export ORA_RMAN_SGA_TARGET=350
[oracle@jingyong1 ~]$ rman target sys/system@aux_test
Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 17 10:51:46 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-06003: ORACLE error from target database:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","select ks.inst_id,ksuxsins,k...","sql area","ub1[]: qkexrXformVal")
我这里的版本是10.2.0.5,使用第二种方法不行。只能采取第一种增加内存参数的方法。
[oracle@jingyong1 dbs]$ vi inittest.ora
db_name=test
db_unique_name=_test
control_files= /u01/app/oracle/auxiliary/control01.ctl
db_file_name_convert=(' /u01/app/oracle/oradata/test/',' /u01/app/oracle/auxiliary')
log_file_name_convert=(' /u01/app/oracle/oradata/test/',' /u01/app/oracle/auxiliary')
remote_login_passwordfile=exclusive
compatible = 10.2.0.5.0
db_block_size=8192
sga_target=160M
sga_max_size=160M
pga_aggregate_target=16M
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area? 167772160 bytes
Fixed Size? ? ? ? ? ? ? ? ? 1272624 bytes
Variable Size? ? ? ? ? ? ? 58721488 bytes
Database Buffers? ? ? ? ? 104857600 bytes
Redo Buffers? ? ? ? ? ? ? ? 2920448 bytes
[oracle@jingyong1 dbs]$ export ORACLE_SID=test
[oracle@jingyong1 dbs]$ rman target/
Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 17 11:00:47 2015
Copyright (c) 1982, 2007, Oracle.? All rights reserved.
connected to target database: test (not mounted)
[oracle@oracle11g admin]$ rman target sys/zzh_2046@test auxiliary sys/system@aux_test catalog rman/rman@jy
Recovery Manager: Release 10.2.0.5.0 - Production on Tue Mar 17 11:01:00 2015
Copyright (c) 1982, 2007, Oracle.? All rights reserved.
connected to target database: TEST (DBID=2168949517)
connected to recovery catalog database
connected to auxiliary database: TEST (not mounted)
通过向参数文件中增加内存参数解决了这个故障。
--------------------------------------推荐阅读 --------------------------------------
--------------------------------------分割线 --------------------------------------