XMLWordPrintable

    • 1

      Steps to reproduce:

      1. Create database 
      2. delete database
      3. database will be still under the results of the query

       

      There is missing check for non-existing databases in backup check Source of last.backup.get.sql - MSSQL - ZABBIX GIT

      you should add "and db.name is not null" in the query to avoid list no longer existing databases.

      SELECT  bs.database_name as dbname,
        [type],
        DATEDIFF(SECOND, bs.backup_finish_date, getdate()) as time_since_last_backup,
        (DATEDIFF(SECOND, bs.backup_start_date, bs.backup_finish_date)) as duration,
        db.recovery_model as db_recovery_model
      FROM msdb.dbo.backupset as bs
      LEFT JOIN sys.databases as db ON bs.database_name = db.name
      WHERE bs.database_name not in (
        SELECT AGDatabases.database_name AS Databasename
        FROM sys.dm_hadr_availability_group_states States
        INNER JOIN master.sys.availability_groups Groups
          ON States.group_id = Groups.group_id
        INNER JOIN sys.availability_databases_cluster AGDatabases
          ON Groups.group_id = AGDatabases.group_id
        WHERE primary_replica != @@Servername OR primary_replica is NULL
      ) and db.name is not null
      GROUP BY bs.database_name,
        backup_finish_date,
        [type],
        backup_start_date,
        db.recovery_model
      HAVING backup_finish_date = (
        SELECT MAX(backup_finish_date)
        FROM msdb.dbo.backupset
        WHERE database_name = bs.database_name
          AND bs.type = [type]
      )
      ORDER BY bs.database_name

            akotsegubov Aleksandr Kotsegubov
            overy Jiri Sykora
            Team INT
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: