Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Informix Recovery

50 views
Skip to first unread message

kpas

unread,
Mar 21, 2001, 2:31:35 AM3/21/01
to
Всем привет!
Подскажите кто знает.
По неопытности поставили параметры
LTXHWM=70 и LTXEHWM=90
Лог загрузился до 100% и сервер остановился.
Теперь при поднятии сервера он зыгружается в Recovery.
Архивной копии базы разумеется нет.
Или хотя бы вытащить данные с раздела rootdbs.
Заранее благодарю.

Shulzhenko Vasyl

unread,
Mar 21, 2001, 4:45:54 AM3/21/01
to

"kpas" <kp...@kuban.net> wrote in message news:3AB858D7...@kuban.net...

Боюсь, что благодарить никого не придется, кроме Informix Technical Support
и то, в том случае, если оплачена поддержка :))

--

С уважением,

Василий Шульженко
http://softline.kiev.ua

Sergey E. Volkov

unread,
Mar 21, 2001, 7:56:45 AM3/21/01
to
Попробуй следующее:

1) Заглуши Informix.
2) Поставь LTAPEDEV на /dev/null ( а заодно и поставь нормальные параметры )
3) Запусти Informix.

Я не пробовал (просто не наступал на эти грабли), но люди в cdi говорят что
это помогает.

Удачи.

Сергей.


"kpas" <kp...@kuban.net> сообщил/сообщила в новостях следующее:
news:3AB858D7...@kuban.net...

kpas

unread,
Mar 21, 2001, 9:14:05 AM3/21/01
to
> Боюсь, что благодарить никого не придется, кроме Informix Technical Support
> и то, в том случае, если оплачена поддержка :))
>

А если нет поддержки.?

Неужели нет утилит способных вытащить данные.

kpas

unread,
Mar 21, 2001, 9:42:34 AM3/21/01
to
"Sergey E. Volkov" wrote:

> Попробуй следующее:
>
> 1) Заглуши Informix.
> 2) Поставь LTAPEDEV на /dev/null ( а заодно и поставь нормальные параметры )
> 3) Запусти Informix.
>
> Я не пробовал (просто не наступал на эти грабли), но люди в cdi говорят что
> это помогает.

Увы, не помогает. LTAPEDEV изначально был на /dev/null

А при запуске oncheck -cR дает ошибку,
говорит что в ONCONFIG:
LTXHWM стоит 50 а на самом деле 70
LTXEHWM стоит 60 а на самом деле 90
LTAPEDEV изначально был на /dev/null

Так что весим в воздухе.

Sergey E. Volkov

unread,
Mar 22, 2001, 5:01:32 AM3/22/01
to
Тогда поставь TAPEDEV в /dev/null и попробуй 'ontape -s -L 0'


"kpas" <kp...@kuban.net> сообщил/сообщила в новостях следующее:

news:3AB8BDDA...@kuban.net...

kpas

unread,
Mar 22, 2001, 7:33:11 AM3/22/01
to
"Sergey E. Volkov" wrote:

> Тогда поставь TAPEDEV в /dev/null и попробуй 'ontape -s -L 0'
>

Не помогает. Пишет
Server is in an incompatible state or user authentication failed.


D.Y.Kazarov

unread,
Mar 22, 2001, 8:25:32 AM3/22/01
to
Судя по периодически возникающим таким-же вопросам в
news:comp.databases.informix это именно то, за что поддержка И и получает
свои деньги. У них точно есть утилита, способная маркировать транзакцию
прокомиченной и тогда всё поднимается, но на халяву они её не дают - а то
что дают за деньги работает только один раз и на конкретной машине. Тебе
надо либо самому с этим разбираться (искать транзакцию в logical log-е,
маркировать её, маркировать, переносить метку первого log-а в конец и т.д),
либо сервер переинициализировать (и пересоздавать базу), либо деньги на
суппорт доставать.

Дмитрий


"kpas" <kp...@kuban.net> сообщил/сообщила в новостях следующее:

news:3AB858D7...@kuban.net...

kpas

unread,
Mar 22, 2001, 9:17:41 AM3/22/01
to
"D.Y.Kazarov" wrote:

Если я и решусь все восстанавливать ручками, то чем это делать?

А если найти этот злачный лог и стерет его. А потом запучтить oncheck, то
может быть oncheck сам все исправит?

Sergey E. Volkov

unread,
Mar 22, 2001, 10:22:12 AM3/22/01
to

"kpas" <kp...@kuban.net> сообщил/сообщила в новостях следующее:
news:3ABA0985...@kuban.net...

Однако надо знать дисковую структуру Informix-а ...
Теоретически это возможно, но даже если у тебя 100% уверенности в успехе
трахаться придется долго...

Alex Banasevich

unread,
Mar 22, 2001, 11:28:52 AM3/22/01
to
Для тех, кто не знает дисковой структуры Informix-а, могу предложить "метод
ловли льва в Африке".

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

Перед экспериментами обязательно нужно сохранить бинарные копии всех дбспйесов -
они не раз нам понядобятся.

1. Берем Африку, делим забором пополам. В смысле двоично копируем половину root
dbspace из "пустого" сервера в "битый".
2. Пробуем подняться.
3. Скорее всего, поднимемся, но баз не увидим.
4. Восстанавливаем файл дбспейса из нашего бэкапа.
5. Ту половину, "в которой лев", делим еще пополам. Пишем "четвертушку", начиная
с вычисленного смещения.
6. Повторяем шаги 4-6 до тех пор, пока не поднимемся, и увидим базы.
7. После этого БЫСТРО делаем dbexport, переинициализируем INFORMIX, и загружаем
наши базы.

В далеком 1996 году, на версии I-X 5.02 for SCO UNIXWARE 3 такая операция,
выполненная бессонной ночью, спасла одну крупную софтверную фирму, и один
крупный украинский банк. :)

Конечный размер копируемого сегмента составил 3 кБ, смещение уже не помню -
давно было.

Конечно, может и не получиться... :(

devil.vcf

D.Y.Kazarov

unread,
Mar 22, 2001, 12:51:07 PM3/22/01
to

"D.Y.Kazarov" <kaz...@izmiran.rssi.ru> сообщил/сообщила в новостях
следующее: news:99ddpn$o7i$1...@zware.space.ru...
> Если возможно дать команду onstat -l то там есть колонка phybegin -
смещение
> лога от начала dbspace-a в страницах - можно попробовать с помощью dd
> (предварительно положив И и скопировав куда-нить этот dbspace) затереть
> только не освобождённые логи, возможно И и проглотит такое при запуске. Но
я
> не пробовал.
> (Я успел прочитать фак по И до того, как стал его сильно настраивать)
>
> Дмитрий

Ошибся, не phybegin (это начало физлога), а колонка begin в списке логов.
Дмитрий


D.Y.Kazarov

unread,
Mar 22, 2001, 12:47:58 PM3/22/01
to
Если возможно дать команду onstat -l то там есть колонка phybegin - смещение
лога от начала dbspace-a в страницах - можно попробовать с помощью dd
(предварительно положив И и скопировав куда-нить этот dbspace) затереть
только не освобождённые логи, возможно И и проглотит такое при запуске. Но я
не пробовал.
(Я успел прочитать фак по И до того, как стал его сильно настраивать)

Дмитрий

"Alex Banasevich" <de...@finexpert.com> сообщил/сообщила в новостях
следующее: news:3ABA2844...@finexpert.com...

Alex Banasevich

unread,
Mar 23, 2001, 9:04:29 AM3/23/01
to
Во-во! Именно "диди" и использовалась в качестве repair tool во время
упомянутого мной инцидента.

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

Но другого выхода не было - кроме собственно проблемы с INFORMIX'ом, тогда не
прочитались еще и обе копии бэкапа с ленты :(

Бывает и такое...

devil.vcf

kpas

unread,
Mar 26, 2001, 12:37:11 AM3/26/01
to
Всем спасибо за свои предложения и высказывания.

Все как и водится получилось и сервер поднялся нормально,
так что как оказалось техническая поддержка и не нужна.

Если у кого возникнет такого рода проблема, предлогаю
способ выхода из подобной ситуации:
1. Создаем на всякий случай копии всех dbspace;
2. Ставим новый сервер Infomix с такими же параметрами как и рухнувший.
( не забываем, что: LTXHWM<50 и LTXEHWM<60 )
3. Смотрим таблицу размещения данных ( oncheck -pe )
4. Ищем расположение PHYSICAL LOG, LOGICAL LOG, syslogmap (они должны
быть расположены одинаково в обоих серверах)
5. Останавливаем сервера.
6. Копируем эти области из нового сервера в файлы с помощью dd
7. Копируем теперь из полученных файлов в старый сервер с помощью того
же dd
8. Молимся, и поднимаем старый сервер.


Sergey E. Volkov

unread,
Mar 26, 2001, 12:53:41 AM3/26/01
to
Молодец парень!

"kpas" <kp...@kuban.net> сообщил/сообщила в новостях следующее:

news:3ABED587...@kuban.net...

Bulat

unread,
Mar 26, 2001, 4:58:33 AM3/26/01
to
Все так почти и делал СУППОРТ у нас (когда мы тоже глупые были)
Так как у нас было SCO OpenServer 5.0.5 , IDS 7.30 СУППОРТ
нас поздравил с тем что SCO - единственная платформа, где не работают
"секретные ключи" для отката последней транзакции.
Еслибыла бы другая-генерят на своем сайте ключ по времени и на время
работы+сер.номер
В нашем случае была утилита tbdido написанная на Си и откомпилированная для
нашей платформы, с помощью ключиков которой были записаны чистые блоки в
необходиму область журнала, адрескоторой был вычислен с помощью обычных
утилит Информикс.
Однозначно нельзя самому поправить, даже в случае наличия этой утилиты, не
зная структуру данных, а если пострадавший знал бы - такой ситуации не
возникло. Утилита простенькая можно написать и самому на люб языке, чанк
положить на писюк и поправить (если -чанк на файле), только нужно точно
знать структуру чанков,страниц, блоков итд.

В общем скорее всего у него самому ничего не получилось.

Булат.


Alex Banasevich <de...@finexpert.com> сообщил в новостях
следующее:3ABB57EC...@finexpert.com...

Alex Banasevich

unread,
Mar 26, 2001, 6:34:37 AM3/26/01
to
Круто. Поздравления от имени человека, когда-то прошедшего таким же
путем... :)

Единственное, что бы я посоветовал - так это "выгрузить" все базы, и
переинициализировать сервер, так, на всякий случай...

А самое главное, конечно, изменить параметры настроек, чтобы больше так не
"влетать"...

devil.vcf

Shulzhenko Vasyl

unread,
Mar 30, 2001, 12:27:42 PM3/30/01
to

From: "Shulzhenko Vasyl" <vas...@mail.ru>
Subject: Re: Informix Recovery
Date: 21 марта 2001 г. 19:36


"Sergey E. Volkov" <sergey_...@hotmail.com> wrote in message
news:99a8lp$l1i$1...@news.lucky.net...


> Попробуй следующее:
>
> 1) Заглуши Informix.
> 2) Поставь LTAPEDEV на /dev/null ( а заодно и поставь нормальные
параметры )
> 3) Запусти Informix.

Не поможет .

> Я не пробовал (просто не наступал на эти грабли), но люди в cdi говорят
что
> это помогает.

Это может помочь только в случае, когда логи заполнились обычными
транзакциями и не с архивированы, а в данном случае имеем дело с длинной
транзакцией, которая не смогла откатиться.
В письме "Re: Emergency log backup" за 15.02.2001 в этой же конфе я подробно
объяснял причины.

> Удачи.
>
> Сергей.

Shulzhenko Vasyl

unread,
Mar 30, 2001, 12:28:02 PM3/30/01
to

From: "Shulzhenko Vasyl" <vas...@mail.ru>
Subject: Re: Informix Recovery
Date: 23 марта 2001 г. 17:27


"D.Y.Kazarov" <kaz...@izmiran.rssi.ru> wrote in message
news:99ddpn$o7i$1...@zware.space.ru...


> Если возможно дать команду onstat -l то там есть колонка phybegin -
смещение
> лога от начала dbspace-a в страницах - можно попробовать с помощью dd
> (предварительно положив И и скопировав куда-нить этот dbspace) затереть
> только не освобождённые логи, возможно И и проглотит такое при запуске. Но
я
> не пробовал.

Дело в том, что отметка о заполнености лога, а самое главное, флажок об
использовании-бакапировании находится не в самом логе, а в
специальной паре страниц из первых 12 в rootdbspace, называющихся
PAGE_1CKPT/PAGE_2CKPT (это физически 3-я и 4-я страницы).
Структура этих страниц описана в Библии в самом конце (раздел "Хранение
описателей и данных на диске") и хотя размеры полей не указаны, все же
довольно легко вычислить структуру, особенно глядя на вывод onstat -l.
Там можно попробовать поменять флажки лога (например 0x05 = U+B) и запустить
сервер.
Хотя не все так просто (в Информиксе многое дублируется и контролируется) и
логи не станут свободными, но все же иногда удается уйти от ожидания
контрольной точки и сервер поднимется и тут главное не зевать и быстро
выгружать БД.
Естественно, что после такого насилия сервер лучше переинициализировать, да
и все операции выполнять только в случае ОЧЕНЬ КРАЙНЕЙ НЕОБХОДИМОСТИ.
И вообще, я вам ничего не говорил и никакие претензии не принимаются :))

> (Я успел прочитать фак по И до того, как стал его сильно настраивать)

Очень мудро, но для того , чтобы понимать советы в ФАК-ах уже надо многое
понимать :)

P.S. А метод "ловли льва в Африке" мне понравился :)
Интересно, а какой был размер Рута и почему кусок оказался в 3 кило ?

Alex Banasevich

unread,
Apr 2, 2001, 11:29:49 AM4/2/01
to
Размер рута был, по-моему, около 500 мег. Давно было, точно уже не помню...

На "3 килах" остановились потому, что после этого был наконец-то достигнут
желаемый эффект - I-X "поднялся", и базы "увидел".

До этого было либо только первое, но без баз, либо он вообще не стартовал (мы
уже было начали терять надежду, и это всего-то в 4 часа утра)...

Прошу учесть, что тогда UCDI еще и в проекте не было... :)

Shulzhenko Vasyl wrote:

(skipped)

devil.vcf

Shulzhenko Vasyl

unread,
Apr 2, 2001, 1:11:38 PM4/2/01
to

"Alex Banasevich" <de...@finexpert.com> wrote in message
news:3AC89AED...@finexpert.com...

> Размер рута был, по-моему, около 500 мег. Давно было, точно уже не
помню...

Мда, титанический был труд, это же сколько раз надо было "разделить пополам"
500М, чтобы дойти до кусочка в 3 кило ?
Я просто поражен твоим трудолюбием и упорством :))
Отсюда вывод - главное желание, а способ всегда найдется.

--

С уважением,

Василий Шульженко
http://softline.kiev.ua


Alex Banasevich

unread,
Apr 3, 2001, 8:15:43 AM4/3/01
to
Примерно 18 раз. :)

Не так уже и много.

Кто не верит - посчитайте.

Кто не понял - почитайте древнюю легенду про мудреца, которому шах предложил
награду (история с шахматной доской, на каждую следующую клетку которой
укладывается ровно в 2 раза больше зерен, чем на предыдущую)... :)))

devil.vcf
0 new messages