How to Ignore a Redo Thread in CLOSED Status Using The HVR Capture Process
Question
How can I ignore a redo thread in CLOSED
status using the HVR capture process?
Environment
HVR 5
Answer
Since HVR 5.3, the log reader for Oracle determines how many active threads there are (or were) at any point in time directly from the redo. Prior to version 5.3, HVR queried v$thread on the current database to determine how many threads to expect redo for. In scenarios when the number of threads changed, this could lead to issues. For example, if a RAC database was restored to a single instance system or cluster with fewer nodes without cleaning up the old threads, HVR could be expecting redo for inactive threads.
To confirm this, query the Oracle database v$thread view using the following query:
SQL> select thread#, status, instance from v$thread;
THREAD# STATUS INSTANCE
---------- -------- ---------------------------------------------------------------
1 OPEN proddb
2 CLOSED proddb2
On Windows, a message similar to the following message appears in the log file under the C:hvrhvr_configlog<hub> hvr.out
directory:
2018-10-04T12:14:21-06:00: hub_dl_p-cap-hbprd: F_JT0400: Log scanning error F_JZ180E. An active
redo file was not found for thread 2 in Primary Database when extracting Oracle compatibility
versionTo report this to Technical Support, send the following; (1) The complete error message. (2)
Enroll files matching **.enroll or *.enroll_rev_** in $HVR_CONFIG/router/\<hub>/\<chn>/loc_\<loc> (3)
(null).
How can you instruct the HVR Capture process to ignore the closed thread?
Steps
In your Hub GUI, under the channel definition, go to your source location group and right-click and go to New Action > Environment.
In the /Name field, enter
HVR_ENROLL_VLOG_RESTRICT
.In the /Value field, enter
thread# from v$thread where status <> 'CLOSED'
.Click OK.
Re-initialize and restart the capture process.