duplicate报ORA

duplicate报ORA-01017权限问题

环境:

OS:RedHat EnterPrise Linux 5.8 x64

Cluster:Oracle Grid 11.2.0.4

Database:Oracle Database EnterPrise 11.2.0.4

Archive:RAC DG

今天在配置DG的过程中,前期环境都已经准备好了,就差最后一步将RAC数据duplicate到standby端,但是蹊跷的事情就在这一步发生了,尝试几次都无法将数据duplicate过去,当然我尝试通过拷贝rman备份到对端也无法完成恢复,死活就报ORA-01017错误,经过几个小时的努力,问题最终也算是得到了比较好的解决。如下:

故障现象

  1. rman target sys/oracle@jetdb auxiliary sys/oracle@standby


    Recovery Manager: Release 11.2.0.4.0 - Production on Mon May 26 16:14:36 2014


    Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
    connected to target database: JETDB (DBID=2170518470)
    connected to auxiliary database: JETDB (not mounted)


    RMAN> duplicate target database for standby from active database nofilenamecheck ;


    Starting restore at 26-MAY-14
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=416 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 05/26/2014 16:14:54
    ORA-19870: error while restoring backup piece /DBBackup/Phycal/stdb_cntl_0fp98vq2_1_1.bkp
    ORA-19504: failed to create file " DATA001/jetdb/controlfile/control01.ctl"
    ORA-17502: ksfdcre:3 Failed to create file DATA001/jetdb/controlfile/control01.ctl
    ORA-15001: diskgroup "DATA001" does not exist or is not mounted
    ORA-15055: unable to connect to ASM instance
    ORA-01017: invalid username/password; logon denied

问题分析:

1、 从上面告警日志来看,ORA-01017可以很明显看出是由于权限问题导致。

随即,我们开始检查备库的密码文件,$ORACLE_HOME/dbs/orapw{SID}是存在的。

  1. [oracle@standby dbs]$ ll$ORACLE_HOME/dbs/orapw*
  2. -rw-r----- 1 oracle oinstall 1536 May 2617:49 /DBSoft/oracle/product/11.2.4/dbhome_1/dbs/orapwstandby

2、成人用品店www.xfqiao.com 这个时候我们应该查看的是数据库的alter告警文件:

  1. Errors in file /DBSoft/oracle/diag/rdbms/standby/standby/trace/standby_asmb_11087.trc (incident=24130):
    ORA-00600: internal error code, arguments: [OSDEP_INTERNAL], [], [], [], [], [], [], [], [], [], [], []
    ORA-27302: failure occurred at: skfnbeqOpenI
    Incident details in: /DBSoft/oracle/diag/rdbms/standby/standby/incident/incdir_24130/standby_asmb_11087_i24130.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    ORA-00210: cannot open the specified control file
    ORA-00202: control file: ' DATA001/jetdb/controlfile/control01.ctl'
    ORA-17503: ksfdopn:2 Failed to open file DATA001/jetdb/controlfile/control01.ctl
    ORA-15001: diskgroup "DATA001" does not exist or is not mounted
    ORA-15055: unable to connect to ASM instance
    ORA-15055: unable to connect to ASM instance
    ORA-00600: internal error code, arguments: [OSDEP_INTERNAL], [], [], [], [], [], [], [], [], [], [], []
    ORA-27302: failure occurred at: skfnbeqOpenI
    ORA-1013 signalled during: ALTER DATABASE MOUNT...
    Mon May 26 16:31:34 2014


从告警文件中我们可以很明显的看出是ASM磁盘有问题,进入进入grid用户下用srvctl命令检查 asm状态:


  1. [grid@standby~]$ srvctl status asm
  2. ASM isrunning on standby

  3. SQL>select name,state,free_mb from v$asm_diskgroup;

  4. NAME STATE FREE_MB
  5. --------------------- ----------
  6. DATA001 MOUNTED 121112
  7. ARC001 MOUNTED 122483
  8. BAK001 MOUNTED 122826
结果看来ASM也是没有问题的,那么唯一的出问题的地方可能就是Oracle哪里配置的问题。


3、这个时候我们应该先看看会不会是权限的问题:

  1. [root@standby ~]# id oracle
  2. uid=501(oracle) gid=504(oinstall)groups=504(oinstall) ,505(dba)
  3. [root@standby ~]# id grid
  4. uid=500(grid) gid=504(oinstall) groups=504(oinstall),503(asmadmin),506(asmdba),507(asmoper)
到这里,我们发现问题可能出现在权限上。
oracle没有asmdba权限,随即添加上即可。
  1. [root@standby~]# usermod -G 503,506 oracle
  2. [root@standby~]# id oracle
  3. uid=501(oracle)gid=504(oinstall) groups=504(oinstall),503(asmadmin),505(dba),506(asmdba)
我们可以看到如下,再次执行duplicate,成功:


  1. [oracle@standby~]$ rman target sys/oracle@jetdb auxiliary sys/oracle@standby

    RecoveryManager: Release 11.2.0.4.0 - Production on Mon May 26 17:48:39 2014

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

    connectedto target database: JETDB (DBID=2170518470)

    connectedto auxiliary database: JETDB (not mounted)

    RMAN>duplicate target database for standby from active database nofilenamecheck;

    StartingDuplicate Db at 26-MAY-14

    usingtarget database control file instead of recovery catalog

    allocatedchannel: ORA_AUX_DISK_1

    channelORA_AUX_DISK_1: SID=122 device type=DISK

    contentsof Memory Script:

    {

    backup as copy reuse

    targetfile '/DBSoft/oracle/product/11.2.4/dbhome_1/dbs/orapwjetdb1' auxiliaryformat

    '/DBSoft/oracle/product/11.2.4/dbhome_1/dbs/orapwstandby' ;

    }

    executingMemory Script

    Startingbackup at 26-MAY-14

    allocatedchannel: ORA_DISK_1

    channelORA_DISK_1: SID=14 instance=jetdb1 device type=DISK

    Finishedbackup at 26-MAY-14

    contentsof Memory Script:

    {

    backup as copy current controlfile forstandby auxiliary format ' DATA001/jetdb/controlfile/control01.ctl';

    }

    executingMemory Script

    Startingbackup at 26-MAY-14

    usingchannel ORA_DISK_1

    channelORA_DISK_1: starting datafile copy

    copyingstandby control file

    outputfile name= BAK001/rman/snapcf_jetdb1.f tag=TAG20140526T174956 RECID=11STAMP=848598598

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

    Finishedbackup at 26-MAY-14

    contentsof Memory Script:

    {

    sql clone 'alter database mount standbydatabase';

    }

    executingMemory Script

    sqlstatement: alter database mount standby database

    RMAN-05529:WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed todisk group only.

    contentsof Memory Script:

    {

    set newname for tempfile 1 to

    " data001";

    switch clone tempfile all;

    set newname for datafile 1 to

    " data001";

    set newname for datafile 2 to

    " data001";

    set newname for datafile 3 to

    " data001";

    set newname for datafile 4 to

    " data001";

    set newname for datafile 5 to

    " data001";

    backup as copy reuse

    datafile 1 auxiliary format

    " data001" datafile

    2 auxiliary format

    " data001" datafile

    3 auxiliary format

    " data001" datafile

    4 auxiliary format

    " data001" datafile

    5 auxiliary format

    " data001" ;

    sql 'alter system archive log current';

    }

    executingMemory Script

    executingcommand: SET NEWNAME

    renamedtempfile 1 to data001 in control file

    executingcommand: SET NEWNAME

    executingcommand: SET NEWNAME

    executingcommand: SET NEWNAME

    executingcommand: SET NEWNAME

    executingcommand: SET NEWNAME

    Startingbackup at 26-MAY-14

    usingchannel ORA_DISK_1

    channelORA_DISK_1: starting datafile copy

    inputdatafile file number=00001 name= DATA001/jetdb/datafile/system.268.848240089

    outputfile name= DATA001/standby/datafile/system.257.848598605 tag=TAG20140526T175005

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

    channelORA_DISK_1: starting datafile copy

    inputdatafile file number=00002 name= DATA001/jetdb/datafile/sysaux.260.848240091

    outputfile name= DATA001/standby/datafile/sysaux.258.848598619 tag=TAG20140526T175005

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:07

    channelORA_DISK_1: starting datafile copy

    inputdatafile file number=00003 name= DATA001/jetdb/datafile/undotbs1.263.848240091

    outputfile name= DATA001/standby/datafile/undotbs1.259.848598627tag=TAG20140526T175005

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

    channelORA_DISK_1: starting datafile copy

    inputdatafile file number=00005 name= DATA001/jetdb/datafile/undotbs2.264.848240331

    outputfile name= DATA001/standby/datafile/undotbs2.260.848598627tag=TAG20140526T175005

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

    channelORA_DISK_1: starting datafile copy

    inputdatafile file number=00004 name= DATA001/jetdb/datafile/users.267.848240091

    outputfile name= DATA001/standby/datafile/users.261.848598629 tag=TAG20140526T175005

    channelORA_DISK_1: datafile copy complete, elapsed time: 00:00:02

    Finishedbackup at 26-MAY-14

    sqlstatement: alter system archive log current

    contentsof Memory Script:

    {

    switch clone datafile all;

    }

    executingMemory Script

    datafile1 switched to datafile copy

    inputdatafile copy RECID=11 STAMP=848598635 filename= DATA001/standby/datafile/system.257.848598605

    datafile2 switched to datafile copy

    inputdatafile copy RECID=12 STAMP=848598635 file name= DATA001/standby/datafile/sysaux.258.848598619

    datafile3 switched to datafile copy

    inputdatafile copy RECID=13 STAMP=848598635 filename= DATA001/standby/datafile/undotbs1.259.848598627

    datafile4 switched to datafile copy

    inputdatafile copy RECID=14 STAMP=848598635 file name= DATA001/standby/datafile/users.261.848598629

    datafile5 switched to datafile copy

    inputdatafile copy RECID=15 STAMP=848598635 filename= DATA001/standby/datafile/undotbs2.260.848598627

    FinishedDuplicate Db at 26-MAY-14


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值