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

Откуда: Киев
Сообщений: 154
Есть система которая по каким-то причинам построена на нескольких базах данных (все на одном sql сервер инстанс)
Бизнес транзакция производится и ее данные распихиваются по нескольким базам (куда-то сканы документов/фотки, куда-то данные для самопальных репликаций, куда-то основная часть)

Собственно вопрос как это дело правильно бекапить. Снимок ведь поидее должнен быть в один момент времени для всех баз.

База под 300 гиг, транзакции идут круглосуточно и много.
6 ноя 09, 17:03    [7893674]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Esu
Member

Откуда: Киев
Сообщений: 154
да, mssql2000 enterprise
6 ноя 09, 17:07    [7893695]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
чтоб обеспечить целостность данных после подьеиа 3х бекапов ? Имхо - никак, только если одновременно сделать снапшоты 3х БД. Или постраться делать почти одновременый бекап + одинаковое расписание для бекапа логов..и то я думаю что все равно добиться 100% успеха,будет тяжко
-------------------------------------
Jedem Das Seine
6 ноя 09, 17:08    [7893708]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Maxx
Member [скрыт]

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

снапшоты - отпадают,нет их в 2000
6 ноя 09, 17:08    [7893714]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Esu
Member

Откуда: Киев
Сообщений: 154
Впринципе ответ "никак" меня тоже устраивает.
Главное что бы это 'никак' было аргументированным :)
6 ноя 09, 17:11    [7893730]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Glory
Member

Откуда:
Сообщений: 104760
Esu


Собственно вопрос как это дело правильно бекапить. Снимок ведь поидее должнен быть в один момент времени для всех баз.

Не получится. Потому что записи в журналах разных баз не будут никак связаны в одну "бизнес транзакцию". Если только ваше приложение не делает BEGIN TRANSACTION с опцией WITH MARK для кажлой базы
Тогда еще можно будет сделать восстановление логов с опцией STOPATMARK/STOPBEFOREMARK
6 ноя 09, 17:14    [7893751]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
хотя если ухитриться чисто гипотетически запусить 3 команды backup одновремено то в бекап плопадут все закомиченые страницы на момент начала бекапа, ..и вроде как одинаковое состояние БД гарантировано в бекапе..но вот разница в незакомиченых страницах..и впроводимых операциях на момент бекапа может быть очень существена. Посему "никак" - тоже особо не ответ
-------------------------------------
Jedem Das Seine
6 ноя 09, 17:18    [7893784]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Как вариант понятие из Оракла - холодный бекап.
-------------------------------------
Jedem Das Seine
6 ноя 09, 17:19    [7893790]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Esu
Member

Откуда: Киев
Сообщений: 154
Maxx,

"ухитриться чисто гипотетически" это не 100% гарантия
А если не 100% то значит никак. Вы бы под таким решением подписались? :)

База эта не моя (а скорее даже злобных конкурентов конторы), так что отпишу просто с чистой совестью "все что мог..."
бекапить поставлю одновременно все базы
6 ноя 09, 17:25    [7893824]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
я б, нет не подписался... и помоему ето аргументировал в предпоследнем своем посте.
-------------------------------------
Jedem Das Seine
6 ноя 09, 17:28    [7893838]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Esu
Member

Откуда: Киев
Сообщений: 154
всем спасибо

есть ли какой-то более элегантный метод это реализовать чем плодить backup джобы по количеству баз?
6 ноя 09, 17:39    [7893903]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Glory
Member

Откуда:
Сообщений: 104760
Esu
всем спасибо

есть ли какой-то более элегантный метод это реализовать чем плодить backup джобы по количеству баз?

Для параллельного бэкапа придется плодить. Потому что и шаги джоба и команды в скрипте выполняются последовательно
6 ноя 09, 17:41    [7893914]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
Esu
Собственно вопрос как это дело правильно бекапить. Снимок ведь поидее должнен быть в один момент времени для всех баз.
Для таких систем бакапы и восстановление нужно проектировать с учётом логической структуры (зависимостей) данных в отдельных БД друг от друга.

Например, если в одной базе есть таблица документов, а в другой - их сканы, то нужно сначала бакапить базу с докментами, потом со сканами.

Разумеется, сама системы тоже должна быть спроектирована сучётом этого, например, сканы не должны удаляться, или удаление должно происходить в несколько фаз.
7 ноя 09, 13:06    [7896307]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
aleks2
Guest
Робяты,
1. Мoдель восстановления FULL.
2. Сколько надо бэкапов.
3. Столько же бэкапов журнала транзакций.

ВОСТАНОВЛЕНИЕ с опцией STOP AT между временем конца последнего полного бэкапа и временем конца первого журнала транзакций.

Рассогласование возможно, но... лучше чем ничего.
7 ноя 09, 18:18    [7896809]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
aleks2
Робяты,
1. Мoдель восстановления FULL.
2. Сколько надо бэкапов.
3. Столько же бэкапов журнала транзакций.

ВОСТАНОВЛЕНИЕ с опцией STOP AT между временем конца последнего полного бэкапа и временем конца первого журнала транзакций.

Рассогласование возможно, но... лучше чем ничего.
ТС уже писал, что маленькое рассогласование его не устраивает
8 ноя 09, 00:42    [7897553]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
Легко.

Базы переводим в single user with rollback immidiate, бэкапим, позвращаем как было.
Пользователей, конечно жалко. ;)
8 ноя 09, 01:38    [7897640]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Gerros
Member

Откуда: Харьков
Сообщений: 501
Maxx
в бекап плопадут все закомиченые страницы на момент начала бекапа
Помнится мне, в 2000 как раз на момент завершения бакапа.
Тулза нужна, которая знает схему данных. Чтобы после поднятия из бакапа вычищала "лишние" данные из тех баз, чей бакап позднее. И продумать, что она должна делать, если в поздней базе данные, соответствующие ранней, уже удалены.
9 ноя 09, 00:54    [7899318]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Antoshka
Member

Откуда:
Сообщений: 828
Почему в одну базу нельзя всё засунуть?
9 ноя 09, 10:53    [7900212]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Crimean
Member

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


Собственно вопрос как это дело правильно бекапить. Снимок ведь поидее должнен быть в один момент времени для всех баз.

Не получится. Потому что записи в журналах разных баз не будут никак связаны в одну "бизнес транзакцию". Если только ваше приложение не делает BEGIN TRANSACTION с опцией WITH MARK для кажлой базы
Тогда еще можно будет сделать восстановление логов с опцией STOPATMARK/STOPBEFOREMARK


а кто мешает делать такую техническую транзакцию перед каждой группой бакапов? прямо из батча? а потом при необходимости - восстанавливать состояние на этот момент. можно вообще пустить джоб, который будет такие транзакции делать скажем раз в минуту. и на каждую такую транзакцию можно будет восстановить систему весьма согласовано. да, это не на любой момент времени, но согласованность будет точно
9 ноя 09, 11:06    [7900269]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Glory
Member

Откуда:
Сообщений: 104760
Crimean
Glory
Esu


Собственно вопрос как это дело правильно бекапить. Снимок ведь поидее должнен быть в один момент времени для всех баз.

Не получится. Потому что записи в журналах разных баз не будут никак связаны в одну "бизнес транзакцию". Если только ваше приложение не делает BEGIN TRANSACTION с опцией WITH MARK для кажлой базы
Тогда еще можно будет сделать восстановление логов с опцией STOPATMARK/STOPBEFOREMARK


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

Ээээ. Так автору то нужно восстановить базы не технически согласованные на момент времени, а именно логически. Потому что "куда-то сканы документов/фотки, куда-то данные для самопальных репликаций, куда-то основная часть". И в момент технической транзакции с опцией WITH MARK не будет известно, какие части одной бизнес транзакции в каких базах завершены, а в каких может еще и не начались
Я так лично понимаю
9 ноя 09, 11:12    [7900300]     Ответить | Цитировать Сообщить модератору
 Re: Бэкап нескольких баз  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а кто мешает совместить? на прикладном уровне выделить моменты "согласованности" и фигачить межбазовые транзакции с метками. вуаля. метки - это же всего лишь средство :)
9 ноя 09, 12:12    [7900697]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить