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

Откуда: Kiev
Сообщений: 2454
Уважаемые коллеги, подскажите, плз.

Есть следующий код в jobe, который выполняет дифф. бэкапы базы:

BACKUP DATABASE [DB1] TO  DISK = N'\\backup_pc\BackUp\DB1\DB1_diff' WITH  NOINIT ,  NOUNLOAD ,  DIFFERENTIAL ,  NAME = N'AS DIFF backup',  NOSKIP ,  STATS = 10,  NOFORMAT, RETAINDAYS = 7

После наблюдений за дифф. бэкапом прихожу к выводу, что expired бэкапы не затираются.
В чем может быть проблема? Если поставить опцию INIT, то, как я понял из BOL, затрется весь media set, а не только expired бэкапы.
7 июл 04, 11:09    [789464]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Glory
Member

Откуда:
Сообщений: 104760
После наблюдений за дифф. бэкапом прихожу к выводу, что expired бэкапы не затираются.
А с чего вы взяли что они должны удаляться ?
7 июл 04, 11:11    [789475]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А зачем NOINIT? Для дифбэкапов всегда актуален только последний.
7 июл 04, 11:15    [789492]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
2Glory: А как обрабатывает сервер опцию RETAINDAYS?
И что мне необходимо сделать, чтобы удалять дифф. бэкапы?

2tpg:
у меня следующая схема бэкапов:
- еженочно делается полный бэкап базы;
- каждый час делается дифференциальный бэкап (в один и тот же файл).
Все бэкапы должны храниться неделю. Удаление ночных бэкапов производит Maintenance Plan, а вот удаление дифференциальных не работает. :-(
7 июл 04, 11:31    [789546]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
То, что актуален всегда последний дифф. бэкап, это понятно. Но есть еще такой аспект как восстановление базы на дату, вот для него и хранится все в течение недели.
Схема с дифференциальным бэкапом выбрана для независимого дублирования резервных копий:
- полный бэкап делается на сам сервер и через полчаса на резервную машину;
- дифференциальные делаются поочередно на сервер и на резервную машину.
7 июл 04, 11:35    [789565]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Так, похоже, что команда backup database все-таки не затирает бэкапы без опции INIT, а она затирает весь медиасет.
А кто-то может сказать, каким образом делает удаление expired бэкапов Maintenance plan? Также буду благодарен за рекомендации, как можно вручную наладить удаление бэкапов.

У меня пока есть только идея дифф. бэкапы складывать в отдельные файлы, и по именным соглашениям удалять их через xp_cmdshell, составляя имя по правилам его формирования при бэкапе.
7 июл 04, 12:22    [789779]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А может быть, всё же, в начале недельного цикла делать бэкап с INIT, а последующие с NOINT?
7 июл 04, 12:28    [789809]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
tpg
А может быть, всё же, в начале недельного цикла делать бэкап с INIT, а последующие с NOINT?

Тогда затрутся все бэкапы давностью меньше недельной. Это делает бессмысленным вообще хранение бэкапов за неделю...
7 июл 04, 12:52    [789930]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Тогда затрутся все бэкапы давностью меньше недельной.

Я же предлагаю в начале недельного цикла, когда их ещё не должно быть... Причем здесь бэкапы давностью меньше недельной? Они ж не актуальны, их ещё нет, цикл только начался...
7 июл 04, 13:02    [790000]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
vitaliy14
Member [заблокирован]

Откуда:
Сообщений: 4996
Как вариант делать как вы и делаете диф бэкапы (в одну папку вместе с полным). А перед полным бэкапом архивировать их копировать(отдельный скрипт нужно будет написать и запускать его через SQL или как назначенное задание) туда где вы их
собираетесь хранить (лента, hard ) . А наследующий день просто их перезаписывать with init . Просто придется сделать 8 job-в.


автор
То, что актуален всегда последний дифф. бэкап, это понятно. Но есть еще такой аспект как восстановление базы на дату, вот для него и хранится все в течение недели.

А насколько критична потеря данных ? Здесь лучше recovery model: full
и raid 1
7 июл 04, 13:08    [790040]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Breakneck
2Glory: А как обрабатывает сервер опцию RETAINDAYS?


RETAINDAYS = { days | @days_var }

Specifies the number of days that must elapse before this backup media set can be overwritten. If supplied as a variable (@days_var), it must be specified as an integer.

И что мне необходимо сделать, чтобы удалять дифф. бэкапы?
Делать бэкапы в отдельные файлы. Файлы потом удалять по мере необходимости
7 июл 04, 13:20    [790102]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Glory

Делать бэкапы в отдельные файлы. Файлы потом удалять по мере необходимости

Удалять каким образом? Писать скрипт с парсингом имен файлов?
Нет ли какого-либо средства автоматизации?
7 июл 04, 13:36    [790197]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
tpg
Тогда затрутся все бэкапы давностью меньше недельной.

Я же предлагаю в начале недельного цикла, когда их ещё не должно быть... Причем здесь бэкапы давностью меньше недельной? Они ж не актуальны, их ещё нет, цикл только начался...


Так недельного цикла как такового нет. Повторюсь, есть следующая схема бэкапов:
1. Каждую ночь делается полный бэкап.
2. Ежечасно делается дифференциальный бэкап.
Просто бэкапы храниться должны не больше недели.
Недельный цикл (и checkpoint точки) как таковой не существует, есть просто дата устаревания бэкапа.

Ваша же схема подразумевает следующее: у меня лежат бэкапы с 1 июля. 8 июля делается бэкап с INIT, который затирает все предыдущие бэкапы. В результате мы имеем только бэкапы, начиная с 8 июля.
7 июл 04, 13:40    [790232]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Удалять каким образом? Писать скрипт с парсингом имен файлов?
Не имени а даты создания.

Нет ли какого-либо средства автоматизации?
Maintenance Plan ???
7 июл 04, 13:41    [790235]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
vitaliy14
Как вариант делать как вы и делаете диф бэкапы (в одну папку вместе с полным). А перед полным бэкапом архивировать их копировать(отдельный скрипт нужно будет написать и запускать его через SQL или как назначенное задание) туда где вы их
собираетесь хранить (лента, hard ). А наследующий день просто их перезаписывать with init . Просто придется сделать 8 job-в.

А насколько критична потеря данных ? Здесь лучше recovery model: full
и raid 1


Бэкапы храниться должны только в течение 7 дней. Схема постоянного хранения реализована по-другому, на основании ежемесячной процедуры закрытия периода.
7 июл 04, 13:44    [790259]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Glory
Удалять каким образом? Писать скрипт с парсингом имен файлов?
Не имени а даты создания.

Нет ли какого-либо средства автоматизации?
Maintenance Plan ???


Maintenance Plan не позволяет делать дифференциальные бэкапы и работать с другими медиа сетами. Только текущий для данного Maintenance Plan. Хотелось бы, что план для полных бэкапов заодно и удалял дифференциальные, но, к сожалению, этого не происходит.
7 июл 04, 13:46    [790269]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Breakneck
Хотелось бы, что план для полных бэкапов заодно и удалял дифференциальные, но, к сожалению, этого не происходит.

Чо то я совсем запутался...
Но если удалить диф от предыдущего полного, то как это соизмеряется с желанием поднимать бэкапы на любую заданную дату?!
7 июл 04, 13:49    [790301]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Тогда DTS.
Можно даже унтверсальный создать - для всех видов бэкапа для задаваемой через переменную базы
7 июл 04, 13:50    [790312]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
vitaliy14
А насколько критична потеря данных ? Здесь лучше recovery model: full
и raid 1

Потеря данных допустима только в пределах промежутка времени между дифференциальными бэкапами.

raid 1 существует только в рамках сервера, моя же схема ориентирована не только на падение одного из дисков, но и на выход из строя сервера целиком.

Failover clustering пока как решение не подходит - бэкапный сервер несет еще и другую нагрузку...
7 июл 04, 13:51    [790316]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
vitaliy14
Member [заблокирован]

Откуда:
Сообщений: 4996
автор
Бэкапы храниться должны только в течение 7 дней


Бррр....... ну так вы с таким же успехом можете удалять эти архивы(про которые я говорил) раз в неделю
Нет я вам уже проверенную схему предлагаю, заодно экономите место на диске


Кстати почему вы не хотите делать бэкап логов?

так вы скорее сможете восстановить базу если у вас погибнет диск с mdf файлами
7 июл 04, 13:56    [790354]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
tpg
Breakneck
Хотелось бы, что план для полных бэкапов заодно и удалял дифференциальные, но, к сожалению, этого не происходит.

Чо то я совсем запутался...
Но если удалить диф от предыдущего полного, то как это соизмеряется с желанием поднимать бэкапы на любую заданную дату?!

Все очень просто.
Полные бэкапы хранятся ровно столько же, сколько и дифференциальные - неделю. То есть, через семь дней после создания бэкапа мы удаляем его вне зависимости от его вида.
В пределах же этих семи дней мы должны иметь возможность восстановить базу на любую дату/время. Время имеет допустимую дельту в пределах часа, то есть если нам говорят, что изменения в базе произошли в промежуток с 14-00 до 15-00 (или ровно в 14-22), то восстанавливается база на 14-00.
База восстанавливается всегда отдельно для контроля достоверности данных.

Помимо этого, на такую схему возложены еще и функции надежности, то есть при падении одного сервера мы восстанавливаем базу на бэкапный с максимальной потерей данных в 1 час.
7 июл 04, 13:58    [790369]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
vitaliy14
автор
Бэкапы храниться должны только в течение 7 дней


Бррр....... ну так вы с таким же успехом можете удалять эти архивы(про которые я говорил) раз в неделю
Нет я вам уже проверенную схему предлагаю, заодно экономите место на диске

Кстати почему вы не хотите делать бэкап логов?

так вы скорее сможете восстановить базу если у вас погибнет диск с mdf файлами

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

Бэкап логов не подходит из-за невозможности сделать НЕЗАВИСИМУЮ схему дублирования бэкапов. При применении бэкапирования логов их придется просто копировать, что существенно понижает уровень надежности. Плюс при применении резервного копирования логов потеря любого из промежуточных бэкапов приводит к потере всей остальной цепочки.
7 июл 04, 14:02    [790397]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
Glory
Тогда DTS.
Можно даже унтверсальный создать - для всех видов бэкапа для задаваемой через переменную базы


Да, пожалуй, такой способ будет наилучшим.
Главный недостаток - все механизмы придется писать вручную...
7 июл 04, 14:03    [790407]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Breakneck
Полные бэкапы хранятся ровно столько же, сколько и дифференциальные - неделю. То есть, через семь дней после создания бэкапа мы удаляем его вне зависимости от его вида.

И как представляется возможным поднять бэкап, допустим, из живого диф за прошлую пятницу, если за прошлый понедельник его полный уже снесен?
7 июл 04, 14:07    [790422]     Ответить | Цитировать Сообщить модератору
 Re: Не затираются дифференциальные бэкапы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Главный недостаток - все механизмы придется писать вручную...
Да там механизмов-то - раз и два
Раз - это сформировать текст команды BACKUP для ExecuteSQLTask
Два - это ActiveXScriptTask которая с помощью FSO проверит директорию на наличие "устаревших" файлов
Ну и еще может быть всякие украшательства в виде отсылки сообщений администратору при выполнении(или не выполнении) шагов

ЗЫ
А я бы все таки переделал схему бэкапа на
- 1 раз в сутки полный бэкап
- 1 раз в час бэкап лога.
7 июл 04, 14:13    [790446]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить