Age: 6yrs 3mo 0d
Orion Server
Orion Server
Orion Server
Слава Украине!
Orion Server
IP на сайте:
54.224.99.70Orion ServerUnited States
Ashburn
Статистика посещений
Сейчас на сайте: 1
С начала суток (6.8 h):61
За прошедшие 24 h: 151
Уникальные IP: 98604
Всего посещений: 1776528

Как я восстанавливал базу MySQL из InnoDB файлов (Windows)

Жил-был контроллер домена Windows 2003 Server. Потом пришла Беда. Беда, как известно, приходит внезапно. И несет за собой разруху. Но "корочка хлеба", в виде архивной копии Acronis, 3-х месячной давности все-же уцелела. Осталась также копия каталога C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6\Data
После восстановления сервера из архива имеем полноценные работающие базы 3-х месячной давности и новые базы в виде файлов. Вопрос: как достать более свежую информацию из файлов баз данных? В базах смешанные таблицы InnoDB и MyISAM.

С MyISAM проблем не возникло. Скопировал файлы поверх старых и выполнил
CHECK TABLE имя таблицы (на всякий случай) и REPAIR TABLE имя таблицы,
и о чудо, все получилось. С таблицами InnoDB все оказалось сложнее.

Умолчу о всяких безумных телодвижениях на специально установленном MySQL сервере. Важен результат.
Останавливаем сервер MySQL. "Панель управления-Администрирование-службы"

Highslide JS

Идем по пути
C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6\
в папку Data копируем базу RestoreBase (всю папку целиком со всеми файлами) поверх старой и копируем в папку Data поверх старых файлы ib_logfile0, ib_logfile1, ibdata1. Добавляем в файл my.ini строку в секцию

[mysqld]
innodb_force_recovery = 6

Размер лог файлов ib_logfile0, ib_logfile1, на экспериментальном сервере и восстанавливливаемого архива был одинаков(48 Mbt), видимо поэтому все прошло без проблем. Если бы файлы отличались размером, то в настройках сервера (для InnoDB) нужно задать размер лог файлов таким, как у восстанавливаемых.

Запускаем сервер и получаем рабочие таблицы в базе RestoreBase Затем комментируем строку innodb_force_recovery = 6 и перезапускаем сервер MySQL

Это был мой случай и его решение. Сами понимаете, универсальных решений в этом деле нет.

Вернуться назад

Комментарии.

Комментариев нет!


Здесь вы можете оставить свой комментарий.






Введите текст с картинки: