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

Откуда: Питер
Сообщений: 1938
Здравствуйте!

SQL Server 2008

Задача такова: Нужно обеспечить беспрерывную работу сервера, На сервере постоянно нагрузка. Отключать нельзя. Но при этом очень тяжко даются обновления баз данных. Если запустить создание или пересоздание индекса, к примеру, все становятся в очередь, приложение падает по таймауту, а потом долго подымается, так как ему надо наполнить кэш.

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

Модель восстановления на самой большой и нагруженной БД - Simple. Так что зеркалирование не годится. Поможет ли транзакционная репликация ? Или есть другие способы?
30 янв 13, 14:27    [13850858]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Shurgenz
Нужна такая модель, чтобы можно было переключиться с боевого сервера на другой, на боевом накатить спокойно обновления, и переключиться снова назад.
Failover Cluster ?
30 янв 13, 14:36    [13850968]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Glory
Member

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

Может просто начать использовать SNAPSHOT TIL ?
30 янв 13, 14:41    [13851007]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
tpg
Shurgenz
Нужна такая модель, чтобы можно было переключиться с боевого сервера на другой, на боевом накатить спокойно обновления, и переключиться снова назад.
Failover Cluster ?


Есть опыт? Как это работает?
30 янв 13, 14:41    [13851008]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Shurgenz
tpg
пропущено...
Failover Cluster ?


Есть опыт? Как это работает?
Всё в документации описано. Как описано, так и работает.
30 янв 13, 14:43    [13851037]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

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

Может просто начать использовать SNAPSHOT TIL ?


что это за зверь? SNAPSHOT TIL
30 янв 13, 14:45    [13851060]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Glory
Member

Откуда:
Сообщений: 104751
Shurgenz
что это за зверь? SNAPSHOT TIL

Специальный уровень изоляции, в котором писатели и читатели сосуществуют без блокировок
30 янв 13, 14:57    [13851172]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Glory
Shurgenz
что это за зверь? SNAPSHOT TIL

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


TIL - transaction isolation level? я правильно понимаю?
30 янв 13, 15:06    [13851250]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
pkarklin
Member

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


Online операции с индексами поддерживаются Entreprise редакции. Смывается кэш - М.б. памяти мало?

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


Абсолютно неправильная модель.
30 янв 13, 15:33    [13851452]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Shurgenz
TIL - transaction isolation level? я правильно понимаю?

Да, правильно.
Смотрите в BOL статьи CREATE INDEX и ALTER INDEX, опцию ONLINE = ON. Ну и ссылки на другие статьи BOL, которые будут в описании этой опции.
30 янв 13, 15:35    [13851470]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Чтоб писатели не мешали читалелям (и наоборот), будет достаточно опции БД READ_COMMITED_SNAPSHOT. Следует учесть при этом увеличение нагрузки на tempdb (при наличии толстых модифицирующих транзакций) и увеличение объема бд, за счет добавления новой информации на страницы.
30 янв 13, 15:39    [13851511]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
pkarklin
Абсолютно неправильная модель.


Ну а какая тогда абсолютно правильная?
30 янв 13, 15:59    [13851700]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Shurgenz
pkarklin
Абсолютно неправильная модель.


Ну а какая тогда абсолютно правильная?
Оптимизировать код/железо, чтобы держало нагрузку, в том числе и регламенты. Для обеспечения доступности использовать mirroring/failover cluster/always on.
30 янв 13, 16:03    [13851728]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Shurgenz
Ну а какая тогда абсолютно правильная?


Соответствующая требованиям доступности редакция;
Соответствующее требованиям доступности оборудование ;
Соответвующее требованиям доступности организация и проведение регламентых работ.

Пока Вы озвучили проблему с регламентными работами с индексами. Она решается переходом на "старшую" редакцию. Какие еще проблемы у Вас остались?
30 янв 13, 16:03    [13851729]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

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

Такой тогда вопрос...

Поможет ли мне SNAPSHOT TIL в случае, когда мне нужно накатить скрипт, который меняет не только индексы, но и другие объекты БД. Да так, чтобы никому не мешать блокировками изменения схемы?

Сейчас в БД все запросы на чтение используют NOLOCK хинты. Так вот, они ждут, пока не изменится схема.
30 янв 13, 17:35    [13852327]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Shurgenz
Окей

Такой тогда вопрос...

Поможет ли мне SNAPSHOT TIL в случае, когда мне нужно накатить скрипт, который меняет не только индексы, но и другие объекты БД. Да так, чтобы никому не мешать блокировками изменения схемы?

Сейчас в БД все запросы на чтение используют NOLOCK хинты. Так вот, они ждут, пока не изменится схема.
Sch-M вы не проскипаете, только если не пересадите всех читателей на database snapshots (не путать с snapshot isolation level). Ну или не делайте длительных модификаций объектов, которые обильно юзаются.
30 янв 13, 17:38    [13852356]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Гавриленко Сергей Алексеевич
Shurgenz
Окей

Такой тогда вопрос...

Поможет ли мне SNAPSHOT TIL в случае, когда мне нужно накатить скрипт, который меняет не только индексы, но и другие объекты БД. Да так, чтобы никому не мешать блокировками изменения схемы?

Сейчас в БД все запросы на чтение используют NOLOCK хинты. Так вот, они ждут, пока не изменится схема.
Sch-M вы не проскипаете, только если не пересадите всех читателей на database snapshots (не путать с snapshot isolation level). Ну или не делайте длительных модификаций объектов, которые обильно юзаются.


как раз не делать длительных модификаций не получается. Есть к примеру таблица LoginUserActivities. Она достаточно большая, и обращений к ней много, добавление/изменение/удаление индекса на ней создает Sch-M и все ждут. database snapshots - это репликационные снэпшоты что ли?
30 янв 13, 17:42    [13852382]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Crimean
Member

Откуда:
Сообщений: 13147
изменение схемы = обновление версии
а обновление версии редко оканчивается только базой
так что паузу в работе придется сделать в любом случае - или на обновленный сайт клиентов перевести или заставить их обновленное по запустить, что почти одно и то же
но если сильно "печет" - можно оставить на какое-то время старую версию доступной в рид-онли режиме, скажем, на снапшоте базы
30 янв 13, 17:43    [13852384]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Shurgenz
как раз не делать длительных модификаций не получается. Есть к примеру таблица LoginUserActivities. Она достаточно большая, и обращений к ней много, добавление/изменение/удаление индекса на ней создает Sch-M и все ждут. database snapshots - это репликационные снэпшоты что ли?
Операции над индексами с 2005й версии сервера можно делать не блокируя объект.
30 янв 13, 17:45    [13852399]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Shurgenz,

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

автор
добавление/изменение/удаление индекса на ней создает Sch-M и все ждут


Почитайте, уже, про ONLINE операции с индексами.
30 янв 13, 17:46    [13852407]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Crimean
изменение схемы = обновление версии
а обновление версии редко оканчивается только базой
так что паузу в работе придется сделать в любом случае - или на обновленный сайт клиентов перевести или заставить их обновленное по запустить, что почти одно и то же
но если сильно "печет" - можно оставить на какое-то время старую версию доступной в рид-онли режиме, скажем, на снапшоте базы


С этим проще. Аппликешн серверов много, и если потребуется, еще будут. Апдэйт приложения делается по очереди, с выключением из работы каждого, апдэйтом и обратным включением. Больное место как раз БД. Центральный сервер один, есть правда репортинг сервера, они на репликации сидят и READ ONLY. С ними тоже все достаточно просто.
30 янв 13, 17:46    [13852412]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Shurgenz
Так вот, они ждут, пока не изменится схема.


Без подвешивания пользовательей на короткое время некоторые операции (даже простое навешивание FK) невозможны впринципе. Планируйте изменения в метаданных с учетом этого.
30 янв 13, 17:54    [13852470]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
gang
Member

Откуда:
Сообщений: 1394
Shurgenz
Поможет ли мне SNAPSHOT TIL в случае, когда мне нужно накатить скрипт, который меняет не только индексы, но и другие объекты БД. Да так, чтобы никому не мешать блокировками изменения схемы?

Вообщето странноватая практика. Обычно под накатку апдейтов, да еще с изменением схемы объявляют регламент, клиентов от БД отваливают, план оката пишут и все такое... А тут нужно по-тихому "чтоб никто не догадался". Ну а конкретно по теме: готовых решений аля кластер, когда "тут" накатили сервис пак, а "там" еще работаем без него - нет. В принципе для балансировки нагрузки в сиквеле более менее подходят только реплики, но если синхронизация копий нужна близкая к риал-тайм, то это только транзакционная (ну или на ядре транзакционной), а у нее в свою очередь есть такой нежный к массовым апдейтам компонент как логридер. В общем если очень заморочиться то сделать конечно можно, нужен кстати будет еще балансировщик свой со стороны ПО, но проще действительно апдейты делать полегче. Например новые поля если добавляются то можно для начала с null делать а потом в офлайне заполнять. Сам апдейт на части поделить, размазать по времени. Рабилд индексов как тут уже писали в интерпрайз версии с online можно делать (с некоторыми оговорками) и т.п. Ну и эта... "ночь работе не помеха" =)
30 янв 13, 18:03    [13852518]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
Crimean
Member

Откуда:
Сообщений: 13147
gang
Обычно под накатку апдейтов, да еще с изменением схемы объявляют регламент, клиентов от БД отваливают, план оката пишут и все такое...


если система позволяет "ридонли" доступ - можно на время обновления оставлять всех на снапшоте, не трогая старые версии каталогов / сайтов и прочего. после обновления - старое свернуть ибо будет уже доступно новое
30 янв 13, 18:13    [13852567]     Ответить | Цитировать Сообщить модератору
 Re: подскажите способ заставить сервер работать 24/7  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31986
gang
Shurgenz
Поможет ли мне SNAPSHOT TIL в случае, когда мне нужно накатить скрипт, который меняет не только индексы, но и другие объекты БД. Да так, чтобы никому не мешать блокировками изменения схемы?

Вообщето странноватая практика. Обычно под накатку апдейтов, да еще с изменением схемы объявляют регламент, клиентов от БД отваливают, план оката пишут и все такое... А тут нужно по-тихому "чтоб никто не догадался".
По моему нормальнвая практика, например, всякие яндексы и фейсбуки не "отваливают клиентов" на период регламентных работ.
pkarklin
Shurgenz
Ну а какая тогда абсолютно правильная?

Соответствующая требованиям доступности редакция;
Соответствующее требованиям доступности оборудование ;
Соответвующее требованиям доступности организация и проведение регламентых работ.

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

Если требования - "система всегда должна рабротать", то выход только в распределённой БД. Но реально это нужно редко.
30 янв 13, 18:15    [13852574]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить