2010-08-17 2 views
1

Через запрос SINGLE T-sql можно найти: 1. Режим резервного копирования базы данных - [полный, простой, объемный] 2. База данных IS запланирована для резервного копирования [ да, нет] 3. Если резервная копия включена, размер резервной копии БДрезервная база данных в расписании или нет, как найти через t-sql

и Размер резервной копии ежедневных транзакций? любая помощь

ответ

3

Вы можете запросить таблицу MSDB Backupset для этого вида информации:

SELECT 
    database_name, 
    recovery_model, 
    CASE bs.type 
     WHEN 'D' THEN 'FULL' 
     WHEN 'I' THEN 'DIFFERENTIAL' 
     WHEN 'L' THEN 'TRANSACTION LOG' 
     ELSE 'UNKNOWN' 
    END AS backup_type, 
    backup_finish_date, 
    backup_size, 
    compressed_backup_size 
FROM msdb.dbo.backupset bs 

EDIT:

Этот запрос возвращает имя базы данных, модель восстановления, а последний DateTime для полного, дифференциальные и резервные копии журналов. Если база данных возвращает NULL для последнего FULL, она не резервируется вообще. Если он возвращает NULL для последнего журнала транзакций, а база данных использует ПОЛНОЕ восстановление, она не будет скопирована правильно.

SELECT 
    d.name, 
    d.recovery_model_desc, 
    MAX(CASE bs.type WHEN 'D' THEN backup_finish_date ELSE NULL END) AS [last_full_backup_date], 
    MAX(CASE bs.type WHEN 'I' THEN backup_finish_date ELSE NULL END) AS [last_diff_backup_date], 
    MAX(CASE bs.type WHEN 'L' THEN backup_finish_date ELSE NULL END) AS [last_tlog_backup_date] 
FROM sys.databases d 
LEFT JOIN msdb.dbo.backupset bs ON bs.database_name = d.name 
GROUP BY d.name, d.recovery_model_desc 
+0

Спасибо, Джонатан, но как я могу получить IS, моя база данных режима резервного копирования находится в запланированном или нет. Bcoz У меня 20 сервисов с 130 базами данных. необходимо найти базу данных backupmode, которая находится в режиме плановой настройки. – Dhiva

+0

Все зависит от того, как вы делаете резервные копии. Используете ли вы планы обслуживания, собственные скрипты TSQL, инструменты сторонних разработчиков? Вы можете изменить запрос на работу с sys.databases и найти последние даты резервного копирования для баз данных, как показано выше, в разделе «Редактирование». Это, по крайней мере, дает вам информацию о том, будут ли они выполняться резервное копирование. Независимо от того, планируются ли они вообще или нет, зависит от того, как вы на самом деле выполняете резервное копирование, но если он не был запланирован, у него не было бы последней даты резервного копирования в результатах запроса. –