RAC+DG环境恢复控制文件报错:
RMAN> restore standby controlfile from
'/home/oracle/rman_bk/standby_07r1qi38_1_1.ctl';
Starting restore at 02-APR-16
using target database control file instead
of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=137 device
type=DISK
channel ORA_DISK_1: restoring control file
RMAN-00571:
===========================================================
RMAN-00569: =============== ERROR MESSAGE
STACK FOLLOWS ===============
RMAN-00571:
===========================================================
RMAN-03002: failure of restore command at
04/02/2016 16:13:26
ORA-19870: error while restoring backup
piece /home/oracle/rman_bk/standby_07r1qi38_1_1.ctl
ORA-19504: failed to create file
"+DATA/phyhbang/controlfile/control01.ctl"
ORA-17502: ksfdcre:3 Failed to create file
+DATA/phyhbang/controlfile/control01.ctl
ORA-15001: diskgroup "DATA" does
not exist or is not mounted
ORA-15040: diskgroup is incomplete
RMAN> quit
处理过程:
1. oracle用户查看v$asm_disk信息 --排除磁盘组未挂载
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
FLASH MOUNTED
GRIDDG MOUNTED
2. 可能的原因是权限不对,分析过程如下:
查看asm磁盘信息:
SQL> select path from v$asm_disk;
PATH
--------------------------------------------------------------------------------
ORCL:RAC_VOTINGDISK
ORCL:RAC_OCR
ORCL:RAC_ASM2
ORCL:RAC_ASM1
查看用户信息:
[oracle@dg58 rman_bk]$ id oracle
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)
[oracle@dg58 rman_bk]$ id grid
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper),1300(dba)[oracle@dg58 rman_bk]$ ls -l /dev/oracleasm/disks --查看磁盘所属用户和所属组
total 0
brw-rw---- 1 grid asmadmin 8, 49 Mar 31 11:50 RAC_ASM1
brw-rw---- 1 grid asmadmin 8, 65 Mar 31 11:50 RAC_ASM2
brw-rw---- 1 grid asmadmin 8, 17 Mar 31 11:50 RAC_OCR
brw-rw---- 1 grid asmadmin 8, 33 Mar 31 11:50 RAC_VOTINGDISK
[oracle@dg58 bin]$ ll $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle oinstall 239627073 Mar 30 21:5
将oracle用户添加到asmadmin组中:
[root@dg58 ~]# usermod -a -G asmadmin oracle
[root@dg58 ~]# id oracle
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1200(asmadmin),1201(asmdba),1300(dba),1301(oper)
重新执行restore命令:
[oracle@dg58 ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sat Apr 2 17:05:49 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: HBANG (not mounted)
RMAN> restore standby controlfile from '/home/oracle/rman_bk/standby_07r1qi38_1_1.ctl';
Starting restore at 02-APR-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=135 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=+DATA/phyhbang/controlfile/control01.ctl
output file name=+FLASH/phyhbang/controlfile/control02.ctl
Finished restore at 02-APR-16
RMAN>
问题解决。
网名为惜分飞的Oracle大牛提供如下可能导致问题情况,如下:
Diskgroup Mount with Long ASMLib Labels Fails with ORA-15040 ORA-15042 (Doc ID 787082.1) --asmlib名字不宜太长
When you create an ASMLib Device, string ORCLDISK is prefixed to the label name and Physical Disk header stores it. You have used a ASMLib label name with more than 24. And that field on Disk Header can accommodate maximum 32 characters.
在此感谢惜分飞和杭州-飞秋的帮助。