sexta-feira, 26 de julho de 2013

O ultimo backup full executado com sucesso

O script executa a leitura na tabela backupset do banco de dados msdb procurando pelo último backup full completo.

DECLARE @LastFullBackupTable TABLE
    (
      name VARCHAR(256) ,
      LastFullBackupDate DATETIME
    )

INSERT  INTO @LastFullBackupTable
        ( name ,
          LastFullBackupDate
        )
        SELECT  QUOTENAME(db.name) ,
                MAX(backup_finish_date)
        FROM    sys.databases AS db
                JOIN msdb.dbo.backupset (NOLOCK) AS BkpSet 
                ON BkpSet.database_name = db.name
        WHERE   type = 'D'
        GROUP BY db.name
        ORDER BY MAX(backup_finish_date) DESC

SELECT  db.name ,
        ISNULL(tmp.LastFullBackupDate, '') AS LastFullBackup
FROM    @LastFullBackupTable AS tmp
        RIGHT JOIN sys.databases AS db ON tmp.name = QUOTENAME(db.name)
        WHERE db.name <> 'tempdb'

2 comentários:

  1. ótimo blog, só tenho uma duvida, fiz o backup de uma base de dados do SQL. Ex:BACKUP DATABASE bcd_ERP_dgs_1 TO DISK = 'C:\SQL_Backup\bcd_ERP_dgs_1.bak', fiz um backup "Certo ok" depois fiz outro backup da mesma base de dados só que antes de eu fazer este backup renomeie os nomes das tabelas, só que agora na hora da restauração do backup ele vem com os nomes da tabelas antigas e não a atualizada. Por Que ?

    Douglas

    ResponderExcluir
    Respostas
    1. Fala Douglas, blz???
      Cara tente executar a sequência abaixo:


      --Backup antes da alteração
      BACKUP DATABASE bcd_ERP_dgs_1 TO DISK='C:\SQL_Backup\bcd_ERP_dgs_1.bak'

      --Backup após a alteração
      BACKUP DATABASE bcd_ERP_dgs_2 TO DISK='C:\SQL_Backup\bcd_ERP_dgs_2.bak'

      *******************************************************************************

      --Restore antes da alteração
      RESTORE DATABASE bcd_ERP_dgs_1 FROM DISK='C:\SQL_Backup\bcd_ERP_dgs_1.bak' WITH REPLACE

      --Restore depois da alteração
      RESTORE DATABASE bcd_ERP_dgs_2 FROM DISK='C:\SQL_Backup\bcd_ERP_dgs_2.bak' WITH REPLACE

      Obs: Fiz os testes por aqui e deu certo.

      Excluir