Перейти к контенту
  • 0

Восстановление поврежденной после обновления БД


AlexxO

Вопрос

Привет всем! У меня тут вопросик (если не сказать вопросище :D) по поводу форума Invision Power Board:

 

У меня была база данных для версии 1.2. Я заюзал скрипт upgrade6 для обновления базы на версию 1.3, во время выполнения второго шага произошел сбой (из-за превышения лимита вермени выполнения скрипта 30с), вызрашяясь назад и снова кликая перейти ко второму шагу вылазила одна и таже ошибка о том что уже существует такое поле таблицы. После чего я пробовал запускать upgrade5, но такой глюк встретился и тут ессно (а точнее было сообщение, о том что такие таблицы уже существуют). Я отредактировал upgrade5 и удалил оттуда строки создающие новые таблицы и поля (сначала убедившись, что такие таблицы и поля уже существуют). В результате чего мне удалось выполнить скрипт upgrade5 на форуме __версии 1.2__. После чего запуская upgrade6 (опять таки отредактированный, т.е. без создания уже существующих таблиц и полей) я добился финального сообщения, что всё ОК, но форум не заработал... Похоже (как мне кажется) тут все испортил скрипт upgrade5, который после создания полей и таблиц ещё что-то оптимизировал и изменял... Сейчас я поставил версию 1.3 начисто и стоит вопрос: как имея резервные копии базы данных (только данных) после первого запуска upgrade6 (при котором был сбой на 2-м шаге), но частично работающую на 1.3 версии (частиично потому что при создании модераторов или изменении каких-либо настроек были ошибки) и резервную копию после всех изменений (когда после повторного запуска upgrade6 "удалось дойти до финиша") как-то восстановить данные (резервные копии в виде дампа без команды CREATE, только INSERT INTO)? Нужно восстановить хотя бы юзеров и все сообщения (разумеется с темами, форумами и категориями). Если сейчас мне импортировать в новую базу данных самые важные таблицы, то сохранятся ли счетчики "кол-во сообщений этого пользователя", и другие подобные счетчики и свойства (они считаются непосредственно из того что есть или где-то записаны?) и что нужно с этими таблицами сделать чтобы восстановить таким образом? Подскажите пожалуйста что можно сделать в моем случае с минимальными потерями

 

и с как можно меньшими временными затратами ;)...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Вообще, зависит от того, какой у тебя формат дампа данных... Если запросы начинаются так:

INSERT INTO ibf_something VALUES

то ууууу.....

А вообще, ставишь чистый 1.3, он создаст нужную структуру базы. Потом пытаешься залить потаблично старый дамп - если будут ошибки, мол, не хватает такого-то поля - добавляй это поле к таблице и пробуй заново. Лишние поля - значения не имеют.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да, у меня такой формат дампа данных: INSERT INTO VALUES... А если залить потаблично в перечисленные выше таблицы, то нигде больше не надо ничего отмечать (в других таблицах, например: сколько там сообщений и т.д.)? Тоже самое по поводу тем, форумов, категорий: восстановив только их (3 таблицы), они будут отображаться в том виде как было раньше?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
А можна и сам upgrade6.php подредактировать , закоментировав добавление уже существующих таблиц\полей :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

А как быть со скриптом upgrade5 который на БД версии 1.2 выполнил функцию из function sql_optimize из upgrade5.php, содержащую примерно такие строки:

$SQL[] = "alter table ibf_calendar_events change userid userid mediumint(8) NOT NULL default '0';";

$SQL[] = "alter table ibf_contacts change id id mediumint(8) NOT NULL auto_increment;";

$SQL[] = "alter table ibf_posts change use_sig use_sig tinyint(1) NOT NULL DEFAULT '0';";

$SQL[] = "alter table ibf_posts change use_emo use_emo tinyint(1) NOT NULL DEFAULT '0';";

Или он все же ничего этим не изменил, ведь версия БД была для форума 1.2? :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

AlexxO вообще интересно зачем вы начали обновлять базу для работы в 1.2, из вашего сообщения я понял что переход на 1.3 не планировался.

 

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

 

Могу попробовать помочь вам с вашей проблемой, стукнитесь либо в приват, либо на аську 799668. Если конечно ваш форум доступен для внешней сети.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я имел ввиду, что форум версии 1.3 был уже установлен (залит на сервак), а БД еще не конвертирована в БД, которая нужна для версии 1.3.

Я какраз в это время проводил установку 1.3, но произошел глюк из-за хостера...

Ссылка на комментарий
Поделиться на других сайтах

  • 0
У меня есть бэкап БД, полученной после апгрейда (т.е. после действий upgrade5 и upgrade6). Та база которая была только частично (из-за сбоя) апгрейжена скриптом upgrade6 находится в GZ файле как назло поврежденном вставкой рекламы хостера holm.ru, пробовал его побайтно воостановить, удалив вставленный рекламный заголовок, но ничего не получилось: размер находящегося внутри архива SQL несколько гектар. Поэтому на бэкап сделанный после юзанья upgrade6 я пока не расчитываю. Остался только (если всё-таки не восстановлю битый) бэкап после всех изменений, да и таблицы в БД остались -- я к ним префикс только добавил.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
У меня есть бэкап БД, полученной после апгрейда (т.е. после действий upgrade5 и upgrade6).

Бэкап вроде меняет только структуру базы, данные не затрагивает. Следовательно, имея структуру и дамп данных, можно восстановить базу целиком. Структура у тебя есть - берёшь чистый IPB 1.3 и ставишь его при помощи sm_install.php. Затем очищаешь все таблицы - вот тебе и голая структура.

Далее пробуешь пихать дамп базы прямо в эту структуру. Если бы дамп был формата INSERT INTO ibf_table (field1, field2, ...) VALUES (value1, value2, ...) - всё было бы предельно просто. Пытаешься выполнить команды дампа; если выдаёт ошибку - добавляешь в дамп недостающие поля (они в тексте ошибки указываются).

При формате дампа INSERT INTO ibf_table VALUES (value1, value2, ...) ошибка, если возникнет, то покажет только что число столбцов в базе не соответствует числу столбцов в твоём дампе. Тогда надо руками искать, какие именно (по смыслу!) столбцы у тебя есть в дампе, и какие лишние/недостающие в БД...

 

Остальные твои вопросы не совсем понял. Примерно так, наверно: статистика никуда не пропадёт. Заливать нужно потаблично. Если проблемы какие-то, можно не заливать некоторые несущественные таблицы (ibf_sessions и ibf_admin_sessions, различные таблицы *logs, таблицы *tracker). ibf_members, ibf_groups, ibf_posts, ibf_topics, ibf_forums, ibf_categories - ключевые, без них никак.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
БОЛЬШОЕ СПАСИБО ВСЕМ КТО ОТКЛИКНУЛСЯ НА МОЮ МЕСАГУ -- проблема решена!
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.