Chinaunix

标题: 11gR2 RAC to single DataGuard问题 [打印本页]

作者: Samdy_Chan    时间: 2014-12-19 00:41
标题: 11gR2 RAC to single DataGuard问题
本帖最后由 Samdy_Chan 于 2014-12-19 00:49 编辑

各位好:
       我现在想在 RHEL5 OS环境下的 11.2.0.1.0 的双节点RAC环境到单实例(也是11.2.0.1.0,单实例备库也使用ASM磁盘组)的DataGuard,但在主库执行:
rman target / auxiliary sys@stdb
RMAN > duplicate target database for standby nofilenamecheck;
后,提示如下错误:
Recovery Manager: Release 11.2.0.1.0 - Production on Thu Dec 18 23:44:01 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RACDB (DBID=856268224)
connected to auxiliary database: RACDB (not mounted)

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece /backup/rman_bak/dg_bak/racdb_ctl_0apqgkc8_1_1_20141218
channel ORA_AUX_DISK_1: ORA-19870: error while restoring backup piece /backup/rman_bak/dg_bak/racdb_ctl_0apqgkc8_1_1_20141218
ORA-19504: failed to create file "+DATA/stdb/controlfile/control01.ctl"
ORA-15012: ASM file 'stdb/controlfile/control01.ctl' does not exist
ORA-17502: ksfdcre:5 Failed to create file +DATA/stdb/controlfile/control01.ctl
ORA-15081: failed to submit an I/O operation to a disk




并且在备库RMAN中执行  restore standby controlfile from '/backup/rman_bak/dg_bak/racdb_ctl_0apqgkc8_1_1_20141218';
也是提示和以上一样的错误。并且我预先在+DATA磁盘组中创建stdb/controlfile目录也不行。


但我在备库的init参数文件中定义contro_files='/backup/control01.ctl' (OS目录)恢复就可以,但为什么恢复到ASM磁盘组就报以上错误呢?
并且我单实例的所有磁盘组已经是online正常了的:
[grid@dg-st tmp]$ crs_stat -t -v
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora.ARCH.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    dg-st      
ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    dg-st      
ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    dg-st      
ora.cssd       ora.cssd.type  0/5    0/5    ONLINE    ONLINE    dg-st      
ora.diskmon    ora....on.type 0/10   0/5    ONLINE    ONLINE    dg-st

备库oracle用户组信息如下:
[root@dg-st pfile]# id oracle
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)

我的备库的参数文件内容如下:
*.__db_cache_size=33554432
*.__java_pool_size=4194304
*.__large_pool_size=4194304
*.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.__pga_aggregate_target=201326592
*.__sga_target=213909504
*.__shared_io_pool_size=0
*.__shared_pool_size=159383552
*.__streams_pool_size=0
*.db_name=racdb
*.db_unique_name=stdb
*.db_block_size=8192         
*.db_create_file_dest='+DATA'
*.control_files='+DATA/stdb/controlfile/control01.ctl'
*.thread=1
*.undo_tablespace=UNDOTBS1
*.log_archive_config='dg_config=(racdb,stdb)'
*.db_recovery_file_dest='+ARCH'
*.db_recovery_file_dest_size=8G
*.log_archive_dest_1='location=+ARCH/stdb/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=stdb'
*.log_archive_dest_2='service=racdb lgwr async noaffirm reopen=300 valid_for=(online_logfiles,primary_role) db_unique_name=racdb'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.remote_login_passwordfile=exclusive
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=4
*.fal_server='racdb1','racdb2'
*.fal_client=stdb
#*.db_file_name_convert='+DATA/racdb','+DATA/stdb'
#*.log_file_name_convert='+DATA/racdb','+DATA/stdb'
*.standby_file_management=auto
*.user_dump_dest='/u01/app/oracle/diag/rdbms/stdb/stdb/trace'
*.audit_file_dest='/u01/app/oracle/admin/stdb/adump'
*.background_dump_dest='/u01/app/oracle/diag/rdbms/stdb/stdb/trace'
*.core_dump_dest='/u01/app/oracle/diag/rdbms/stdb/stdb/cdump'
------------
请问为什么恢复到磁盘组就有问题,恢复到OS目录就可以。。。
还望各位帮忙解决一下,万分感谢!      
作者: flutter    时间: 2014-12-19 08:55
本帖最后由 flutter 于 2014-12-19 09:18 编辑

大概看了下,你的操作有问题吧:

1,那个rman target XXX@XXX auxiliary /

RMAN>duplicate target database for standby;

应该是在备库执行,而不是在主库执行。

2,STANDBY CONTROLFIE不是从BACKUP恢复来的,是主库执行

alter database create standby controlfile as生成的。

按照官方文档,仔细检查主库和备库的文件及路径。

如果路径完全一致,则很容易恢复。

如果路径不一致,需要加上参数file_name_convert

我做了几个,没有出问题。
作者: Samdy_Chan    时间: 2014-12-19 11:30
回复 2# flutter


   
rman target / auxiliary sys@stdb
RMAN > duplicate target database for standby nofilenamecheck;

这个在主库执行,stdb是备库。有问题吗?
作者: gorgeous5367    时间: 2015-01-09 16:26
回复 3# Samdy_Chan


   不行  要在备库执行才可以




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2