суббота, 17 февраля 2018 г.

Исправление Bad Primary Chunk ошибки в СУБД Informix при отсутствии backup

Иногда удаётся провести интересные
лабораторные исследования.
Был бы только свободен стенд.


Внештатная ситуация

Цель данной работы было разобраться с критической ситуацией, когда у нас происходит падение СУБД из-за аварии с системой хранения данных, в данной работе это был дисковый ресурс отдающийся по iSCSI, и у нас нет на руках бекапа. Эта ситуация, что нет бекапа, не должна возникать в промышленной эксплуатации СУБД, но в качестве лабораторной работы было интересно оказаться в ситуации когда есть: упавший сервер и нет копии БД.

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

Что произошло?
В момент работы сервера СУБД отпадает подключенный по iSCSI диск, причем пропадает он не сразу весь. И при последующем подъёме СУБД успевает пометить ... отдельное табличное пространство с физическим журналом, как отключенное и упасть уже окончательно. Обычно, проводимые тесты с системами хранения данных на FC, SAS подключаемые к серверу через HBA давали положительные результаты восстановления, т.к. сервер просто провисал и ничего не успевал записать о состоянии своего дискового пространства. Тут — успел. Значит будем разбираться с последствиями, и ещё раз напомню, что IBM в такой ситуации советует один правильный способ поведения — восстановление из сохраненной копии.

среда, 26 ноября 2014 г.

Solaris :: Корректируем timezonedb в PHP


Последний раз, я думал, что править в PHP timezone мне придется только в 2012 году. Однако, на самом деле реалии оказались более жесткими. 
В октябре 2014 года в РФ время в очередной раз передвинули на GMT+3, и пришлось вспоминать как исправлялась база часовых поясов в далеком 2012 году. Следует отметить, что многие дистрибутивы Linux содержат сборку PHP с привязкой к OS TZ и там, при своевременном апдейте системной базы часовых поясов этой проблемы не возникает. Так же во многих дистрибутивах можно просто собрать необходимую, обновленную, базу через стандартный pecl механизм в PHP:
     pecl install timezonedb
но в нашем случае это не принесло желаемого результата из-за множественных ошибок вызванных неординарной настройкой в системе.

четверг, 23 октября 2014 г.

Анализ crashdump в OS Solaris. Ищем виновника причины. #1

Причина поиска

Итак, у нас внезапно перезагрузился сервер. После подъёма, вы посмотрели в /var/crash/ и увидели там свежий vmdump.0.
Поздравляю! Вы стали свидетелем краха ядра ОС Solaris и теперь пытаетесь выяснить причину, хотя бы косвенную, этого падения.
Для начала нам надо распаковать crashdump в /var/crash/vmdump.0 в стандартную пару для анализа unix.0 и vmcore.0, позволю себе напомнить, что unix.0 — это дамп ядра системы, а vmcore.0 — это дамп памяти и в анализе причины падения эти файлы участвуют совместно.
/usr/bin/savecore -vf /var/crash/vmdump.0
Загружаем пару дампов, системы и памяти, в отладчик и пытаемся посмотреть причину падения:
/usr/bin/mdb -k /var/crash/{unix,vmcore}.0
Теперь просто даем команду в отладчике:
::status
и в большинстве случаев – этого достаточно, ровно как и
file /var/crash/{unix,vmcore}.0
чтобы понять причину падения. Однако, в этот раз вам не повезло и вы видите, что падение вызвано непонятной записью:
panic message: BAD TRAP: type=31 rp=2a102fb0db0 addr=6fffedd6b4b mmu_fsr=0
dump content: kernel pages only

среда, 16 июля 2014 г.

Добавление шрифта DOS CP866 в Linux для использования с xterm

Цель

Для многих не понятно, зачем использовать терминальный шрифт, да еще с кодировкой CP866/IBM866 в современных Linux станциях, когда UTF8 достаточно. Но, так сложилось исторически, что есть БД с кодировкой в CP866 и терминальным подключением к серверу. Поэтому использование CP866 - сложившийся факт.

Однако, существует проблема с отображением русской кодировки, если установлена на рабочей станции локаль UTF8. Решение данной проблемы будет рассмотрено ниже.


четверг, 23 января 2014 г.

Решаем проблему подвисания модема E353 в Linux RH Enterprise

   Данный модем был подключен к серверу с ОС Oracle Linux Server release 6.2 с целью рассылки SMS оповещений от системы мониторинга Zabbix через SMS Server Tools. К сожалению, это решение из-за частых отказов USB модема Huawei Technologies E353 не может пока претендовать на роль гарантированного оповещателя, но тем не менее можно постараться приладить костыли из самого Zabbix и делать реинициализацию им.

среда, 22 января 2014 г.

Анализ использования памяти :: Solaris swap

Эта статья является копией моей статьи из локальной WIKI организации. Статья была написана при разборе и анализе проблем потребления swap-раздела системой на сервере. В большей степени, данная статья, является компиляцией из различных источников методов и определений, хотя и писана своими словами

Общее определение SWAP

SWAP - определяет один из механизмов виртуальной памяти, позволяющей осуществлять перемещение неактивных фрагментов RAM, называемых страницами памяти, на внешний носитель, обычно жёсткий диск, для освобождения RAM под исполняемые участки кода. Когда код страницы памяти размещенный на SWAP будет востребован разместившей его в RAM программой, то произойдет обратное перемещение его с внешнего носителя в свободную область RAM. Такой процесс, обычно, называют свопингом.
По своей природе SWAP может являться как файлом (swap-file), так и быть RAW разделом внешнего носителя (swap-partition).