Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Восстановление базы данных MySQL InnoDB

Автор вопроса: Jaymie ThomasОтветов: 4

Мне нужно восстановить базу данных, которая была случайно сброшена в MySQL 5.0. Из-за проверки файлов резервных копий у меня, кажется, есть только файлы .FRM для хранения данных базы данных.

Может ли кто-нибудь посоветовать, все ли мне нужно для восстановления / импорта базы данных из резервной копии, или есть другие файлы, которые мне нужно передать, чтобы завершить это?

backupinnodbrestore

Ответы

Ответ 1 · рейтинг 14 · tpk

Файлы .frm не являются файлами данных, они просто хранят "информацию словаря данных" (см. руководство по MySQL). InnoDB хранит свои данные в файлах ib_logfile *. Это то, что вам нужно для резервного копирования / восстановления. Дополнительные сведения см. здесь.

Ответ 2 · рейтинг 12 · Community

Восстановление innodb: (при условии, что ваша папка данных - C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data)

  1. Скопируйте папки с базами данных (названные по имени базы данных), которые вы хотите восстановить, в C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data.
  2. # P2 #
    _ib_logfile0
    _ib_logfile1
    _ibdata1
    
  3. Получите размер _ib_logfile0 в МБ (он должен быть таким же, как _ib_logfile1), щелкнув файл правой кнопкой мыши -> Свойства

  4. Отредактируйте файл конфигурации mysql (mysql \ bin \ my.ini), чтобы innodb_log_file_size = 343M был точно таким же, как размер файлов ibdata.

  5. # P5 #
    # P6 #
  6. Теперь ваши данные должны вернуться в вашу базу данных. Экспортируйте их с помощью phpmysql или любого другого инструмента.

Ответ 3 · рейтинг 6 · Community

О боже ... у тебя проблемы. Выключите базу данных. Сделайте резервную копию файла innodb. Молитесь, чтобы вы НИЧЕГО не сделали после того, как сбросили базу данных.

Ребята из Percona (включая авторов блога о производительности MySQL) должны быть в состоянии помочь вам: Percona экстренная поддержка.

Если вы все-таки решаетесь самостоятельно, возьмите с собой следующее: Data Recovery Toolkit для Innodb .

Логистика этого? Вы должны прочитать каждую страницу (страница терминала компьютера ... блок размером 16 КБ в случае Innodb) и таким образом перестроить свои данные. Это очень низкоуровневая работа (мы говорим, откройте ваш шестнадцатеричный редактор и начните считать байты, если инструментарий не делает этого за вас), и если вы не очень опытный программист, вам будет больно .

Ответ 4 · рейтинг -2 · Ragen Dazs

Подробное решение вы можете найти здесь:

http://www.unilogica.com/mysql-innodb-recovery/ (статья на португальском)

Помимо флага innodb_force_recovery, я нашел другое решение: innodb_file_per_table, которое разбивает таблицы InnoDB в каждом файле, например таблицы MyISAM.

При аварийном восстановлении вы можете потерять меньше данных, чем в одном файле ibdata1.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы