Informações de Backup SQL Server

Posted on março 11, 2011

0


 

Quando pensamos em disponibilidade de banco de dados, a primeira coisa que devemos saber é aonde estão os backups, eles são a maior prioridade em um banco de dados. Deve ser o primeiro dever de um DBA, a rotina de backup de um banco de dados, deve ser monitorada diariamente..

Como temos que ter grande cuidados sobre os nossos backups, sabendo se estão sendo realizados ou não, nesse artigo, vou apresentar uma forma bem simples de sabermos sobre isso.

Para começarmos bem essa análise vamos por partes, primeiramente vamos saber informações sobre todos os bancos de dados que se encontram no ambiente.

 

SELECT name, compatibility_level, user_access_desc, state_desc, recovery_model_desc, page_verify_option_desc

FROM sys.databases

image

Assim conseguimos ver por exemplo, modo de compatibilidade do banco de dados, modo de recuperação e até a verificação de página do banco de dados, dentre outras informações.

 

Agora vamos para a parte de backups, temos duas visualizações importantes.

 

SELECT  *

FROM msdb.dbo.backupmediafamily

 image

Aqui conseguimos ver, informações do tipo de dispositivo lógico, local aonde o backup foi armazenado e até o tipo de dispositivo. 

Para termos uma informação bem detalhada das informações de um backup visualizamos por essa consulta.

 

SELECT  database_name, name, user_name, first_lsn, last_lsn, checkpoint_lsn,

            database_backup_lsn, backup_start_date, backup_finish_date, type, backup_size

FROM msdb.dbo.backupset

 

image

 

 Essa consulta nos apresenta informações da data de início, data de fim, tipo de backup, nome do usuário, nome do banco de dados e muito mais, todos os backups que são realizados são gravados nessa tabela.

Agora como sabemos aonde os backups são gerados, quais bancos de dados temos no nosso ambiente, e a data de criação, conseguimos ver se os backups estão sendo realizados, e com qual periodicidade por essa consulta.

 

SELECT name, compatibility_level, user_access_desc, state_desc, recovery_model_desc,

         page_verify_option_desc

FROM sys.databases AS db

WHERE EXISTS

(

      SELECT *

            FROM (

            SELECT CONVERT(char(100), SERVERPROPERTY(‘Servername’)) AS Server, physical_device_name, name, user_name, backup_size/1024 AS size, database_name,

                     msdb.dbo.backupset.server_name       

            FROM msdb.dbo.backupmediafamily

            INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id

            WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date,

–Perceba que aqui específico a dia atual – 30 dias.

102) >= GETDATE() 30)

      ) AS t

     

      WHERE db.name = t.database_name

)

 

image

 

 Bem, essa consulta retorna todos os bancos de dados que não realizaram backup durante um mês. Como vimos a consulta é realizada com as informações que havíamos visto, sendo assim sempre que precisar saber informações de backups essa consulta pode lhe ajudar.

Posted in: Script's