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

Откуда:
Сообщений: 6
Здравствуйте. Есть железный сервер sql2014sp1 (12.0.4100.1) 12 настоящих ядер, 100Гб ОЗУ. Он зеркалируется на ВМ с sql 2014sp1+cu (12.0.4422.0). 6Гб, сколько то ядер. Для скуля отдавал 2-3-4 Гб (max mem). После субботнего реиндекса на принципале мирроринг рвется. Ошибки на принимающей стороне There is insufficient system memory in resource pool 'internal' to run this query, There is insufficient system memory in resource pool 'default' to run this query, Failed allocate pages: FAIL_PAGE_ALLOCATION 2. После рестарта службы скуля на мирроре и нажати resume на принципале какое то время мирроринг идет, может завершиться успешно, может опять упасть. Вопрос гуглил. Грува нет, служба запущена от учетки которой не разрешено фиксировать страницы в памяти. После долгих мытарств увидел, что при передаче логов с принципала на миррор растет цифра select pages_in_bytes from sys.dm_os_memory_objects where type='MEMOBJ_DBMIRRORING'. Растет именно при передаче, не при накатывании логов. Есть советы как забороть? Заранее спасибо.
6 окт 15, 19:00    [18243318]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
komrad
Member

Откуда:
Сообщений: 5493
Саша235
Здравствуйте. Есть железный сервер sql2014sp1 (12.0.4100.1) 12 настоящих ядер, 100Гб ОЗУ. Он зеркалируется на ВМ с sql 2014sp1+cu (12.0.4422.0). 6Гб, сколько то ядер. Для скуля отдавал 2-3-4 Гб (max mem). После субботнего реиндекса на принципале мирроринг рвется. Ошибки на принимающей стороне There is insufficient system memory in resource pool 'internal' to run this query, There is insufficient system memory in resource pool 'default' to run this query, Failed allocate pages: FAIL_PAGE_ALLOCATION 2. После рестарта службы скуля на мирроре и нажати resume на принципале какое то время мирроринг идет, может завершиться успешно, может опять упасть. Вопрос гуглил. Грува нет, служба запущена от учетки которой не разрешено фиксировать страницы в памяти. После долгих мытарств увидел, что при передаче логов с принципала на миррор растет цифра select pages_in_bytes from sys.dm_os_memory_objects where type='MEMOBJ_DBMIRRORING'. Растет именно при передаче, не при накатывании логов. Есть советы как забороть? Заранее спасибо.


мало у вас памяти на приемнике
индексы, поди, большие перестраиваете на исходном, вот и становится Log Cache плохо - не впИхивается невпихУемое.
6 окт 15, 19:38    [18243496]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Саша235
Member

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

Спасибо за участие. Да, некоторые индексы десятки гигов. Прошу прощения если скажу пургу, но я считал что логирование и мирроринг работает не так. На принципале одна команда alter index ... rebuild порождает гигабайты логов. Когда работает эта команда могут строиться какие-то структуры, что то пихаться в темпдб и т.д. И может не хватить памяти для этих структур, кэшей, временных объектов. Но в логах хранится не эта команда, а реально изменяемые данные. И поэтому логов так много (у меня полный реиндекс генерит около тера логов, хотя индексов 3.5тыс и весь этот объем передается на миррор). И на принимающей стороне не выполняется команда alter index, а просто данные из лога забиваются в страницы в mdf файле. Поэтому на мирроре не нужна память, так как не создаются объекты, которые создавались на принципале. И про 'MEMOBJ_DBMIRRORING' я не просто так написал. Сколько бы я не отдавал памяти скулю, я пробовал 2-3-4 Гига после рестарта сервиса MEMOBJ_DBMIRRORING занимает мало. Но потом начинает увеличиваться. И когда она подойдет к max mem в этот момент какой то другой части скуля памяти не хватает.
7 окт 15, 10:30    [18245172]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Саша235
Member

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

И еще добавка: в конце концов все получается и скулю хватает этих 4 Гигов, только рестарты надо делать три или четыре раза :-(.
7 окт 15, 11:40    [18245560]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
Саша235
komrad,

И еще добавка: в конце концов все получается и скулю хватает этих 4 Гигов, только рестарты надо делать три или четыре раза :-(.


---Но в логах хранится не эта команда, а реально изменяемые данные.

при мирроринге передаются честные транзакции, поэтому построение индексов на совести (и памяти) принимаюшей стороны.

6Г - у меня на виртуальной тестовой машине на ноубуке больше
7 окт 15, 19:27    [18249137]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
а как в это время ведет себя журнал транзакций на зеркале (dbcc loginfo)?
8 окт 15, 09:24    [18250639]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
что в счетчиках производительности mirroring-а?
ps: здесь-как мониторить mirroring.
8 окт 15, 17:00    [18254316]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Саша235
Member

Откуда:
Сообщений: 6
Lepsik
Саша235
komrad,

И еще добавка: в конце концов все получается и скулю хватает этих 4 Гигов, только рестарты надо делать три или четыре раза :-(.


---Но в логах хранится не эта команда, а реально изменяемые данные.

при мирроринге передаются честные транзакции, поэтому построение индексов на совести (и памяти) принимаюшей стороны.

6Г - у меня на виртуальной тестовой машине на ноубуке больше


Спасибо за инфу, что принимающая сторона тоже строит индексы. Про 6Гб - я тоже могу взять больше, но считал что упор не в этом, да и я на договоре pay as you go. Чем больше возьму тем больше придется платить.
12 окт 15, 18:48    [18269182]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Саша235
Member

Откуда:
Сообщений: 6
andrey odegov
что в счетчиках производительности mirroring-а?
ps: здесь-как мониторить mirroring.

Да, я смотрю эти счетчики, они зануляются. Log bytes received/sec и подобные.
12 окт 15, 18:54    [18269197]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
Саша235
Member

Откуда:
Сообщений: 6
Вопрос решен. Испросил у начальства готовность платить больше контрагенту, добавил памяти на ВМ приемнике до 12Гб и проблема ушла. До выходных уже сделал костыль, который делает рестарты сервиса скуля приемника и resume мирроринга, но он в выходные ни разу не сработал - мирроринг не порвался и костыль спал. Спасибо всем откликнувшимся.
12 окт 15, 19:00    [18269211]     Ответить | Цитировать Сообщить модератору
 Re: Прерывается mirroring  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Lepsik
поэтому построение индексов на совести (и памяти) принимаюшей стороны.


ввели человека в заблуждение

Саша235
в логах хранится не эта команда, а реально изменяемые данные.


все верно. именно они и накатываются. потому нельзя mirroring при bulk logged, например.


вот картинка. слева и справа tranlog'и primary и mirror соответственно

К сообщению приложен файл. Размер - 122Kb
12 окт 15, 19:39    [18269333]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить