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

Откуда:
Сообщений: 37
Вот такой скрипт:

BACKUP DATABASE [base] TO  DISK = N'D:\base-FULL-Daily.bak' WITH  RETAINDAYS = 30, NOFORMAT, NOINIT,  NAME = N'base-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO


Но то, что старее 30 дней все равно остается в архиве.

Объясните чайнику, что я делаю не так?
17 май 14, 12:48    [16030882]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
invm
Member

Откуда: Москва
Сообщений: 9401
Stepan Razin
Объясните чайнику, что я делаю не так?
Как обычно, "чайники" либо не читают документацию вовсе, либо читают невнимательно.
http://msdn.microsoft.com/ru-ru/library/ms186865.aspx
{ EXPIREDATE = 'date'| RETAINDAYS = days }

Указывает время, по истечении которого резервный набор данных для этой резервной копии может быть перезаписан. Если использованы оба этих параметра, то RETAINDAYS имеет приоритет над EXPIREDATE.

{ NOINIT | INIT }

Влияет на то, будет ли операция резервного копирования перезаписывать резервные наборы данных, существующие на носителе резервной копии, или будет дописывать новые наборы данных к ним в конец. По умолчанию данные будут дописываться в самый свежий резервный набор данных на носителе (NOINIT).

{ NOSKIP | SKIP }

Влияет на то, будет ли операция создания резервной копии проверять дату и время истечения срока и резервных наборов данных на носителе перед их перезаписью.
17 май 14, 13:43    [16030938]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
Stepan Razin
Member

Откуда:
Сообщений: 37
invm, насколько я понял - начиная с 2005-го SQL не удаляет из набора устаревшие копии, а параметр RETAINDAYS всего-лишь указывает, что ранее этого времени перезаписывать набор нельзя.
Потому что если поставить INIT - то абсолютно все архивы удаляются.

А чтобы хранить историю архивов - надо писать скрипт, чтобы, например, раз в неделю циклически переименовывал файлы архива, сохраняя столько, сколько надо недельных копий, каждая из которых содержит в себе историю из 7 ночных архивов.

А сам SQL старые удалять не будет, обеспечивая постоянное автоматиечкое хранение в одном файле только последние <RETAINDAYS>

Корректно ли я понимаю это?
17 май 14, 15:32    [16031072]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
invm
Member

Откуда: Москва
Сообщений: 9401
Stepan Razin
RETAINDAYS всего-лишь указывает, что ранее этого времени перезаписывать набор нельзя.
Да.
Stepan Razin
А чтобы хранить историю архивов - надо писать скрипт, чтобы, например, раз в неделю циклически переименовывал файлы архива, сохраняя столько, сколько надо недельных копий, каждая из которых содержит в себе историю из 7 ночных архивов.
Да.
Stepan Razin
А сам SQL старые удалять не будет
Да.
17 май 14, 16:20    [16031154]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
vikkiv
Member

Откуда: London
Сообщений: 2712
Stepan Razin, - А можно ещё делать каждый бэкап отдельно. Например
sqlcmd -E -S USER -d DataBAse -Q "BACKUP DATABASE DataBase TO DISK = N'D:\db_bck_%date:~0,2%_%date:~3,2%_%date:6,4%_11_00_PM.sql'"
(Это для формата даты DD/MM/YYYY , можно проверить через echo %date% )
17 май 14, 17:58    [16031333]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
vikkiv
Member

Откуда: London
Сообщений: 2712
Немного команду недописал, вернее будет:
sqlcmd -E -S usrname -d yourdbname -Q "BACKUP DATABASE yourdbname TO DISK = N'D:\db_bck_%date:~0,2%_%date:~3,2%_%date:~6,4%_11_00_PM.sql'"
(если дата в формате DD/MM/YYYY , можно проверить через echo %date% )
17 май 14, 18:03    [16031342]     Ответить | Цитировать Сообщить модератору
 Re: Почему из бэкапов не удаляются устаревшие архивы?  [new]
Stepan Razin
Member

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

нет, мне удобнее делать историю архивов, а дату файла и так видно.

Для небольших баз предпочитаю создавать набор, с постоянной ротацией и хранением истории:
- 7-14 дней - FULL каждую ночь
- Transaction Log каждые полчаса, хранение истории за те же 7-14 дней
- 6-8 недель - FULL в воскресенье
- 6-12 месяцев - FULL каждое первое воскресенье.

Ну и пр.

Спасибо.
17 май 14, 19:25    [16031484]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить