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

Откуда: VRN
Сообщений: 192
Доброе утро господа !!

Случайно удалил JOB, его код как то возможно восстановить??
15 сен 13, 05:57    [14840940]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
DmitryVT
Доброе утро господа !!

Случайно удалил JOB, его код как то возможно восстановить??


Сори забыл - эмоции
SQL SERVER 2005 Системной БД резервных копий нет
15 сен 13, 06:40    [14840943]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
JOB - погиб с моей подачи, похоже не восстановлю уже. Поэтому пишу с нуля

Задача: делать полную версию бэкапа в 00:00 и в 14:00
делать разностную версию каждые 15 мин
записывать в таблицу о выполнении

USE PRD1
DECLARE @XD VARCHAR(2),@NAMEFILE VARCHAR(100)

IF ( GETDATE() >= CONVERT(DATETIME, (CONVERT(VARCHAR, GETDATE(), 104)+' 14:00'), 104))
SET @XD = 'PM'
ELSE 
SET @XD = 'AM'
-------------------- Проверяем на наличие FULL BACKUP
IF EXISTS (SELECT * FROM XWorkBACKUP WHERE ADDDATE >= CONVERT(DATETIME, (CONVERT(VARCHAR, GETDATE(), 104)+' 00:00'), 104) 
                                           AND TYPEBACKUP = 'FULL' AND XD = @XD)
BEGIN  -- DIFF  
  INSERT INTO XWorkBACKUP (ADDDATE,DBNAME,TYPEBACKUP,STATUS) VALUES (GETDATE(),'PRD1','DIFF','COMPLIT')

  SET @NAMEFILE= 'DIFF_PRD1_'+CONVERT (VARCHAR(10),GETDATE(),104)+'_'+CAST(DATEPART(hh,GETDATE())AS VARCHAR(2))+'-'+CAST(DATEPART(mi,GETDATE()) AS VARCHAR(2))
  SET @NAMEFILE= 'E:\BACKUP(DIFF)\SQL_WMS\'+@NAMEFILE+'.bak'
  BACKUP DATABASE [PRD1] TO  DISK = @nam WITH DIFFERENTIAL

END ELSE BEGIN  -- FULL

  INSERT INTO XWorkBACKUP (ADDDATE,DBNAME,TYPEBACKUP,STATUS,XD) VALUES (GETDATE(),'PRD1','FULL','COMPLIT',@XD)
  
  SET @NAMEFILE= 'FULL_PRD1_'+CONVERT (VARCHAR(10),GETDATE(),104)+'_'+CAST(DATEPART(hh,GETDATE())AS VARCHAR(2))+'-'+CAST(DATEPART(mi,GETDATE()) AS VARCHAR(2))
  SET @NAMEFILE= 'E:\BACKUP(FULL)\'+@NAMEFILE+'.bak'
  BACKUP DATABASE [PRD1] TO  DISK = @nam WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10
  DBCC SHRINKFILE ('PRD1_log', 500)
END


Подскажите пожалуйста:
параметры для диффиринциального (разностного) бэкапа должны быть аналогичны тем которые указаны для полного бэкапа ??
15 сен 13, 08:21    [14840949]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
JOB - погиб с моей подачи, похоже не восстановлю уже. Поэтому пишу с нуля

Задача: делать полную версию бэкапа в 00:00 и в 14:00
делать разностную версию каждые 15 мин
записывать в таблицу о выполнении

USE PRD1
DECLARE @XD VARCHAR(2),@NAMEFILE VARCHAR(100)

IF ( GETDATE() >= CONVERT(DATETIME, (CONVERT(VARCHAR, GETDATE(), 104)+' 14:00'), 104))
SET @XD = 'PM'
ELSE 
SET @XD = 'AM'
-------------------- Проверяем на наличие FULL BACKUP
IF EXISTS (SELECT * FROM XWorkBACKUP WHERE ADDDATE >= CONVERT(DATETIME, (CONVERT(VARCHAR, GETDATE(), 104)+' 00:00'), 104) 
                                           AND TYPEBACKUP = 'FULL' AND XD = @XD)
BEGIN  -- DIFF  
  INSERT INTO XWorkBACKUP (ADDDATE,DBNAME,TYPEBACKUP,STATUS) VALUES (GETDATE(),'PRD1','DIFF','COMPLIT')

  SET @NAMEFILE= 'DIFF_PRD1_'+CONVERT (VARCHAR(10),GETDATE(),104)+'_'+CAST(DATEPART(hh,GETDATE())AS VARCHAR(2))+'-'+CAST(DATEPART(mi,GETDATE()) AS VARCHAR(2))
  SET @NAMEFILE= 'E:\BACKUP(DIFF)\SQL_WMS\'+@NAMEFILE+'.bak'
  BACKUP DATABASE [PRD1] TO  DISK = @nam WITH DIFFERENTIAL

END ELSE BEGIN  -- FULL

  INSERT INTO XWorkBACKUP (ADDDATE,DBNAME,TYPEBACKUP,STATUS,XD) VALUES (GETDATE(),'PRD1','FULL','COMPLIT',@XD)
  
  SET @NAMEFILE= 'FULL_PRD1_'+CONVERT (VARCHAR(10),GETDATE(),104)+'_'+CAST(DATEPART(hh,GETDATE())AS VARCHAR(2))+'-'+CAST(DATEPART(mi,GETDATE()) AS VARCHAR(2))
  SET @NAMEFILE= 'E:\BACKUP(FULL)\'+@NAMEFILE+'.bak'
  BACKUP DATABASE [PRD1] TO  DISK = @nam WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10
  DBCC SHRINKFILE ('PRD1_log', 500)
END


Подскажите пожалуйста:
параметры для диффиринциального (разностного) бэкапа должны быть аналогичны тем которые указаны для полного бэкапа ??
15 сен 13, 08:23    [14840950]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
Glory
Member

Откуда:
Сообщений: 104751
DmitryVT
JOB - погиб с моей подачи, похоже не восстановлю уже. Поэтому пишу с нуля

Откройте для себя Maintenance Plan-ы

DmitryVT
параметры для диффиринциального (разностного) бэкапа должны быть аналогичны тем которые указаны для полного бэкапа ??

А вы вообще по какому принципу выбирали параметры бэкапа ?

По скрипту
- в чем смысл проверки " Проверяем на наличие FULL BACKUP" ? Либо "делать полную версию бэкапа в 00:00 и в 14:00 " либо не делать

- INSERT INTO XWorkBACKUP (ADDDATE,DBNAME,TYPEBACKUP,STATUS) VALUES (GETDATE(),'PRD1','DIFF','COMPLIT'). Это здорово писать в лог-таблицу, что бэкап 'COMPLIT', когда он еще даже не начался

- DBCC SHRINKFILE ('PRD1_log', 500) после полного бэкапа зачем ?
16 сен 13, 09:53    [14842841]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Glory почему не Maintenance Plan-ы, затрудняюсь ответить, знаю что там все проще.

Параметры Бэкапа для FULL унаследовались от ранее (кем то) созданного скрипта, но он просто делал каждый 1 час полный бэкап. Вот и возник интерес уменьшить вероятность потери данных (макс 15 мин)


Смысл проверки для того, что бы в 1 день имелось 2 полных бэкапа это позволит уменьшить вес разностных бэкапов:
Дифиринциальные бэкапы орхивируются в *.zip каждые 4 часа самописныой программой (Delphi), используя компонент ZipForge, он бесплатный и не способен архивировать файлы более 8 г.

По поводу INSERT INTO XWorkBACKUP спасибо, проглядел - пересмотрю подход с двумя статусами Run и COMPLIT

Glory подскажи пожалуйста если в процессе архивирования вылетит ошибка последующая инструкция (3.INSERT) сработает??
1.Insert (статус RUN)
2.BACKUP DATABASE
3.Insert (статус COMPLIT)
16 сен 13, 10:32    [14843058]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Glory почему не Maintenance Plan-ы, затрудняюсь ответить, знаю что там все проще.

Параметры Бэкапа для FULL унаследовались от ранее (кем то) созданного скрипта, но он просто делал каждый 1 час полный бэкап. Вот и возник интерес уменьшить вероятность потери данных (макс 15 мин)


Смысл проверки для того, что бы в 1 день имелось 2 полных бэкапа это позволит уменьшить вес разностных бэкапов:
Дифиринциальные бэкапы орхивируются в *.zip каждые 4 часа самописныой программой (Delphi), используя компонент ZipForge, он бесплатный и не способен архивировать файлы более 8 г.

По поводу INSERT INTO XWorkBACKUP спасибо, проглядел - пересмотрю подход с двумя статусами Run и COMPLIT

Glory подскажи пожалуйста если в процессе архивирования вылетит ошибка последующая инструкция (3.INSERT) сработает??
1.Insert (статус RUN)
2.BACKUP DATABASE
3.Insert (статус COMPLIT)
16 сен 13, 10:33    [14843065]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
Glory
Member

Откуда:
Сообщений: 104751
DmitryVT
Смысл проверки для того, что бы в 1 день имелось 2 полных бэкапа это позволит уменьшить вес разностных бэкапов:

Вот интересно. Если бэкап _должен_ запускаться в 14 и в 00, то какие еще проверки нужны ?
Ваш запрос всего лишь проверяет наличие записи в какой то таблице

DmitryVT
Параметры Бэкапа для FULL унаследовались от ранее (кем то) созданного скрипта, но он просто делал каждый 1 час полный бэкап.

Ну так вы хотя бы прочитали про эти параметры в хелпе ?

DmitryVT
Glory подскажи пожалуйста если в процессе архивирования вылетит ошибка последующая инструкция (3.INSERT) сработает??
1.Insert (статус RUN)
2.BACKUP DATABASE
3.Insert (статус COMPLIT)

Как напишите скрипт, так и будет
Смысл своей таблицы с логом тоже непонятен. В ней нет ничего, что уже есть в системных логах
16 сен 13, 10:42    [14843137]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Неее это скрипт отрабатывает каждые 15 минут, соответственно проверка для этого и нужна.

про параметры прочитал и уже все подправил ранее.

А по поводу системных таблиц (системных логах) куда пишется выполнение Бэкапа - тут не спорю,я не знал о их существовании сейчас поищу про них инфу.

СПАСИБО БОЛЬШОЕ !!!
16 сен 13, 11:20    [14843350]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
Glory
Member

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

Для чего "этого" ? Что дает проверка таблицы для задания, работающего по расписанию ?
16 сен 13, 11:24    [14843375]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Glory - я в этой сфере работаю меньше года, и мое развитие зависит на прямую от книжек и этого форума.

что собственно сделал:

Данный скрипт отрабатывает каждые 15 минут. В теле скрипта по средством проверки узнаем какой бэкап (полный или разностной) будем делать. По выполнению бэкапа записываем в таблицу (со статусами уже подправил) XWorkBACKUP и благодаря этим записям в таблице узнаем (по условию из скрипта) какой бэкап делать в реальное время. Умельцы сис админы частенько его ребутят зачем незнаю - но это еще один повод для участия таблицы XWorkBACKUP, потому что они могут попасть на срез времени к примеру с 13:58 по 14:10 (не использую таблицу я останусь без полного бэкапа который нужно сделать в 14:00)

Обнаружил еще один нюанс Maintenance у меня почему то не работает т.е. я так понимаю что отсутствуют права, с этим позже разберусь.
16 сен 13, 11:37    [14843521]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
Glory
Member

Откуда:
Сообщений: 104751
DmitryVT
Данный скрипт отрабатывает каждые 15 минут. В теле скрипта по средством проверки узнаем какой бэкап (полный или разностной) будем делать.

Для этого делают 2(два) джоба. Каждый со своим расписанием.
16 сен 13, 11:39    [14843544]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Как только найду и разберусь с системной таблицей (в которую заносятся данные по бэкапам) сразу перепишу на 2 джоба и удалю XWorkBACKUP, GLORY спасибо большое за разъяснение !!
16 сен 13, 11:48    [14843598]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
icprog
Member

Откуда:
Сообщений: 166
DmitryVT
Как только найду и разберусь с системной таблицей (в которую заносятся данные по бэкапам) сразу перепишу на 2 джоба и удалю XWorkBACKUP, GLORY спасибо большое за разъяснение !!

БД msdb таблица backupset
16 сен 13, 15:02    [14845011]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Спасибо !!! уже нашел
16 сен 13, 15:06    [14845032]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Спасибо !!! уже нашел
16 сен 13, 15:11    [14845082]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
DmitryVT,

ОФФТОП: у вас что-то с браузером или это у меня? каждое сообщение дублируется:)
16 сен 13, 15:13    [14845089]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
скорее всего у меня (CHROM)
16 сен 13, 15:13    [14845096]     Ответить | Цитировать Сообщить модератору
 Re: восстановить JOB  [new]
AnyKey45
Member

Откуда: Ekaterinburg-Moscow-EU
Сообщений: 219
DmitryVT,
скрипты на обслуживание БД:
http://ola.hallengren.com/
рекомендую - удобная штука
17 сен 13, 10:34    [14847766]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить