auxiliary database: ORA-12528错误

Oracle Data Guard的重建过程中,曾经发生的一次故障,现在回想应该属于备库动态监听和重启监听器问题导致的。

因当时某种原因导致,Data Guard环境需要重新搭建。为此,当我在主库上执行RMAN备份后复制到,备库的服务器,但是执行到如下步骤时,开始出错,然后我又把备库的监听器重启了...

1:RMAN> backup database format='/backup/full_%u%p%s.dbf' include current controlfile for standby;

2:rman的备份集拷贝至standby库相同的路径

3 复制主数据库RMAN备份及控制文件到备库

  注意:备份存放位置要与primary database RMAN备份文件的位置相同. 控制文件存放位置要与生成standby database controlfile的位置相同

scp /oracle/rmanback/*.dbf root@192.168.18.2:/oracle/rmanback/

scp /oracle/rmanback/*.ctl root@192.168.18.2:/oracle/oracle/oradata/stand

[@more@]

4.对拷贝过来备份进行Rman duplicate恢复操作:

-bash-3.00$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Fri Oct 22 09:35:12 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: BOSS (DBID=1185551605)

RMAN> connect auxiliary sys/oracle@standby

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections

避免该错误方法有两个:

1在备库上执行duplicate操作(在我第一次执行过在备库上执行该方法,通过实际操作已经验证该方法是没有问题的):

-bash-3.00$ rman target sys/onewave@primary auxiliary /

Recovery Manager: Release 10.2.0.1.0 - Production on Fri Oct 22 20:53:28 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: BOSS (DBID=1185551605)

connected to auxiliary database: BOSS (not mounted)

RMAN> duplicate target database for standby nofilenamecheck;

Starting Duplicate Db at 22-OCT-10

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: sid=1090 devtype=DISK

allocated channel: ORA_AUX_DISK_2

channel ORA_AUX_DISK_2: sid=1089 devtype=DISK

allocated channel: ORA_AUX_DISK_3

channel ORA_AUX_DISK_3: sid=1088 devtype=DISK

allocated channel: ORA_AUX_DISK_4

channel ORA_AUX_DISK_4: sid=1087 devtype=DISK

2、在备库的监听器配置为静态注册方式:

实例虽然启动,但是没有注册到监听。实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动。因此造成了上面的错误。在$ORACLE_HOME/network/admin目录下的listener.ora中添加下面的内容:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:/oracle/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME =orcl)

(ORACLE_HOME = D:/oracle/product/10.2.0/db_1)

(SID_NAME =orcl)

)

)

在动态监听情况下,如果监听器后来发生了重启,动态注册信息将会丢失。显然,最好在所有的数据库启动之前先启动监听器,这样就会避免没有显式设置 service_namesinstance_name的值时,若重启监听器带来的动态注册信息丢失的情况。

为初始化参数service_namesinstance_name设置显式的值是个很好的实践,尽管如果您没有设置它们,Oracle也会为动态注册而生成默认值(基于db_namedb_main)。这样做的原因是,如果监听器在数据库启动之后重新启动,其动态注册行为将会有一些微妙的区别.如果监听器在数据库运行之后重新启动,你们仅当您在init.ora文件中显式地设置了service_namesinstance_name的值时,每个数据库的PMON进程才会在很短的时间之后自动注册数据库。

关于动态和静态监听的区别,请访问本站连接:http://kuqlan.itpub.net/post/38575/523820

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

转载于:http://blog.itpub.net/18841027/viewspace-1055260/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值