Identify Issues and Fix Streams Capture Process

Posted By Sagar Patil

My Capture, Propagate and apply processes were working fine until the server fial over. After a restart even though capture processes are enabled, they are stalled at status “INITIALIZING”. The Propagate and Apply were working fine.

The alrtlog didn’t show any streams error message except process details when Capture processes were enabled.

Streams CAPTURE C004 started with pid=74, OS id=23523
Thu OCt 21 13:07:18 2010
Streams CAPTURE C019 started with pid=84, OS id=27340
Thu OCt 21 13:27:37 2010
Streams CAPTURE C016 started with pid=81, OS id=5580
Thu OCt 21 13:27:50 2010
Streams CAPTURE C014 started with pid=56, OS id=5653
Thu OCt 21 13:27:59 2010
Streams CAPTURE C013 started with pid=68, OS id=5759
Thu OCt 21 13:28:11 2010
Streams CAPTURE C011 started with pid=86, OS id=5881
Thu OCt 21 13:28:35 2010
Streams CAPTURE C007 started with pid=87, OS id=6068
Thu OCt 21 13:28:48 2010
Streams CAPTURE C003 started with pid=88, OS id=6149
Thu OCt 21 13:41:41 2010

Find the Captured SCNs number and then locate the log files needed

select min(start_scn), min(applied_scn)     from dba_capture;

Find the Archivelog names by using the SCN

SELECT   name,
thread#,
sequence#,
status,
first_time,
next_time,
first_change#,
next_change#
FROM   v$archived_log
WHERE   111694632468 BETWEEN first_change# AND next_change#;

If the status column from above Query returned D then please restore the archivelog.

The following query can be used to determine the oldest archive log that will need to be read, during the next restart of a capture process.

SELECT   a.sequence#, b.name
FROM   v$log_history a, v$archived_log b
WHERE       a.first_change# <= (SELECT   required_checkpoint_scn
FROM   dba_capture
WHERE   capture_name = ‘SCOTT_C’)
AND a.next_change# > (SELECT   required_checkpoint_scn
FROM   dba_capture
WHERE   capture_name = ‘SCOTT_C’)
AND a.sequence# = b.sequence#(+);

If needed restore archivelog files using

$RMAN target / ${CATALOG} log=$LOG_FILE append << EOF
RUN {
### Backup Archived Logs
allocate channel t1 type disk
set archivelog destination to ‘/mnt/logs/oradata/TEST/arch’;
# restore archivelog from logseq=9970 until logseq=9984 thread=1;    — Use if you know the SEQ number needed (select * from V$ARCHIVED_LOG )
restore ARCHIVELOG FROM TIME ‘SYSDATE-3’ UNTIL TIME ‘SYSDATE-1’;  — Use if you want to restore daywise
release channel t1;
}
}
exit;
EOF

After log restore, I  stopped/started capture processes and it all worked fine.

Leave a Reply

You must be logged in to post a comment.

One Response to “ Oracle FlashBack Error : ORA-16014: log 3 sequence not archived, no available destinations ”

  1. See this post as well
    http://oracledbasupport.co.uk/archivelogs-deleted-unavailable-archive-files-during-rman-backup/

Top of Page

Top menu