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

Откуда: Минск
Сообщений: 210
Здравствуйте.
Используем MSSQL2008 EE.

Имею задачу создания горячей резервной копии баз между двумя серверами в разных странах через интернет (по VPN).

Требования:
1) Резервирование должно проводиться через интернет (VPN).
2) Максимально возможная потеря данных в случае падения основного сервера - не более чем за 1 минуту.
3) Время поднятия системы на резервном сервере до 2 часов.
4) Очень желательна возможность изменения структуры на основном сервере (иначе при каждом очередном билде придется перенастраивать резервирование).


Данные о системе:
Размер каждой базы до нескольких гигабайт (суммарный объем фуллбэкапов всех баз около 15 гиг).
Средний суммарный размер бэкапов логов баз в день 235 мегабайт.
Максимальное количество инсертов/апдейтов в день для некоторых таблиц достигает 20000.

У меня есть опыт работы с репликацией и логшиппингом по широкому каналу (локальная сеть), но всеже хотелось бы уточнить нюансы имеено для

работы через интернет (относительно тонкий канал).

Рассматриваю варианты реализации:
1) Log-shipping
2) Транзакционная репликация
3) Зеркалирование.

Вопросы:
1) На сколько я понимаю, в Log-shipping происходит пересылка бэкапов журналов логов, а вот в транзакционной репликации и в зеркалировании что пересылается?

2) Вобщем главный вопрос: какая из технологий наиболее подходит для использования в ситуации резервирования через интернет?
4 июл 11, 18:32    [10920385]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
dobrik
1) На сколько я понимаю, в Log-shipping происходит пересылка бэкапов журналов логов, а вот в транзакционной репликации и в зеркалировании что пересылается?

2) Вобщем главный вопрос: какая из технологий наиболее подходит для использования в ситуации резервирования через интернет?
1. в транзакционной репликации команды, в зеркалировании логи

2. Вашим требованиям соответствует только репликация. Канал конечно должен быть достаточным.
4 июл 11, 19:33    [10920599]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
dobrik
Member

Откуда: Минск
Сообщений: 210
alexeyvg,

Спасибо большое за совет.
Я интуитивно догадывался что в транзакционной репликации передаются не логи а команды, а про зеркалирование даже и не догадывался что там передается :).

Узнал кстати ширину канала между серверами: оказалось 100Mbit.
Было обрадовался что можно и не только репликацией справиться - например логшиппинг попробовать, но как увидел что, при перестроении индексов, логи могут вырости до 50 гигов, понял что 100Mbit не справятся здесь никак.

Скрипты я уже написал заранее для авто настройки репликации с удаленным дистрибьютером, но при удалении репликации остается проблема с identity столбцами при переходе на резервную базу.
Изза репликации слетают сиды на всех identity столбцах.
Придется вручную запускать DBCC CHECKIDENT для всех таблиц с identity всех реплицируемых баз.
4 июл 11, 20:33    [10920727]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
репликация - достаточно спорно. я за логшиппинг - это проще, тем более канал позволяет

регламенты (реиндексация) при этом - да - проблема, но решаемая отказом от штатной реиндексации и реализации своего алгоритма на основании реальной фрагментации + отделения read only части данных
4 июл 11, 20:49    [10920766]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Crimean
репликация - достаточно спорно. я за логшиппинг - это проще, тем более канал позволяет

dobrik
Было обрадовался что можно и не только репликацией справиться - например логшиппинг попробовать, но как увидел что, при перестроении индексов, логи могут вырости до 50 гигов, понял что 100Mbit не справятся здесь никак.

Не забывайте о требованиях - потеря данных не более чем за минуту. Логшиппинг такого не гарантирует.

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

Конечно, если про минуту сказано просто так, а реально можно потерять и побольше, то я бы лучьше использовал мирорринг.

100Mbit канал нормальный, регламенты можно и подстроить под бизнес, по обстоятельситвам.
4 июл 11, 22:52    [10921088]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
guest45
Guest
а можно и так

вопрос в цене решения
5 июл 11, 13:00    [10924017]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
ну так шипьте раз в минуту
5 июл 11, 14:13    [10924803]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Crimean
ну так шипьте раз в минуту
Если возможно, то конечно. Я как то пользовался лог-шиппингом, как то у него большая задержка.
5 июл 11, 15:16    [10925481]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
зеркало и шиппинг как раз дадут "теплый" резерв, 100% полностью операбельный после переключения и гарантию целостности + безусловный перенос структуры данных. бонусом то же зеркало оставит 100% возможностей для использования "прочих возможностей" - ту же реплику можно вешать "на зеркало" и она будет автоматом переключаться и т.п.
реплика же даст ограничено операбельную систему после переключения, конечно, оно все решаемо, но уже пойдут нюансы, сильно завязанные на прикладную часть + вы получите еще одну точку падения - дистрибутора и нехилую нагрузку на него + очень интересные вопросы с обратным переключением системы
5 июл 11, 16:35    [10926435]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Evgen
Member

Откуда: Екатеринбург
Сообщений: 91
Crimean,

не по сабжу, но все-таки спрошу . А в Denali появились какие-нить фичи, позволяющие зеркалить дистрибьютор? Или все так же: кластер или/и бакап?
5 июл 11, 19:41    [10927705]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а вы забакапьте систему с репликой с >1 подписчиком. а после - заресторьте. как попробуете (не говорю "получится") - вернемся к разговору о восстановлении реплики с резервных копий :)
технология классная, спору нет, но вот сбоку она от резервного копирования. хотя резерв на ней можно построить, вопросов нет. просто чем специфичнее технология тем больше зависимость применимости от прикладной задачи
по данали - не смотрел еще вообще "внимательно" что это за зверь такой
5 июл 11, 20:03    [10927793]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
dobrik
Member

Откуда: Минск
Сообщений: 210
Спасибо за такое оживленное обсуждение. :)

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

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

Поэтому чтобы безопасно протестировать логшиппинг, я настрою репликацию с основного сервера (сервер 1) на дополнительный (сервер 1а) в пределах локальной сети. А затем уже с этого сервера-подписчика 1а я настрою логшиппинг в другую страну на сервер 2. Надеюсь что все получится и я смогу для логшиппинга замерять объемы файлов бэкапов логов и оптимально настроить расписание копирования и ресторинг.

По поводу репликации, я уверен, что все удастся настроить и все будет работать даже по 10 Mbit каналу. Но как представлю :(, что после каждого билда необходимо заново настраивать репликацию, пересылать фуллбэкапы для первоначальной инициализации (и кстати в это время какраз резервирования не будет). Да и понаписать кучу скриптов для обратной пересылки данных, чтоб после переключения на второй сервер, можно было снова вернуться на первый.

Под требование о потере данных за минуту, действительно подходит только репликация, но я думаю, что при достаточных аргументах, руководство согласится и на потерю до 3-4 минут, под которые теоретически смогут попасть и логшиппинг и зеркалирование (опятьже это надо тестить под реальной нагрузкой). Вобщем буду пробовать...
6 июл 11, 16:25    [10933658]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
dobrik
Но как представлю :(, что после каждого билда необходимо заново настраивать репликацию, пересылать фуллбэкапы для первоначальной инициализации (и кстати в это время какраз резервирования не будет).
Если у вас прекращается запись на время деплоя, то не надо никакой инициализации.
6 июл 11, 16:33    [10933744]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
dobrik
Member

Откуда: Минск
Сообщений: 210
Crimean
репликация - достаточно спорно. я за логшиппинг - это проще, тем более канал позволяет

регламенты (реиндексация) при этом - да - проблема, но решаемая отказом от штатной реиндексации и реализации своего алгоритма на основании реальной фрагментации + отделения read only части данных


Вот кстати очень интересен этот алгоритм.

Вы имеете ввиду секционировать таблицы и пересчитывать индексы только для последних секций, а остальные секции делать readonly ?

Или же алгоритм представляет собой какойто другой "хитрый" способ реиндексирования?
6 июл 11, 16:34    [10933752]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
dobrik
Member

Откуда: Минск
Сообщений: 210
alexeyvg
dobrik
Но как представлю :(, что после каждого билда необходимо заново настраивать репликацию, пересылать фуллбэкапы для первоначальной инициализации (и кстати в это время какраз резервирования не будет).
Если у вас прекращается запись на время деплоя, то не надо никакой инициализации.


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

Неужели можно накатывать скрипты с изменениями схемы и на подписчика без перекачивания полного бэкапа? (при остановленной репликации)
6 июл 11, 16:38    [10933778]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
dobrik
alexeyvg
Если у вас прекращается запись на время деплоя, то не надо никакой инициализации.
Во время деплоя происходит накат скриптов с изменениями схемы. Поэтому изменения схемы нужно перенести и на сервер подписчик для возобновления репликации.

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

Просто в скрипты деплоя добавляете удаление репликации вначале и создание без переинициализации в конце.

И разумеется, выполняете скрипты на обоих серверах (на втором, понятно, без создания репликации)
6 июл 11, 16:41    [10933799]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
dobrik
Неужели можно накатывать скрипты с изменениями схемы и на подписчика без перекачивания полного бэкапа? (при остановленной репликации)


начиная с 2005 репликацию при обновлении системы стопать не надо. схема на подписчике поменяется сама. единственный побочный эффект - снапшоты станут "протухшими", но это обычно никого не волнует
6 июл 11, 16:41    [10933801]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Crimean
начиная с 2005 репликацию при обновлении системы стопать не надо
Ну да, это ещё один вариант. Единственно, при больших обновлениях репликацией будет передаваться много данных, и ещё некоторые обновления будут невозможны.

Но в общем можно использовать наиболее подходящий для конкретного деплоя метод.
6 июл 11, 16:44    [10933827]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
dobrik
Member

Откуда: Минск
Сообщений: 210
Вот это действительно круто!!! (и про накат скриптов и про автоматическое изменение схемы).

Про накат скриптов на подписчика это действительно очень сильно повышает для меня возможность использования репликации.

А по поводу изменения схемы - т.е. я так понимаю что, начиная с 2005 сервера, репликация стала поддерживать автоматическое изменение схемы??? %)

Получается что если у меня в базе реплицируются все таблицы, а я на паблишере создам новую таблицу, то она автоматически попадет на подписчика ? (при этом она я так понимаю сама по себе не включится в репликацию)
6 июл 11, 16:51    [10933905]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
Crimean
Member

Откуда:
Сообщений: 13147
dobrik
если у меня в базе реплицируются все таблицы, а я на паблишере создам новую таблицу, то она автоматически попадет на подписчика ?


нет. надо будет добавить артикль, сделать снапшот и т.д. мы про транзакционную реплику говорим, судя по всему?
а вот добавление / убирание полей для уже подписанных таблиц пройдет автоматом
на подписчика нужно будет только объекты доставить
ну или сделать отдельно публикацию для объектов и переинитить ее снапшот после установки обновления на издателе - остальное само произойдет. разумеется, новые объекты - надо добавить в публикацию
6 июл 11, 16:59    [10933971]     Ответить | Цитировать Сообщить модератору
 Re: Выбор технологии горячего резервирования баз через интернет  [new]
andsm
Member

Откуда: Москва
Сообщений: 1320
Блог
Транзакционная репликация обеспечивает заявленные требования.
Так же как и зеркалирование (мирроринг).
Мирроринг создаст больше нагрузку на канал.
Транзакционная репликация сложнее в конфигурации и поддержке.
Так что выбор между миррорингом и транзакционной репликацией не очевиден, и зависит в первую очередь от степени квалификации имеющего персонала.
7 июл 11, 00:28    [10935779]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить