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

Откуда: Москва
Сообщений: 1315
Блог
Имеется база данных, SQL Server, работающая в режиме 24/6. Примерно чуть более 20 тыс одновременных пользователей, несколько тысяч одновременных пользователей глубокой ночью.
Периодически выходят новые версии системы, на базу данных накатываются скрипты, переводящие ее к новой версии. Перевод к новой версии занимает несколько часов, обычно 2-4 часа.
Руководство теперь хочет чтобы система работала 24/7, для этого есть причины. В обычные выходные это несложно обеспечить, но при переходе на новую версию так не получится.
Простой все равно будет, но его время надо как-то уменьшать.
Идеи как это сделать имеются, но интересен опыт других.
Сталкивался ли кто-нибудь с похожей проблемой, как решали?
29 мар 19, 14:15    [21847068]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8644
andsm,
Да. Видел я такое. База изначально проектировалась так, что таблицы не обновлялись. Остальное вертелось и обновлялось штатным образом... Данные хорошо реплицировались но логика была слишком тяжела.
29 мар 19, 14:22    [21847086]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49530
andsm
Руководство теперь хочет чтобы система работала 24/7, для этого есть причины.

Для обеспечения этого понадобится кластер. С ним всё просто: отключаешь одну ноду, обновляешь её, переключаешь на неё систему, повторяешь обновление на второй ноде.
29 мар 19, 14:42    [21847123]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
У вас на какие именно изменения уходит больше всего времени? Структуры, данных, еще чего-то?
29 мар 19, 15:13    [21847199]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
Dimitry Sibiryakov
andsm
Руководство теперь хочет чтобы система работала 24/7, для этого есть причины.

Для обеспечения этого понадобится кластер. С ним всё просто: отключаешь одну ноду, обновляешь её, переключаешь на неё систему, повторяешь обновление на второй ноде.

Такое может работать, только если данные не изменяются. Иначе потеряются данные, измененные за время обновления.
29 мар 19, 15:58    [21847275]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
Гавриленко Сергей Алексеевич
У вас на какие именно изменения уходит больше всего времени? Структуры, данных, еще чего-то?

Основное - изменение данных. Структуру поменять легко и быстро.
И, усложняющий фактор, вообще-то БД это не одна БД, одна БД не справилась бы с нагрузкой. Это более 15 географически распределенных серверов SQL Server, на каждом из которых находится одна база данных. Все базы данных между собой соединены репликацией, реализован шардинг, геокластеры, и т.п.
29 мар 19, 16:05    [21847289]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
andsm,

не изменять апгрейдом кучу данных не предлагать?
29 мар 19, 16:12    [21847304]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
invm
Member

Откуда: Москва
Сообщений: 9123
Пользователи читатели? Если да, то возможно поможет database snapshot.
29 мар 19, 16:36    [21847330]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
WarAnt
andsm,

не изменять апгрейдом кучу данных не предлагать?

Разумеется. Если бы настолько очевидное решение подходило бы, то и вопроса бы не было.
29 мар 19, 16:50    [21847350]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
invm
Пользователи читатели? Если да, то возможно поможет database snapshot.

Нет конечно, активно пишут.
29 мар 19, 16:51    [21847354]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
Похоже, очень редко встречающаяся задача, судя по отсутствию идей в топике. При этом, не сказать чтобы она не имеет решений.

Я как-то переводил БД с одной схемы данных на совсем другую, тоже для 24/7 системы и с активно пишущими пользователями. Некоторые таблицы превращались в несколько других таблиц, некоторые таблицы наоборот объединялись. Содержимое многих полей менялось при обновлении, и т.п. Размер БД был примерно 1.5 Тб. Так вот, время простоя составило 15 секунд. Да-да, секунд. Другое дело, что разработка такого перехода заняла несколько месяцев. Хочется поискать менее трудоемкие варианты.
29 мар 19, 16:59    [21847370]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
МуМу
Member

Откуда:
Сообщений: 1120
Да, решали подобную задачу и кучу раз. Решается репликацией и только репликацией.(крастера типа AlwaysOn, онлайн индексы это другие задачи). Задача эта очень обширная, чего вас конкретно интересует?
29 мар 19, 17:15    [21847397]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
МуМу
Member

Откуда:
Сообщений: 1120
В контексте того что у вас используется репликация, тем более вы должны понимать концепт того каким образом это решать и сколько это будет стоить. Еще момент, если архитектурно в самом начале разработки системы не было принято стратегическое о ее дальнейшей работе в 24*7 то это может быть и нерешаемой задачей(то есть без окон не обойтись никак).
29 мар 19, 17:28    [21847406]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
andsm
Руководство теперь хочет чтобы система работала 24/7, для этого есть причины. В обычные выходные это несложно обеспечить, но при переходе на новую версию так не получится.
Простой все равно будет, но его время надо как-то уменьшать.
Идеи как это сделать имеются, но интересен опыт других.
Если было требование 24х7, то обновления мы писали так, что бы не прерывать работу системы.
Сделать это не просто, а очень просто, так что это вопрос административный, а не технологический.
29 мар 19, 17:38    [21847426]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
andsm
WarAnt
andsm,

не изменять апгрейдом кучу данных не предлагать?

Разумеется. Если бы настолько очевидное решение подходило бы, то и вопроса бы не было.
Вообще трудно представить обновление, для которого нельзя придумать способ сделать его так, что бы это не затронуло пользователей.
Хотелось бы пример, тем более чсто вы говорите про это, как о чём то очевидном.
29 мар 19, 17:41    [21847433]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
МуМу
В контексте того что у вас используется репликация, тем более вы должны понимать концепт того каким образом это решать и сколько это будет стоить. Еще момент, если архитектурно в самом начале разработки системы не было принято стратегическое о ее дальнейшей работе в 24*7 то это может быть и нерешаемой задачей(то есть без окон не обойтись никак).
Да, увидел дополнение про репликации...
Согласен, тогда придётся что то либо менять в архитектуре, либо отказаться от идеи.
29 мар 19, 17:44    [21847440]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
alexeyvg
andsm
пропущено...

Разумеется. Если бы настолько очевидное решение подходило бы, то и вопроса бы не было.
Вообще трудно представить обновление, для которого нельзя придумать способ сделать его так, что бы это не затронуло пользователей.
Хотелось бы пример, тем более чсто вы говорите про это, как о чём то очевидном.


я про то же, странная система которая требует переделки кучи данных при простом обновлении версии системы, на лицо кривая архитектура, явно не подразумевающая работу без остановки, и для такой архитектуры есть тольок два варианта, либо переписать либо открыть чулан с костылями.
29 мар 19, 17:47    [21847448]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
МуМу
Да, решали подобную задачу и кучу раз. Решается репликацией и только репликацией.(крастера типа AlwaysOn, онлайн индексы это другие задачи). Задача эта очень обширная, чего вас конкретно интересует?

Так-то я тоже умею. Но уж очень это трудоемко... Хочется чего-нибудь попроще.
29 мар 19, 17:57    [21847460]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
МуМу
В контексте того что у вас используется репликация, тем более вы должны понимать концепт того каким образом это решать и сколько это будет стоить. Еще момент, если архитектурно в самом начале разработки системы не было принято стратегическое о ее дальнейшей работе в 24*7 то это может быть и нерешаемой задачей(то есть без окон не обойтись никак).

Без окон мы обходимся по факту и сейчас, но не во время обновления системы.
29 мар 19, 17:58    [21847462]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
alexeyvg
andsm
пропущено...

Разумеется. Если бы настолько очевидное решение подходило бы, то и вопроса бы не было.
Вообще трудно представить обновление, для которого нельзя придумать способ сделать его так, что бы это не затронуло пользователей.
Хотелось бы пример, тем более чсто вы говорите про это, как о чём то очевидном.

Мелкие обновления у нас и так выходят без остановки системы. Речь то идет о выходе новой версии системы.
29 мар 19, 17:59    [21847465]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
andsm
alexeyvg
пропущено...
Вообще трудно представить обновление, для которого нельзя придумать способ сделать его так, что бы это не затронуло пользователей.
Хотелось бы пример, тем более чсто вы говорите про это, как о чём то очевидном.

Мелкие обновления у нас и так выходят без остановки системы. Речь то идет о выходе новой версии системы.
Так надо изменения версии делать по той же схеме, что и мелкие обновления.

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

Вот, значит, пора менять архитектуру на 24х7, раз бизнес захотел.
То есть отойти от принципа "программисты ваяли-ваяли, работали-работали, и вот, у них готова новая версия. Она накатывается на сервер, и на клиент, и пока накатывают, ничего не работает."
Значит, старый клиент (или Веб-сервер) должен работать с новой базой, все изменения в базе должны делаться без остановки, клиент тоже должен обновляться быстро (мы, правда, сессии всё таки теряли, не получалось без этого)
29 мар 19, 18:24    [21847495]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
WarAnt
alexeyvg
пропущено...
Вообще трудно представить обновление, для которого нельзя придумать способ сделать его так, что бы это не затронуло пользователей.
Хотелось бы пример, тем более чсто вы говорите про это, как о чём то очевидном.


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

"Простое" обновления версии системы?
Ну вот пример. Новая версия системы, выходит через несколько недель. 100+ скриптов по внесению изменению в данные и в схему. Чуть менее 1000 измененных хранимых процедур. Это можно назвать простым обновлением?
29 мар 19, 18:30    [21847501]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
alexeyvg
Знаете, из вашего описания ведь неявно следует, что новые версии клиентского софта не работают со старой версией базы, и наоборот.
А это важный признак противоречия архитектуры и 24х7
Какая разница, можно ли останавливать базу, или нельзя, если клиент превращается ровно в пполночь превращается в тыкву?
Впрочем, может, у вас клиент один, то есть сайт?

Клиентский софт вообще не имеет прямого доступа к БД. Он соединяется к серверам приложений, и только серверные компоненты работают с БД. Работа с клиентскими приложениями идет по определенному протоколу, который при выходе версии не меняется, Вот для серверных компонентов версия БД важна. Обновление клиентских приложений вообще отдельная процедура, никак с выходом версии не связанный.
И это не сайт.
29 мар 19, 18:44    [21847515]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
andsm
WarAnt
я про то же, странная система которая требует переделки кучи данных при простом обновлении версии системы, на лицо кривая архитектура, явно не подразумевающая работу без остановки, и для такой архитектуры есть тольок два варианта, либо переписать либо открыть чулан с костылями.

"Простое" обновления версии системы?
Ну вот пример. Новая версия системы, выходит через несколько недель. 100+ скриптов по внесению изменению в данные и в схему. Чуть менее 1000 измененных хранимых процедур. Это можно назвать простым обновлением?
А что такого? Каждое изменение, каждый скрипт, делается так, что бы система как работала, так и продолжала работать.

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

Конечно, общий деплой сначала обкатывается на копии продакшен-системы, и проверяется тестерами; ну, это уже в принципе банальная органицация изменений, это само собой.
29 мар 19, 18:45    [21847516]     Ответить | Цитировать Сообщить модератору
 Re: Обновление 24/7 базы данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30791
andsm
alexeyvg
Впрочем, может, у вас клиент один, то есть сайт?

Клиентский софт вообще не имеет прямого доступа к БД. Он соединяется к серверам приложений, и только серверные компоненты работают с БД. Работа с клиентскими приложениями идет по определенному протоколу, который при выходе версии не меняется, Вот для серверных компонентов версия БД важна.
А, ну ок, это даже лучше, удобнее контролировать.
Под "сайт" я имел в виду некую единую, контролируемую вами, систему.
29 мар 19, 18:47    [21847517]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить