本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客
本文链接地址: 利用XTTS增量进行跨平台迁移遭遇Bug
在某客户这里进行XTTS的增量测试,大概10TB的样子,脚本挂后台运行,发现只完成了2T多一点,看日志有很多error。这让我非常不解,部分文件能够转换成功,部分转换不成功,提示数据库为非归档模式,为如下类型错误:
[ora1124@cszwadb1 xtts_l_2]$ rman target / debug trace=/tmp/xtts_debug.log Recovery Manager: Release 11.2.0.4.0 - Production on Wed Mar 18 10:40:07 2015 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. RMAN-06006: connected to target database: XTT (not mounted) RMAN> convert from platform 'AIX-Based Systems (64-bit)' datafile '/test/oracle/accta/oradata/vgacctdb02/lv_vg02_10g_011' format '+DG_DATA01/accta/datafile/vgacctdb02/lv_vg02_10g_011.dbf' ; RMAN-03090: Starting conversion at target at 18-MAR-15 RMAN-06009: using target database control file instead of recovery catalog RMAN-08030: allocated channel: ORA_DISK_1 RMAN-08500: channel ORA_DISK_1: SID=5004 device type=DISK RMAN-08589: channel ORA_DISK_1: starting datafile conversion RMAN-08506: input file name=/test/oracle/accta/oradata/vgacctdb02/lv_vg02_10g_011 RMAN-06731: command backup:87.2% complete, time left 00:00:18 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of conversion at target command on ORA_DISK_1 channel at 03/18/2015 10:42:46 ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
通过打开rman的debug操作,发现确实会去判断该实例是否未归档模式,如下:
[ora1124@cszwadb1 xtts_l]$ tail -f /tmp/xtts_debug.log DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED devtype=DISK DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) 。。。。。。。 DBGSQL: TARGET> select decode(open_mode, 'MOUNTED', 0, 'READ WRITE', 1, 'READ ONLY', 1, 'READ ONLY WITH APPLY', 1, 0) into :isdbopen from v$database DBGSQL: sqlcode = 1507 DBGSQL: error: ORA-01507: database not mounted (krmkosqlerr) DBGSQL: (krmkosqlerr) DBGSQL: EXITED krmkosqlerr RMAN-06731: command backup:87.2% complete, time left 00:00:18 DBGSQL: EXITED krmkrpr with status 0 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED devtype=DISK DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 17 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED devtype=DISK DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 17 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: krmxr - sleeping for 10 seconds DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED devtype=DISK DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 17 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: krmxr - sleeping for 10 seconds DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED devtype=DISK DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 17 with status: FINISHED16 for channel ORA_DISK_1 DBGRPC: krmxr - channel ORA_DISK_1 calling peicnt DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=19583 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPPIECECREATE excl: 167 DBGRPC: krmxrpc - caloing krmxtrim: with message of length 167: @@@ORA-19583: conversation terminated due to error DBGRPC: ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode DBGRPC: ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 1384 DBGRPC: @@@ DBGMISC: ENTERED krmzejob [10:42:46.639] DBGMISC: Input Args(failed=1),(errnum=-19583) [10:42:46.639] (krmzejob) DBGMISC: duration(stepid=1),endtime=874636966,jobtime=145s [10:42:46.639] (krmzejob) DBGMISC: duration(stepid=1), remaining(chn sec,bytes)=(0,10736369664) [10:42:46.639] (krmzejob) DBGMISC: EXITED krmzejob with status 0 (FALSE) [10:42:46.639] elapsed time [00:00:00:00.000] DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.GETLIMIT excl: 0 DBGRPC: krmxr - channel ORA_DISK_1 returned from peicnt DBGMISC: ENTERED krmstrim [10:42:46.640] DBGMISC: Trimming message: ORA-19583: conversation terminated due to error [10:42:46.640] (krmstrim) DBGMISC: ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode (krmstrim) DBGMISC: ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 1384 (krmstrim) DBGMISC: ORA-06512: at line 554 (krmstrim) DBGMISC: (190) (krmstrim) DBGMISC: EXITED krmstrim with status 23 [10:42:46.640] elapsed time [00:00:00:00.000] DBGRPC: krmxr - channel ORA_DISK_1 got execution errors (step_60) DBGRPC: krmxr - exiting with 1 DBGMISC: krmqexe: unhandled exception on channel ORA_DISK_1 [10:42:46.640] DBGMISC: EXITED krmiexe with status 1 [10:42:46.640] elapsed time [00:00:02:25.142] DBGMISC: ENTERED krmkmrsr [10:42:46.640] DBGMISC: EXITED krmkmrsr [10:42:46.640] elapsed time [00:00:00:00.000] DBGMISC: ENTERED krmkjcl [10:42:46.640] DBGSQL: ENTERED krmkosqlerr DBGSQL: TARGET> select decode(open_mode, 'MOUNTED', 0, 'READ WRITE', 1, 'READ ONLY', 1, 'READ ONLY WITH APPLY', 1, 0) into :isdbopen from v$database DBGSQL: sqlcode = 1507 DBGSQL: error: ORA-01507: database not mounted (krmkosqlerr) DBGSQL: (krmkosqlerr) DBGSQL: EXITED krmkosqlerr DBGSQL: TARGET> select decode(status, 'OPEN', 1, 0), decode(archiver, 'FAILED', 1, 0), decode(database_status, 'SUSPENDED', 1, 0) into :status, :archstuck, :dbsuspended from v$instance DBGSQL: sqlcode = 0 DBGSQL: D :status = 0 DBGSQL: D :archstuck = 0 DBGSQL: D :dbsuspended = 0 DBGSQL: TARGET> select value into :vcomp_txt from v$parameter where name = 'compatible' DBGSQL: sqlcode = 0 DBGSQL: D :vcomp_txt = 11.2.0.4.0 DBGSQL: TARGET> declare dot1st number; dot2nd number; dot3rd number; comptxt varchar2(255) := :vcomp_txt; begin comptxt := comptxt || '.0.0'; dot1st := instr(comptxt, '.', 1, 1); dot2nd := instr(comptxt, '.', 1, 2); dot3rd := instr(comptxt, '.', 1, 3); comptxt := lpad(substr(comptxt, 1, dot1st - 1), 2, '0') || lpad(substr(comptxt, dot1st + 1, dot2nd - dot1st - 1), 2, '0') || lpad(substr(comptxt, dot2nd + 1, dot3rd - dot2nd - 1), 2, '0');:vcomp_ub4 := to_number(comptxt); end; DBGSQL: sqlcode = 0 DBGSQL: B :vcomp_ub4 = 110200 DBGSQL: B :vcomp_txt = 11.2.0.4.0 DBGMISC: krmkpdbs(): vcomp_txt:11.2.0.4.0 vcomp_ub4:110200 flags:0 [10:42:46.646] DBGSQL: ENTERED krmkusl DBGSQL: EXITED krmkusl with status 0 DBGSQL: ENTERED krmkusl DBGSQL: EXITED krmkusl with status 0 DBGMISC: EXITED krmkjcl [10:42:46.647] elapsed time [00:00:00:00.006] DBGMISC: error recovery releasing channel resources [10:42:46.647] DBGRPC: krmxcr - channel ORA_DISK_1 resetted DBGRPC: krmxcr - channel default resetted DBGMISC: ENTERED krmice [10:42:46.647] DBGMISC: command to be compiled and executed is: cleanup [10:42:46.647] (krmice) DBGMISC: command after this command is: NONE [10:42:46.647] (krmice) DBGMISC: current incarnation does not matter for cleanup [10:42:46.647] (krmice) DBGMISC: ENTERED krmicomp [10:42:46.647] DBGMISC: ENTERED krmkomp [10:42:46.647] DBGRCV: ENTERED krmkucls DBGRCV: EXITED krmkucls with address 0 DBGMISC: krmkcomp - Name translation defaults to catalog - 2 [10:42:46.647] (krmkomp) DBGMISC: ENTERED krmknmtr [10:42:46.647] DBGMISC: EXITED krmknmtr with status cleanup [10:42:46.647] elapsed time [00:00:00:00.000] DBGMISC: ENTERED krmkdps [10:42:46.648] DBGMISC: EXITED krmkdps [10:42:46.648] elapsed time [00:00:00:00.000] DBGMISC: EXITED krmkomp [10:42:46.648] elapsed time [00:00:00:00.000] DBGPLSQL: the compiled command tree is: [10:42:46.648] (krmicomp) DBGPLSQL: 1 CMD type=cleanup cmdid=1 status=NOT STARTED DBGPLSQL: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGPLSQL: 1 TEXTNOD = -- clean DBGPLSQL: 2 TEXTNOD = declare DBGPLSQL: 3 TEXTNOD = /* device status variables */ DBGPLSQL: 4 TEXTNOD = state binary_integer; DBGPLSQL: 5 TEXTNOD = devtype varchar2(512); DBGPLSQL: 6 TEXTNOD = name varchar2(512); DBGPLSQL: 7 TEXTNOD = bufsz binary_integer; DBGPLSQL: 8 TEXTNOD = bufcnt binary_integer; DBGPLSQL: 9 TEXTNOD = kbytes number; DBGPLSQL: 10 TEXTNOD = readrate binary_integer; DBGPLSQL: 11 TEXTNOD = parallel binary_integer; DBGPLSQL: 12 TEXTNOD = thread number; DBGPLSQL: 13 TEXTNOD = kcrmx_recs number; DBGPLSQL: 14 TEXTNOD = autochn number := 0; DBGPLSQL: 15 TEXTNOD = mr_not_started exception; DBGPLSQL: 16 TEXTNOD = pragma exception_init(mr_not_started, -1112); DBGPLSQL: 17 TEXTNOD = db_not_mounted exception; DBGPLSQL: 18 TEXTNOD = pragma exception_init(db_not_mounted, -1507); DBGPLSQL: 19 TEXTNOD = begin DBGPLSQL: 20 TEXTNOD = DBGPLSQL: 21 PRMVAL = autochn := 1; DBGPLSQL: 22 TEXTNOD = begin DBGPLSQL: 23 TEXTNOD = krmicd.execSql('select count(*) from x$dual'); DBGPLSQL: 24 TEXTNOD = exception DBGPLSQL: 25 TEXTNOD = when others then DBGPLSQL: 26 TEXTNOD = krmicd.clearErrors; DBGPLSQL: 27 TEXTNOD = end; DBGPLSQL: 28 TEXTNOD = sys.dbms_backup_restore.backupCancel; DBGPLSQL: 29 TEXTNOD = sys.dbms_backup_restore.restoreCancel(FALSE); DBGPLSQL: 30 TEXTNOD = begin DBGPLSQL: 31 TEXTNOD = sys.dbms_backup_restore.proxyCancel; DBGPLSQL: 32 TEXTNOD = exception DBGPLSQL: 33 TEXTNOD = when others then DBGPLSQL: 34 TEXTNOD = krmicd.clearErrors; DBGPLSQL: 35 TEXTNOD = end; DBGPLSQL: 36 TEXTNOD = sys.dbms_backup_restore.cfileUseCurrent; -- release enqueue DBGPLSQL: 37 TEXTNOD = sys.dbms_backup_restore.deviceStatus(state, devtype, name, bufsz, bufcnt, DBGPLSQL: 38 TEXTNOD = kbytes, readrate, parallel); DBGPLSQL: 39 TEXTNOD = begin DBGPLSQL: 40 TEXTNOD = sys.dbms_backup_restore.bmrCancel; DBGPLSQL: 41 TEXTNOD = exception DBGPLSQL: 42 TEXTNOD = when others then DBGPLSQL: 43 TEXTNOD = krmicd.clearErrors; DBGPLSQL: 44 TEXTNOD = end; DBGPLSQL: 45 TEXTNOD = begin DBGPLSQL: 46 TEXTNOD = sys.dbms_backup_restore.flashbackCancel; DBGPLSQL: 47 TEXTNOD = exception DBGPLSQL: 48 TEXTNOD = when others then DBGPLSQL: 49 TEXTNOD = krmicd.clearErrors; DBGPLSQL: 50 TEXTNOD = end; DBGPLSQL: 51 TEXTNOD = begin DBGPLSQL: 52 TEXTNOD = if krmicd.mrCheck > 0 then DBGPLSQL: 53 TEXTNOD = krmicd.execSql('alter database recover cancel'); DBGPLSQL: 54 TEXTNOD = end if; DBGPLSQL: 55 TEXTNOD = exception DBGPLSQL: 56 TEXTNOD = when others then DBGPLSQL: 57 TEXTNOD = krmicd.clearErrors; DBGPLSQL: 58 TEXTNOD = end; DBGPLSQL: 59 TEXTNOD = -- If autchn is set to 0, then it the channel is user allocated, hence can be DBGPLSQL: 60 TEXTNOD = -- deallocated. However, we will call dbms_backup_restore.deviceDeallocate DBGPLSQL: 61 TEXTNOD = -- only if server says that the device is actually allocated. On the DBGPLSQL: 62 TEXTNOD = -- other hand, we will call krmicd.clearChannelInfo even if server DBGPLSQL: 63 TEXTNOD = -- thinks that device is not allocated because it can be that DBGPLSQL: 64 TEXTNOD = -- deviceAllocate have failed. DBGPLSQL: 65 TEXTNOD = if (autochn = 0) then DBGPLSQL: 66 TEXTNOD = if (state > sys.dbms_backup_restore.NO_DEVICE) then DBGPLSQL: 67 TEXTNOD = sys.dbms_backup_restore.deviceDeallocate; DBGPLSQL: 68 TEXTNOD = krmicd.writeMsg(8031, krmicd.getChid); DBGPLSQL: 69 TEXTNOD = -- Clear the client_info field on channels which have no device DBGPLSQL: 70 TEXTNOD = -- allocated. This has the effect of leaving the client_info field DBGPLSQL: 71 TEXTNOD = -- present on the default channel. DBGPLSQL: 72 TEXTNOD = sys.dbms_backup_restore.set_client_info(''); DBGPLSQL: 73 TEXTNOD = end if; DBGPLSQL: 74 TEXTNOD = krmicd.clearChannelInfo; -- tell krmq no device here now DBGPLSQL: 75 TEXTNOD = end if; DBGPLSQL: 76 TEXTNOD = sys.dbms_backup_restore.setRmanStatusRowId(rsid=>0, rsts=>0); DBGPLSQL: 77 TEXTNOD = end; DBGMISC: EXITED krmicomp with address 36396808 [10:42:46.651] elapsed time [00:00:00:00.004] DBGMISC: ENTERED krmiexe [10:42:46.651] DBGMISC: Executing command cleanup [10:42:46.651] (krmiexe) DBGRPC: krmxr - entering DBGRPC: krmxpoq - returning rpc_number: 5 with status: FINISHED130 for channel default DBGRPC: krmxr - channel default has rpc_count: 5 DBGRPC: krmxpoq - returning rpc_number: 18 with status: FINISHED7 for channel ORA_DISK_1 DBGRPC: krmxr - channel ORA_DISK_1 has rpc_count: 18 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: channel default running cleanup (krmqgns) DBGRPC: EXITED krmqgns with status 0 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel ORA_DISK_1 (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: channel ORA_DISK_1 running cleanup (krmqgns) DBGRPC: EXITED krmqgns with status 0 DBGRPC: krmxcis - channel default, calling pcicmp DBGRPC: krmxcis - channel ORA_DISK_1, calling pcicmp DBGRPC: krmxr - channel default calling peicnt DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPCANCEL excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.RESTORECANCEL excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.PROXYCANCEL excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.CFILEUSECURRENT excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.DEVICESTATUS excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BMRCANCEL excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.FLASHBACKCANCEL excl: 0 DBGRPC: krmxrpc - channel default kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.SETRMANSTATUSROWID excl: 0 DBGRPC: krmxr - channel default returned from peicnt DBGRPC: krmxr - channel default finished step DBGRPC: ENTERED krmqgns krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxr - channel ORA_DISK_1 calling peicnt DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPCANCEL excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.RESTORECANCEL excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.PROXYCANCEL excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.CFILEUSECURRENT excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.DEVICESTATUS excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BMRCANCEL excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.FLASHBACKCANCEL excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.SETRMANSTATUSROWID excl: 0 DBGRPC: krmxr - channel ORA_DISK_1 returned from peicnt DBGRPC: krmxr - channel ORA_DISK_1 finished step DBGRPC: ENTERED krmqgns krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel ORA_DISK_1 (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: no work found for channel ORA_DISK_1 (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel ORA_DISK_1 (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=cleanup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=NOT STARTED DBGRPC: krmqgns: no work found for channel ORA_DISK_1 (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxr - all done DBGRPC: krmxr - exiting with 0 DBGMISC: EXITED krmiexe with status 0 [10:42:46.673] elapsed time [00:00:00:00.021] DBGMISC: Finished cleanup at 18-MAR-15 [10:42:46.673] DBGMISC: ENTERED krmkjcl [10:42:46.673] DBGMISC: EXITED krmkjcl [10:42:46.673] elapsed time [00:00:00:00.000] DBGMISC: EXITED krmice [10:42:46.673] elapsed time [00:00:00:00.026] Calling krmmpem from krmmexe RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of conversion at target command on ORA_DISK_1 channel at 03/18/2015 10:42:46 RMAN-10032: unhandled exception during execution of job step 1: ORA-06512: at line 554 RMAN-10035: exception raised in RPC: ORA-19583: conversation terminated due to error ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 1384 RMAN-10031: RPC Error: ORA-19583 occurred during call to DBMS_BACKUP_RESTORE.BACKUPPIECECREATE DBGMISC: ENTERED krmkursr [10:42:46.674] DBGMISC: EXITED krmkursr [10:42:46.674] elapsed time [00:00:00:00.000]
查询发现这应该是Oracle bug 17565514 导致。处理方式是将辅助实例xtt创建为一个测试库,调整为归档模式。同时启动到mount状态下进行操作。于是这里我干脆创建一个xtt的测试库得了,如下:
SQL> show parameter instance NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ active_instance_count integer cluster_database_instances integer 1 instance_groups string instance_name string xtt instance_number integer 0 instance_type string RDBMS open_links_per_instance integer 4 parallel_instance_group string parallel_server_instances integer 1 SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2260088 bytes Variable Size 335545224 bytes Database Buffers 708837376 bytes Redo Buffers 22294528 bytes Database mounted. SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2260088 bytes Variable Size 335545224 bytes Database Buffers 708837376 bytes Redo Buffers 22294528 bytes Database mounted. SQL>
创建后,将xtt启动到mount状态,然后再进行测试,发现一切OK。
[ora1124@cszwadb1 xtts_l_2]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Wed Mar 18 11:07:20 2015 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: XTT (DBID=4264586957, not open) RMAN> convert from platform 'AIX-Based Systems (64-bit)' datafile '/test/oracle/accta/oradata/vgacctdb02/lv_vg02_10g_011' format '+DG_DATA01/accta/datafile/vgacctdb02/%N_%f.dbf'; Starting conversion at target at 18-MAR-15 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=211 device type=DISK channel ORA_DISK_1: starting datafile conversion input file name=/test/oracle/accta/oradata/vgacctdb02/lv_vg02_10g_011 converted datafile=+DG_DATA01/accta/datafile/vgacctdb02/invoice_idx_01_216.dbf channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:02:25 Finished conversion at target at 18-MAR-15
不仅仅是我的手工测试ok,而且所有的后台脚本运行也都OK,目前已经转换了3TB,慢慢跑吧!
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 9437166 7045877 0 7045877 0 N DG_DATA01/ ASMCMD> ASMCMD> ASMCMD> ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 9437166 6277828 0 6277828 0 N DG_DATA01/ ASMCMD> ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 9437166 6093498 0 6093498 0 N DG_DATA01/ ASMCMD>
分享给大家,以免大家以后再踩这个坑!
Related posts: