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("UNION SELECT MIN(FIRST_CHANGE#) AS FIRST_CHANGE# ");
|
||||||
sb.append("FROM ").append(ARCHIVED_LOG_VIEW).append(" ");
|
sb.append("FROM ").append(ARCHIVED_LOG_VIEW).append(" ");
|
||||||
sb.append("WHERE DEST_ID IN (").append(localArchiveLogDestinationsOnlyQuery()).append(") ");
|
sb.append("WHERE DEST_ID IN (").append(localArchiveLogDestinationsOnlyQuery()).append(") ");
|
||||||
|
sb.append("AND STATUS='A'");
|
||||||
|
|
||||||
if (!archiveLogRetention.isNegative() && !archiveLogRetention.isZero()) {
|
if (!archiveLogRetention.isNegative() && !archiveLogRetention.isZero()) {
|
||||||
sb.append("AND FIRST_TIME >= SYSDATE - (").append(archiveLogRetention.toHours()).append("/24)");
|
sb.append("AND FIRST_TIME >= SYSDATE - (").append(archiveLogRetention.toHours()).append("/24)");
|
||||||
|
@ -236,7 +236,7 @@ public void testStatements() {
|
|||||||
result = SqlUtils.oldestFirstChangeQuery(Duration.ofHours(0L));
|
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#)" +
|
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" +
|
" 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);
|
assertThat(result).isEqualTo(expected);
|
||||||
|
|
||||||
result = SqlUtils.allOnlineLogsQuery();
|
result = SqlUtils.allOnlineLogsQuery();
|
||||||
|
Loading…
Reference in New Issue
Block a user