Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Починка БД Firebird   Найти похожие ветки 

 
__oleg   (2005-06-14 16:03) [0]

Полетела база. Коннект не идет, пишет:
"page 21716 is of wrong type (expected 3, found 7)".

Нашел через IBSurgeon страницу 21716 (index B-tree page) и страницу, которая на неё ошибочно ссылается 21268 (transact inv. page). Тупо заменил неверную ссылку на странице 21268 (Next transaction inv. page) на 0. Проверил все другие TIP-страницы, таких ссылок больше нет. Снова пытаюсь соединиться - та же самая ошибка.

Где еще могут быть неверные ссылки ? Реально решить проблему "ручками", заменив пару-тройку байтов или всё плохо ?

з.ы.
IBFirstAid у меня нету и не предвидится.


 
Johnmen ©   (2005-06-14 16:04) [1]

http://www.ibase.ru/dbrepair.htm


 
__oleg   (2005-06-15 07:53) [2]

> http://www.ibase.ru/dbrepair.htm

Там я уже был, табличку смотрел - там достаточно общее описание ошибок.

Хотел бы узнать более кокретно: Как восстановить нарушенную последовательность страниц транзакций ?


 
__oleg   (2005-06-15 08:19) [3]

...статью тоже читал. Проблема в том, что gfix у меня ничего исправлять не хочет, пишет то же сообщение.


 
sniknik ©   (2005-06-15 08:45) [4]

gfix далеко не первая операция в восстановлении ошибок данного класса

из ссылки
Вероятная причина
В результате физического повреждения нарушена последовательность страниц в файле базы данных или неправильные значения на страницах указателей (Pointer Pages), страницах вершин индексов (Index Root Pages) и т.д.
Действия по восстановлению
Анализ последовательности страниц в базе данных, исправление неправильных ссылок в последовательности, возможно - перегенерация запорченных страниц и генерация новых вместо потерянных. Затем проверка базы данных с помощью gfix и контрольное backup/restore.
Примерные трудозатраты
2-4 часа
Стоимость ремонтных работ (за 1 час):
Ремонт БД, наличный расчет  40 у.е.
Ремонт БД, безналичный расчет  70 у.е.
Ремонт БД на месте, наличный расчет  52 у.е.
Ремонт БД на месте, безналичный расчет  91 у.е.


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


 
sniknik ©   (2005-06-15 08:51) [5]

> IBFirstAid у меня нету и не предвидится.
скачать демо версию можно у них на сайте (во всяком случае я наткнулся на это после пары тычков мышью пойдя по ссылке), возможно демо не восстановит, но должна хоть сказать возможно это или нет.


 
__oleg   (2005-06-15 12:45) [6]

> gfix далеко не первая операция в восстановлении ошибок данного класса

Именно поэтому я сначала пытаюсь исправить ссылки на страницах.

> и потом ожидается 3 найдено 7 а ставиш 0

Не совсем так, не тип страницы ставлю в 0, а ссылку на следующую страницу (т.е. вместо 21716 ставлю 0). ИМХО ноль означает, что данная страница является последней и ни на какую другую больше не ссылается (в базе на самом деле больше нет страниц такого типа).

> скачать демо версию можно у них на сайте

Скачал, не лечит, но помогла узнать много нового - щас буду переваривать. Спасибо, что ткнул носом.


 
DSKalugin ©   (2005-06-15 16:07) [7]

Попробуй это
http://www.rudjuk.kiev.ua/rus/replicator.htm
Репликатор - это программа для  быстрого копирования информации из одной базы данных Interbase в другую.

Одно из применений этой программы - это восстановление данных после сбоя. Но в данном случае важно чтобы к базе данных со сбоем программа могла подключиться. Т.к. восстановление данных происходит путём копирования данных.


 
__oleg   (2005-06-16 09:55) [8]

> Попробуй это
> http://www.rudjuk.kiev.ua/rus/replicator.htm

Прога интересная, но коннект не идет.
Мне нужно такую, чтобы без сервера работала - напрямую с gdb-файлом.


 
__oleg   (2005-06-21 15:08) [9]

Все-таки удалось законнектится ! Вручную в дампе поправил таблицу RDB$PAGES, затем исправил битую ссылку на странице(как описал в начале). Затем gfix, backup, restore. Все данные на первый взгляд сохранились.

Спасибо всем. Демка IBFirstAid помогла быстрее разобраться.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.047 c
1-1121242644
granni
2005-07-13 12:17
2005.07.31
передача параметров по ссылке


4-1117283605
Steve
2005-05-28 16:33
2005.07.31
Как использовать команды 3DNow! в Delphi


3-1118901047
Гость2
2005-06-16 09:50
2005.07.31
Вопрос по SQL


14-1120557953
Kerk
2005-07-05 14:05
2005.07.31
Мюзиклы


14-1120477436
vadims
2005-07-04 15:43
2005.07.31
Психиатрия: МДП . Нужен совет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский