Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Просмотр всех бэкапов  [new]
beaver06
Member

Откуда:
Сообщений: 681
Добрый день!
Подскажите, пожалуйста, в таком вопросе: нужен скрипт для просмотра расписания бэкапов, и баз, которые бэкапируются, и куда.
Мне нужно вытащить всю информацию по бэкапам с нескольких чужих серверов. В ручную не предлагать.
18 дек 14, 11:02    [17015276]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
beaver06
нужен скрипт для просмотра расписания бэкапов, и баз, которые бэкапируются, и куда.

У бэкапов нет расписания. Потому, что BACKUP - это команда, которую можно поместить куда-угодно.
18 дек 14, 11:04    [17015282]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
red88888
Member

Откуда:
Сообщений: 130
Имеется ввиду информация по бекапам, которые уже прошли?
18 дек 14, 14:34    [17017249]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4823
red88888,
-- Get Backup History for required database
SELECT TOP 100
s.database_name,
m.physical_device_name,
CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,
s.backup_start_date,
CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
--WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC, backup_finish_date
GO
18 дек 14, 14:36    [17017264]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
beaver06,
не расписание, но просто сделанные бэкапы, вернее, незатертая часть их истории:
select s.database_name, s.type, s.media_set_id, 
               s.backup_start_date, m.physical_device_name 
from msdb..backupset s
join msdb..backupmediafamily m on s.media_set_id = m.media_set_id
order by s.backup_start_date desc, s.database_name 
18 дек 14, 14:39    [17017287]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
red88888
Member

Откуда:
Сообщений: 130
a_voronin,

мне то зачем? Я вопрос просто задал.
Может, человеку надо задания на бекап вытащить из агента :)
18 дек 14, 14:44    [17017324]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
a_voronin,
вы жмот :)
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken

хотя бы на varchar(6) переделайте, это ж макс. размер, кушать на просит

К сообщению приложен файл. Размер - 6Kb
18 дек 14, 14:48    [17017366]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4823
o-o
a_voronin,
вы жмот :)
CAST(DATEDIFF(second, s.backup_start_date,
s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken

хотя бы на varchar(6) переделайте, это ж макс. размер, кушать на просит


А вы как всегда переходите на личности не разобравшись в теме. Сей круглощекий индус автор сего запроса.

http://blog.sqlauthority.com/2010/11/10/sql-server-get-database-backup-history-for-a-single-database/
18 дек 14, 15:08    [17017565]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
индус -- жмот
a_voronin -- шуток не понимает

совет безвозмездно, т.е. даром:
авторство указывайте, если не хотите за других получать :)
а то как лавры -- так двумя руками, а как помидоры, так "мопед не мой"
18 дек 14, 15:25    [17017692]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
o-o
индус -- жмот
a_voronin -- шуток не понимает

совет безвозмездно, т.е. даром:
авторство указывайте, если не хотите за других получать :)
а то как лавры -- так двумя руками, а как помидоры, так "мопед не мой"
+1
На самом деле этот индус-жмот перестраховался, потому как все стрелки сразу перевел на другого индуса - aasim abdullah.

А указывать ссылку на первоисточник весьма полезно, хотя бы потому, что если это ссылка на Brent Ozar'а или Adam Machanic'а, то скрипту можно доверять, а если это какой то индус, который сам занимается перепостом чужих скриптов, даже не проверяя их, то я бы задумался. также, на первоисточнике может быть какая-то дополнительная полезная информация по поводу использования скрипта.
18 дек 14, 23:46    [17020170]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4823
Господа Mind, o-o, хочу сказать вам <удалено цензурой>, что могли бы и не разводить пустотрёпа, а переписать запрос

-- Get Backup History for required database
SELECT TOP 100
	s.database_name,
	m.physical_device_name,
	CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,
	REPLACE(CAST(DATEDIFF(second, s.backup_start_date, s.backup_finish_date) / 3600 AS CHAR(2)) + ':' + 
	CAST((DATEDIFF(second, s.backup_start_date, s.backup_finish_date) / 60) % 60 AS CHAR(2)) + ':' +
	CAST(DATEDIFF(second, s.backup_start_date, s.backup_finish_date) % 60 AS CHAR(2)), ' ', '0') TimeTaken,
	s.backup_start_date,
	s.backup_finish_date,
	CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,
	CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,
	CASE s.[type]
		WHEN 'D' THEN 'Full'
		WHEN 'I' THEN 'Differential'
		WHEN 'L' THEN 'Transaction Log'
	END AS BackupType,
	s.server_name,
	s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
--WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC, backup_finish_date
GO
19 дек 14, 12:53    [17022442]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
кто бы квакал,
a_voronin
пустотрёп


мой базовый запрос 17017287 по тем же таблицам шарит, если не заметили,
а уж дальше каждый под свои нужды допилит.
щас я еще буду прочих блох в чужом коде ловить, ага.
например, ваш индусо-воронинский совместный проект считает размер бэкапа не по той колонке.
у нас энтерпрайз и реальный размер в compressed_backup_size лежит, и он в 6 раз отличается от насчитанного вами
19 дек 14, 13:05    [17022496]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
a_voronin,

a вы совсем не тестите скрипты перед публикацией?
хороши шутки в виде длительности бэкапа (7 мин -> 70),
не говоря о том, что в часу до сих пор было 60 минут

К сообщению приложен файл. Размер - 5Kb
19 дек 14, 14:05    [17022953]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
SvetlanaNikit
Member

Откуда:
Сообщений: 96
Добрый день всем!

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

на просторах отыскала вот такой скрипт:

SELECT
   CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
   msdb.dbo.backupset.database_name,
   MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date,
   DATEDIFF(hh, MAX(msdb.dbo.backupset.backup_finish_date), GETDATE()) AS [Backup Age (Hours)]
FROM    msdb.dbo.backupset
WHERE     msdb.dbo.backupset.type = 'D' 
GROUP BY msdb.dbo.backupset.database_name
HAVING      (MAX(msdb.dbo.backupset.backup_finish_date) < DATEADD(hh, - 1, GETDATE()))


этот вариант имеет право на место под солнцем?
10 мар 15, 14:56    [17365019]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
SvetlanaNikit
проверять успешность выполнения бэкапов.

А то, что запускает этот бэкап каждый час, не умеет проверять результат окончания запущенной команды ?
10 мар 15, 14:58    [17365031]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
SvetlanaNikit,

да вообще, что он ищет, этот скрипт?
у кого бэкап давно закончился, давнее часа назад?
мне вот выдал базу, к-ую в том году последний раз бэкапили,
вам это что-ли надо?
10 мар 15, 15:06    [17365078]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
SvetlanaNikit
Member

Откуда:
Сообщений: 96
o-o
SvetlanaNikit,

да вообще, что он ищет, этот скрипт?
у кого бэкап давно закончился, давнее часа назад?
мне вот выдал базу, к-ую в том году последний раз бэкапили,
вам это что-ли надо?


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

проблема, которую пытаюсь решить этим скриптом, вот в чем: система резервного копирования есть. Но она несколько раз подводила - не выполняла бэкапы баз / журналов транзакций. И в логах ничего нет. С ней, понятно, надо еще разбираться. Но пока я хочу сделать скрипт и запускать его по расписанию. Скрипт должен проверять: выполнялись ли бэкапы в течение прошедшего часа? Если нет - слать предупреждение по почте.
10 мар 15, 16:06    [17365502]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
SvetlanaNikit
И в логах ничего нет.

В логах чего ?
серверная ошибка в логах сервера есть всегда
10 мар 15, 16:10    [17365541]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
SvetlanaNikit
Member

Откуда:
Сообщений: 96
Glory
SvetlanaNikit
И в логах ничего нет.

В логах чего ?
серверная ошибка в логах сервера есть всегда

Нет, не всегда.
Какая должна быть ошибка, если бэкап не выполнялся?
10 мар 15, 16:28    [17365693]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
SvetlanaNikit
Нет, не всегда.
Какая должна быть ошибка, если бэкап не выполнялся?

если ваша программа не удосужилась запустить команду, то какую ошибку должен сгенерировать сервер ?
10 мар 15, 16:36    [17365769]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
SvetlanaNikit
Member

Откуда:
Сообщений: 96
Glory
SvetlanaNikit
Нет, не всегда.
Какая должна быть ошибка, если бэкап не выполнялся?

если ваша программа не удосужилась запустить команду, то какую ошибку должен сгенерировать сервер ?

Вот и я у вас спросила: какая должна быть ошибка?
И зачем мне Ваши комментарии насчет того, что "не удосужилась" сделать "моя" программа?
Я разве задавала вопрос, почему "наша" программа что-то "не удосужилась" сделать?
10 мар 15, 16:48    [17365877]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
SvetlanaNikit
Вот и я у вас спросила: какая должна быть ошибка?

Ошибок от ничего не делания не бывыет.
Только от делания чего либо

SvetlanaNikit
И зачем мне Ваши комментарии насчет того, что "не удосужилась" сделать "моя" программа?

Потому что "серверная ошибка в логах сервера есть всегда"

SvetlanaNikit
Я разве задавала вопрос, почему "наша" программа что-то "не удосужилась" сделать?

Потому, что вы похоже вообще не знаете, что должна делать ваша программа.
10 мар 15, 16:51    [17365891]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
o-o
Guest
SvetlanaNikit
Скрипт должен проверять: выполнялись ли бэкапы в течение прошедшего часа? Если нет - слать предупреждение по почте.

select database_name, type, backup_start_date, backup_finish_date
from msdb..backupset
where backup_finish_date >= DATEADD(hh, - 1, GETDATE())

это те бэкапы, к-ые завершились в течение последнего часа.
наверное, вам надо сравнивать с каким-то списком баз?
только рассылку почты обычно вешают на удачное или нет завершение шага джоба,
а в шаге-то что, если не сам бэкап?
SELECT это же не действие, действие это бэкап...
10 мар 15, 17:01    [17365974]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
SvetlanaNikit
Member

Откуда:
Сообщений: 96
Glory
Ошибок от ничего не делания не бывыет.Только от делания чего либо

выводы верные. но логика - не верная.

Glory
Потому что "серверная ошибка в логах сервера есть всегда"

нет, не всегда. Вы сами выше сказали, почему это справедливо не всегда.

Glory
Потому, что вы похоже вообще не знаете, что должна делать ваша программа.

Правильно ли Вы поняли мой вопрос: "Я разве задавала вопрос, почему "наша" программа что-то "не удосужилась" сделать?"
10 мар 15, 17:05    [17366000]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр всех бэкапов  [new]
Glory
Member

Откуда:
Сообщений: 104751
SvetlanaNikit
Glory
Потому что "серверная ошибка в логах сервера есть всегда"

нет, не всегда. Вы сами выше сказали, почему это справедливо не всегда.

Я в 3ий раз вам повторю - "серверная ошибка в логах сервера есть всегда"

SvetlanaNikit
Правильно ли Вы поняли мой вопрос: "Я разве задавала вопрос, почему "наша" программа что-то "не удосужилась" сделать?"

Выбрать 1 запись с макс./мин значением в каком то столбце можно простым select top 1 order by
Не нужно для этого что-то группировать
10 мар 15, 17:13    [17366057]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить