DBZ-3332 Limit oldest archive log query to only active records
This commit is contained in:
parent
6e4abbdb68
commit
1d46cdb6b7
@ -136,6 +136,7 @@ static String oldestFirstChangeQuery(Duration archiveLogRetention) {
|
||||
sb.append("UNION SELECT MIN(FIRST_CHANGE#) AS FIRST_CHANGE# ");
|
||||
sb.append("FROM ").append(ARCHIVED_LOG_VIEW).append(" ");
|
||||
sb.append("WHERE DEST_ID IN (").append(localArchiveLogDestinationsOnlyQuery()).append(") ");
|
||||
sb.append("AND STATUS='A'");
|
||||
|
||||
if (!archiveLogRetention.isNegative() && !archiveLogRetention.isZero()) {
|
||||
sb.append("AND FIRST_TIME >= SYSDATE - (").append(archiveLogRetention.toHours()).append("/24)");
|
||||
|
@ -236,7 +236,7 @@ public void testStatements() {
|
||||
result = SqlUtils.oldestFirstChangeQuery(Duration.ofHours(0L));
|
||||
expected = "SELECT MIN(FIRST_CHANGE#) FROM (SELECT MIN(FIRST_CHANGE#) AS FIRST_CHANGE# FROM V$LOG UNION SELECT MIN(FIRST_CHANGE#)" +
|
||||
" AS FIRST_CHANGE# FROM V$ARCHIVED_LOG WHERE DEST_ID IN (SELECT DEST_ID FROM V$ARCHIVE_DEST_STATUS" +
|
||||
" WHERE STATUS='VALID' AND TYPE='LOCAL' AND ROWNUM=1) )";
|
||||
" WHERE STATUS='VALID' AND TYPE='LOCAL' AND ROWNUM=1) AND STATUS='A')";
|
||||
assertThat(result).isEqualTo(expected);
|
||||
|
||||
result = SqlUtils.allOnlineLogsQuery();
|
||||
|
Loading…
Reference in New Issue
Block a user