RSS
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная
Регистрация
Вход


Aqu@Blog

Суббота, 17 Апреля 2021, 05:41

Меню сайта
Категории раздела
Диагностика [4]
Windows [63]
VirtualBox [3]
SQL [8]
1C [9]
Разное [10]
SharePoint [2]
HP [1]
DOS [2]
Кассы [3]
...
Наш опрос
Каким поисковиком вы пользуетесь?
Всего ответов: 10
...
...
...
...
Главная » Статьи » Компьютерное Железо » SQL

Информация о бэкапах средствами TSQL

Сегодня будем поднимать историческую информацию о выполненных резервных копиях на одном из SQL серверов. Раскапывать логи в графической консоли очень долго, поэтому воспользуемся методикой, которая позволяет сильно сэкономить время и нервы.

Первым делом нужно собрать информацию по резервным копиям для всех баз данных. После отработки скрипта (выполняется он в контексте анализируемого сервера из SQL Management Studio) вы получите табличку с информацией о базе данных и временем последнего полного бэкапа.

SELECT db.name AS [DATABASE], max(backup_finish_date) AS [LastBackupDate]
FROM [master].[dbo].[sysdatabases] db LEFT OUTER JOIN [msdb].[dbo].[backupset] bs ON bs.database_name = db.name AND bs.type = 'D'
GROUP BY db.name
ORDER BY db.name

Для наглядности можно запросить более подробную информацию о том когда была полная копия и дифференциальная плюс количество дней прошедших с момента резервного копирования.

В случае если с момента последней полной копии прошло более 7 дней скрипт выведет предупреждение 'Possible Problem' для полной копии и при двух днях для разностной.

SELECT s.name AS database_name, backup_type =
CASE
WHEN b.type = 'D' THEN 'Full'
WHEN b.type = 'I' THEN 'Diff'
END,
MAX(b.backup_start_date) AS last_backup_start_time,
DATEDIFF(d, MAX(b.backup_start_date), getdate()) AS days_since_last_backup, STATUS =
CASE
WHEN b.type = 'D' AND DATEDIFF(d, MAX(b.backup_start_date), getdate()) <= 7 THEN 'OK'
WHEN b.type = 'D' AND DATEDIFF(d, MAX(b.backup_start_date), getdate()) <= 7 THEN 'Possible Problem'
WHEN b.type = 'I' AND DATEDIFF(d, MAX(b.backup_start_date), getdate()) <= 2 THEN 'OK'
WHEN b.type = 'I' AND DATEDIFF(d, MAX(b.backup_start_date), getdate()) <= 2 THEN 'Possible Problem'
WHEN MAX(b.backup_start_date) IS NULL THEN 'No Backup Exists'
END
FROM sys.DATABASES s LEFT JOIN msdb..backupset b
ON s.name = b.database_name
WHERE s.name <> 'master' AND s.name <> 'model' AND s.name <> 'msdb' AND s.name <> 'tempdb'
GROUP BY s.name, b.type
ORDER BY s.name

Для получения подробной информации о размере бэкапов, местоположении файлов, времени выполнения и пр. используйте скрипт который представлен ниже.

SELECT msdb.dbo.backupmediafamily.physical_device_name AS FILE_LOCATION,
msdb.dbo.backupset.database_name AS DATABASE_NAME,
CAST(CAST(msdb.dbo.backupset.backup_size / 1000000 AS INT) AS VARCHAR(14))+ '' + 'MB' AS BACKUP_SIZE,
CAST(DATEDIFF(second, msdb.dbo.backupset.backup_start_date, msdb.dbo.backupset.backup_finish_date) AS VARCHAR(4)) + ''+ 'Seconds' AS BACKUP_TIME_TAKEN,
msdb.dbo.backupset.backup_start_date AS BACKUP_DATE_TIME,
CASE msdb.dbo.backupset.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BACKUP_TYPE
FROM
msdb.dbo.backupset
INNER JOIN msdb.dbo.backupmediafamily
ON msdb.dbo.backupset.media_set_id = msdb.dbo.backupmediafamily.media_set_id

Категория: SQL | Добавил: Aqua (20 Декабря 2012)
Просмотров: 1550 | Рейтинг: 0.0/0
Всего комментариев: 0
  • Коментарии
  • VKontakte
  • Facebook
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
 
...
Нет аватара
Информация

Логин: Гость
Группа: Гости
Ваш IP: 34.204.186.91
Браузер:

Праздники сегодня
Информер праздники сегодня
Погода
Нижнекамск
электронные услуги
Друзья сайта
  • Раскрутка вашего Сайта
  • ...
    Copyright AquaBlog © 2021

    Яндекс цитирования

    Рейтинг@Mail.ru