select
USERENV('Instance'), -- INST_ID NUMBER
high.thread#, -- THREAD# NUMBER
low.lsq, -- LOW_SEQUENCE# NUMBER
high.hsq -- HIGH_SEQUENCE# NUMBER
from
(
select
a.thread#,
rcvsq,
min(a.sequence#)-1 hsq
from
v$archived_log a,
(
select
thread#,
resetlogs_change#,
max(sequence#) rcvsq
from
v$log_history
where
(thread#, resetlogs_change#) in (
select
thread#,
max(resetlogs_change#)
from
v$log_history
group by
thread#)
group by
thread#,
resetlogs_change# ) b
where
a.thread# = b.thread# and a.resetlogs_change# = b.resetlogs_change# and a.sequence# > rcvsq
group by
a.thread#,
rcvsq) high, (
select
srl_lsq.thread#,
nvl(lh_lsq.lsq, srl_lsq.lsq) lsq
from
(
select
thread#,
min(sequence#)+1 lsq
from
v$log_history,
v$datafile
where
checkpoint_change# <= next_change# and checkpoint_change# >= first_change# and enabled = 'READ WRITE'
group by
thread#) lh_lsq, (
select
thread#,
max(sequence#)+1 lsq
from
v$log_history
where
(
select
min(checkpoint_change#)
from
v$datafile
where
enabled = 'READ WRITE') >= next_change#
group by
thread#) srl_lsq
where
srl_lsq.thread# = lh_lsq.thread#(+) ) low
where
low.thread# = high.thread# and lsq < = hsq and hsq > rcvsq