From c552667268e01717d965f5f323ac594a091e6a5b Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee <mdibaiee@pm.me> Date: Fri, 14 Mar 2025 14:52:51 +0000 Subject: [PATCH] source-oracle: skip retention checks for new databases --- source-oracle/prerequisites.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/source-oracle/prerequisites.go b/source-oracle/prerequisites.go index 23d4515266..5407ab3ab2 100644 --- a/source-oracle/prerequisites.go +++ b/source-oracle/prerequisites.go @@ -30,7 +30,22 @@ func (db *oracleDatabase) prerequisiteArchiveLogRetention(ctx context.Context) e if err := db.switchToCDB(ctx); err != nil { return err } - var row = db.conn.QueryRowContext(ctx, "SELECT MIN(FIRST_TIME) FROM V$ARCHIVED_LOG A WHERE A.NAME IS NOT NULL") + var row = db.conn.QueryRowContext(ctx, "select created from v$database") + var databaseAge time.Time + if err := row.Scan(&databaseAge); err != nil { + return fmt.Errorf("querying database age from DBA_OBJECTS: %w", err) + } + + log.WithFields(log.Fields{ + "created": databaseAge, + }).Debug("database age") + + if time.Since(databaseAge) < (time.Hour * 24) { + log.Warn("database age is less than 24 hours, skipping retention checks") + return nil + } + + row = db.conn.QueryRowContext(ctx, "SELECT MIN(FIRST_TIME) FROM V$ARCHIVED_LOG A WHERE A.NAME IS NOT NULL") var minTimestamp time.Time if err := row.Scan(&minTimestamp); err != nil { return fmt.Errorf("querying minimum archived log timestamp from V$ARCHIVED_LOG: %w", err)