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

Откуда: Запорожье
Сообщений: 712
Добрый день, Уважаемые форумчане.
Есть вопросы относительно ##class(Backup.General).ExternalFreeze().
Допустим, ночью я смогу резко снизить активность изменений в БД, путем остановки процессов выполняющих такие изменения. Но все остановить не могу, процессы с низкой активностью должны остаться, их изменения БД незначительны по отношению к штатной работе.
Могу увеличить таймаут со стандартных 10 минут на большее значение.
И выполняю копирование БД по своему списку на отдельный диск.
Все это я могу, но боюсь напороться на всяческие подводные камни.
Пошли вопросы:
1. До какого значения можно увеличивать таймаут, чтобы у Каше крыша все-таки не поехала, или же он просто проигнорирует мое значение, а подставит свое максимальное или свое по умолчанию?
2. Если у меня кэш глобалов был практически полный и я вызываю метод ExternalFreeze(), то перед заморозкой Каше все-таки выполняет сброс кэша глобалов на диск, или просто ждет его переполнения, которое может наступить буквально через пару минут?
3. Как лучше всего выводить из ступора Каше, если метод ExternalThaw() выполнится с ошибкой, бывало ли у кого такое? (перезапуск - понятно)
4. Если необходимо копировать несколько файлов БД, то как лучше поступать, для каждого копируемого файла БД применять обрамление ExternalFreeze()---ExternalThaw(), или для всех сразу?

Очень надеюсь на Ваше понимание, богатый опыт и хорошее расположение звезд в мою сторону.
11 янв 17, 10:35    [20092476]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2366
AlexKB,

Первое, о чем нужно понимать перед началом работы с таким бэкапом, это сколько времени вы потратите на сам бэкап одной базы или всех сразу. Это вы и сами понять можете, зная размеры БД, и скорость дисков, примерно расчитать. Можно и на практике проверить.

До фриза не сохраненные в БД данные хранятся не в кеше глобалов, а в файле WIJ. Думаю, что буфер просто будет высвобожден если надо. И размер кеша глобалов стоит постаратся увеличить, если БД большая.

Увеличение таймаута нужно, если вы не успеете забэкапить базу пока действует фриз по записи, иначе после таймаута произодет фриз всей системы.

Для каждой отдельной базы имеет смысл если они у вас большие, только нужно выжидать время перед фризами, чтобы предыдущий этап записался (это кстати можно и отследить, например через mgstat). Потому как фриз сработает на всю запись.
11 янв 17, 11:20    [20092680]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
AlexKB
Member

Откуда: Запорожье
Сообщений: 712
DAiMor,
Что-то я сомневаюсь, чтобы не сохраненные данные накапливались не в кэше глобалов, а в журнале до записи...?
Журнал до записи необходим для краткосрочного хранения, чтобы обеспечить три фазы самого сохранения в файл БД из кэша глобалов...А иначе как то не логично получается...
Я конечно же буду экспериментировать, буду отслеживать времена.
Но чувствую, что может наступить момент, когда нужно будет замораживать и отпускать сервер не для всех копируемых файлов БД, а для каждого в отдельности (или групп файлов БД). Выжидать это понятно, еще лучше бы иметь некий признак. Если бы метод ExternalThaw() возвращал управление после завершения освобождения кэша глобалов, было бы еще лучше...
11 янв 17, 12:01    [20092956]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
Alexey Maslov
Member

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

AlexKB
1. До какого значения можно увеличивать таймаут, чтобы у Каше крыша все-таки не поехала, или же он просто проигнорирует мое значение, а подставит свое максимальное или свое по умолчанию?
Можно выставить любое значение, контроля нет. Обрати внимание, что там два таймаута, и (для некластерных систем) надо использовать ExternalFreezeTimeOut. В нормальных условиях WRTDMN активируется по истечении 80с или по заполнении 25000 буферов, что наступит раньше. Если же WRTDMN (демон записи) заморожен, заполнение кэша будет продолжаться. См. статистику работы вашей системы (mgstat), насколько интенсивно она пишет в БД, и прикинь, как быстро заполнятся 75% кэша (надо ведь и для чтения что-то оставить) в худших условиях в то время суток, когда выполняется бэкап.

AlexKB
3. Как лучше всего выводить из ступора Каше, если метод ExternalThaw() выполнится с ошибкой, бывало ли у кого такое? (перезапуск - понятно)
Только перезапуск, но вероятность ошибки здесь мала; не видел такого.

P.S. ИМХО, попытка использовать заморозку на время внешнего бэкапа, если он идёт десятки минут, добавляет проблем, которых в принципе нет, если использовать он-лайн бэкап Cache, обычно выполняющийся ненамного медленнее внешнего бэкапа. Кстати, придумана была технология заморозки прежде всего для заморозки записи в БД на время создания snapshot'а (о чём недвусмысленно "намёкнуто" в документации), причём подразумевался snapshot на уровне СХД, хотя есть и другие варианты. Создание shapshot'a - быстрая операция, обычно занимает несколько секунд, поэтому 10 минут выбраны с большим запасом.
11 янв 17, 12:40    [20093205]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1417
В нормальных условиях WRTDMN активируется по истечении 80с или по заполнении 25000 буферов, что наступит раньше.
Поэтому представление, что изменённые данные где-то "накапливаются", неверно. Я не видел более 24000 "грязных" буферов даже на очень загруженных системах, с тысячами пользователей.
11 янв 17, 12:45    [20093234]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2366
Кстати, Murray Oldfield готовит статью о бекапах снепшотами в VMWare с использованием фриза.
Статья пока в черновиках, но надеюсь скоро он ее опубликует.
11 янв 17, 17:07    [20094796]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
AlexKB
Member

Откуда: Запорожье
Сообщений: 712
А какие добавляются проблемы при заморозках длительных, скажем 35-45 минут..?
11 янв 17, 17:35    [20094926]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1417
Проблемы видятся как минимум две: при внезапном ("внеплановом") всплеске активности во время бэкапа может не хватить:
1- заданного таймаута
или
2- буферов в кэше.

Простой пример: допустим, система пишет 20000 буферов 1 раз в 80 секунд. Сколько потребуется кэша, чтобы удержать их в памяти в течение 30 минут?
20000/80*(30*60)*8/1024 ~ 3.4GB

Если размер кэша глобалов хотя бы 6GB, пережить заморозку скорее всего удастся.

Но допустим БД вдвое выросла, и нам требуется уже 60 минут, а администратор забыл увеличить таймаут? Имеем проблему №1: WRTDMN оттает раньше, чем завершится бэкап, и он у нас будет "грязным".
Если же админ увеличил таймаут до 3600 сек, но забыл увеличить кэш, имеем проблему №2: система просто зависнет.

Ни одной из этих проблем не просматривается при он-лайн бэкапе Cache. За что ты его так не любишь? :)
11 янв 17, 18:35    [20095182]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1417
Если есть нежурналируемые БД (отличные от CACHETEMP), данные в которых тем не менее нельзя терять при перезапуске Cache, добавляется проблема №3: если во время заморозки произойдёт "лёгкий" сбой в работе Cache, в результате которого её придётся перезапустить, то все изменения, проделанные в нежурналируемых БД во время заморозки, будут потеряны.
11 янв 17, 18:43    [20095209]     Ответить | Цитировать Сообщить модератору
 Re: ExternalFreeze, поделитесь опытом  [new]
Шваров Евгений
Member

Откуда:
Сообщений: 827
Вот статья сегодня вышла по теме.
13 янв 17, 08:26    [20101006]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché Ответить