|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
В ПУ есть только опции на количество дней или количество удачных бэкапов. Но в базу валится 10+млн записей в час. Плюс очищаются устаревшие 10+млн. Итого в журнале много транзакций записи и удаления. Причем данные сырые и не очень важно, насколько они хорошо легли в базу. Но %Save все равно пишет в журнал, даже если журналирование этой БД отключено. В итоге кривая занятости диска превращается в прямую x = ky где k - минус 0.5 примерно xD Спасло бы удаление файлов журналов так, чтобы их только пара-тройка оставалась. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 07:16 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Попробуйте класс %SYS.Journal.File для удаления старых журналов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 08:20 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Еще можно подумать над тем, чтобы не создавать логи при записи и удалении. Я так понимаю, отключить журналирование на базе вы не можете? Или хотя бы вынести перезаписываемые данные в отдельную базу без журналирования и замапить на основную область. Я так понимаю, вы пробовали использовать DISABLE^%SYS.NOJRN и ENABLE^%SYS.NOJRN для локального отключения журналирования, но сохранение использует транзакции, которые автоматом включают журналирование? Можно попробовать сделать сви методы сохранения, которые не используют транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 08:42 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
яНо %Save все равно пишет в журнал, даже если журналирование этой БД отключено Код: plsql 1.
Всегда выручал ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 09:20 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Ptn, Да, действительно, я напутал. Если принудительно отключать журналирование, то транзакция его не включает. А если журналирование отключено на базе, то транзакция его на время включит. Но это не касается временной базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 10:02 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
ISC не зря советует журналировать всё (в документации об этом есть, да и Портал ругается при попытке создать нежурналируемую БД). Если временное отключение журнала действует по отношению к глобалу, журналируемому "в мирное время", то это добавляет проблем с т.з. эксплуатации, т.к. в одном глобале могут оказать данные обеих категорий: записанные в журнал и нет. Как его восстанавливать, случись что? Ведь запись в глобал могла идти и во время бэкапа, и элементарно могут появиться незакрытые транзакции (а журнала в помощь не будет). С ходу вижу лишь один "безопасный" случай, когда данные, записанные без журналирования, не имеют связей с "нормальными" данными, т.е. их действительно не страшно потерять. Но это идиллия. Кстати, когда активно "зеркало" (mirroring), DISABLE^%NOJRN игнорируется. Для снижение нагрузки на дисковую подсистему рекомендуется отвести для журналов отдельный физический диск (в случае СХД: отдельный LUN в отдельной дисковой группе) с достаточно высокой производительностью по последовательной записи. Об этом тоже сказано в документации . ISC даже приводит некоторые цифры в качестве ориентиров, см. на коммьюнити . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 11:56 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Данные все равно перепроверяются при действиях пользователя - т.е. они копятся сотнями миллионов, но когда юзер тыкает в конкретную запись, идет отдельный запрос к источнику данных (в сеть) с проверкой текущего состояния записи из того источника. И целостность сырых данных не нужна. Как и журнал на их запись-удаление. Да и про диски речь не идет - сервер все равно в облаке. Один диск или двадцать пять - без разницы. Есть лимит облачного плана - он только размера касается ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 13:42 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Если в облаке, аптайм должен быть огромным у сервера (если только вы сами его не завесите))), поэтому я хранил бы все сырые данные во временных глобалах, которые в cachetemp, не заморачиваясь с включением-выключением журнала. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 14:02 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Хм... А как это сделать, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 14:20 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Каким бы огромным не был аптайм, но он не бесконечный. И риск потерять все данные в случае сбоя ненулевой, так что я бы не рекомендовал нужные данные хранить во временных глобалах. Я работал на конфигурации с зеркалированием и очень сильно сомневаюсь, что в ней DISABLE^%SYS.NOJRN совсем не работает. Совершенно точно, что он не может отключить его полностью (тогда бы нарушилась целостность данных), и какие-то нюансы точно должны быть, но у нас запись логов при сбоях была через DISABLE^%NOJRN, и я очень удивлюсь, если мы теряли все данные при сбоях в транзакции. В общем, это нужно проверять, но сейчас не на чем (документация говорит Disabling journaling using DISABLE^%NOJRN does not affect mirrored databases.). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 15:05 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Блок А.Н.(документация говорит Disabling journaling using DISABLE^%NOJRN does not affect mirrored databases.).Собственно, и я о том же :) Проверить, что данный вызов ничего не делает в зеркале, вполне могу, хотя на 100% уверен в результате, иначе вышло бы противоречие с идеологией зеркала: часть данных из зеркалируемой БД "отзеркалилась", а часть - нет. Блок А.Н....риск потерять все данные в случае сбоя ненулевой, так что я бы не рекомендовал нужные данные хранить во временных глобалах.Согласен, но ТС намекнул, что не сильно опасается потерять сырые данные. А если опасается, то надо журналировать. Тот, кто хоть раз ремонтировал незажурналированные глобалы, меня поймёт :( P.S. На облаке обычно есть разные виды бэкапов, в том числе и бэкап образа VM. Интересно, можно ли из такого бэкапа вытащить сохранённую БД CACHETEMP и подсунуть в работающую Cache под другим именем, после чего, используя ^GBLOCKCOPY, восстановить нужные глобалы? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 17:33 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
С этой Cachetemp есть такая проблема, что глобалы могут в нее тупо не записываться, оставаться только в кэше. Ну и при старте они могут удаляться. Так что Cachetemp использовать при любом раскладе не стоит. Но и использовать объекты при миллионах записей в час странновато. Мне кажется, там лишние накладные расходы присутствуют ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2017, 18:46 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Блок А.Н.С этой Cachetemp есть такая проблема, что глобалы могут в нее тупо не записываться, оставаться только в кэше.Могут, если они короткоживущие: у WD отдельная очередь буферов для CACHETEMP, она просто более длинная, чем для остальных баз. При старте Cache БД CACHETEMP всегда чистится, но если делать внешний бэкап с заморозкой (недавно здесь обсуждалось), то WD сбросит грязные буфера перед заморозкой, поэтому CACHETEMP в сохранённом образе будет полностью комплектен на заданный момент времени. Блок А.Н.Но и использовать объекты при миллионах записей в час странновато. Мне кажется, там лишние накладные расходы присутствуютМиллионы в час - это не миллионы в секунду... К тому же ТС, похоже, не жалуется на производительность. Можно делать инкрементные бэкапы хоть каждый час, тогда критерий очистки журналов будет срабатывать настолько часто, насколько часто делаются бэкапы. Для ускорения бэкапа можно оставить в списке только "основную" БД, выделив сырые данные в другую, отдельную от неё, БД. Отвечая на вопрос анонимного "я": это делается в конфигурации областей, глобалы - добавить отображение, либо в CACHETEMP, либо в специально созданную БД - как хотите. Как правильно задать маску имён глобалов для заданных классов, думаю, сообразите сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 11:18 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Маслов Великий, он все знает! Добрый день, Алексей. Вопрос: Смотрю содержимое файла журнала после записи, там для каждой записи есть поле дата-время. 23:59:35 00:00:01 26с 00:00:58 57с 00:01:17 19с 00:01:30 13с 00:01:42 12с 00:01:55 13с 00:01:56 1с 00:03:07 71с 00:03:17 10с 00:03:25 8с ... и так далее. Т.е. информация в журнал после записи сбрасывается нерегулярно. Там где разница в 1 сек похоже по заполнению буфера, там действительно много тыс записей. А там где времена побольше количество записей в пределах 1 тыс. т.е. сбрасывается информация не по переполнению, но с разным периодом. Что сие означает? может я чего не так думаю? Всем откликнувшимся тоже буду благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 11:55 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey MaslovМожно делать инкрементные бэкапы хоть каждый час, тогда критерий очистки журналов будет срабатывать настолько часто, насколько часто делаются бэкапы.Это выглядит хорошим решением, но есть нюанс - проблема журналов волнует ТС в контексте расходуемого места. И с инкрементальными бэкапами в облаке тоже придется что-то делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 12:03 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Блок А.Н.... И с инкрементальными бэкапами в облаке тоже придется что-то делать.Это уже проблемы ТС :) - возможно, существует более дешёвый тарифный план с более медленной скоростью доступа к СХД (где-то читал, что такое бывает, именно для архивации данных), - к тому же, если не бэкапить ту БД, куда пишутся 10 млн. записей в час, inc-файлы будут скорее всего весьма скромного размера, - наконец, можно удалять эти файлы неким внешним (или внутренним) скриптом, который несложно написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 12:31 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
AlexKB, Добрый день, Алексей. Прощаю наглую лесть, но только первый раз :) Если речь о Cache, то журнал не совсем правильно называть "журнал после записи", т.к. запись в журнал обычно попадает раньше, чем в БД. По поводу меток даты-времени в журнале: мне когда-то объясняли, что это время записи блока журнала в файл. Демон журнала просыпается очень часто: 1 раз в 2 сек, и при отсутствии ECP пишутся лишь полные буфера (всего их 128*64KB); по ссылке, которую приводил ранее, утверждается, что за 1 раз может писаться от 4K до 4M. Могу предположить, что при небольшом потоке записи порой пишутся и неполные буферы, иначе возник бы риск, что информация, записанная в БД, отсутствует в журнале, а насколько помню, существует гарантия, что всё, что сохранено в БД, должно быть уже в журнале, причём физически. Подробностей алгоритмов не знаю, но из объяснений саппорта ISC помню главное: не стоит искать логику в журнальных временных метках, и тем более делать далеко идущих выводов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 12:59 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Alexey Maslov, Я тоже помню про то, что каждые 2 сек должен произойти сброс в файл журнала и то, что если буфер журнала переполнен, то сброс произойдет чаще чем раз в 2 сек. Просто меня насторожило это поле времени, мол если произойдет падение в середине этих периодов, то я потеряю больше, чем наработка только за обещанные ИС 2 сек. Так можно не бояться и не обращать внимания на эти времена, так ли это? Что из опыта падавших и восстановившихся? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:23 |
|
Как настроить удаление файлов журнала на количество этих файлов?
|
|||
---|---|---|---|
#18+
Своё мнение о метках я высказал. Ещё вспомнил, что во новом файле [иногда] дублируется последний недозаполненный блок из предыдущего файла (со старыми метками, естественно). Насчёт того, сколько можно потерять, вопрос более интересный. Начиная с какой-то версии Cache (кажется, 2013.1), если от демона журнала нет ответа в течение 10 сек, формируется предупреждение (оно пишется в console log), если же нет ответа в течение 30 секунд, формируется ошибка и запись в журнал замораживается. Если в конфигурации системы (... -> Настройка журнала ) активна опция "Замораживать систему при ошибках журнала", работа пользователей будет приостановлена. В таких условиях можно потерять журнальные записи за последние 30 сек перед аварийной остановкой Cache, если она всё же произойдёт. Если же опция не активна, и ошибка фатальна (журнал остановился), то работа пользователей продолжится, но уже без журнала. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 14:11 |
|
|
start [/forum/topic.php?fid=39&msg=39412147&tid=1556371]: |
0ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 446ms |
0 / 0 |