LINUX.ORG.RU
ФорумAdmin

Удаление ibdata1

 


0

1

Приветствую.

Столкнулся с привычной проблемой: есть сервер MySQL, все таблицы в InnoDB, файл ibdata1 более 70 гигабайт. Надо его облегчить, плюс надо включить file_per_table для всех баз.

В интернете есть куча советов как удалить файл ibdata1, что бы он был пересоздан. В большинстве инструкций всё сводится к

  • Сдампить все базы
  • Удалить все базы
  • Остановить сервер
  • Удалить ibdata1, ib_logfile0, ib_logfile1
  • Запустить сервер
  • Восстановить все базы.

Ничего сложного, но есть одна проблема: одна из моих баз просто не поместится на диск, если её сдампить. И даже если решить этот вопрос, всё равно восстанавливаться база в сотню гигабайт с индексами будет крайне долго.

База эта была изначально сделана в InnoDB и все данные её таблиц разложены по отдельным файлам (file_per_table был включён до создания базы).

Собственно вопрос: можно ли безболезненно выполнить описанную выше инструкцию, не дампя эту огромную базу?

Боюсь, что после перезапуска MySQL не подхватит базу из файлов автоматом и всё сломается. Так ли это или можно не опасаться?

Боюсь, что после перезапуска MySQL не подхватит базу из файлов автоматом и всё сломается. Так ли это или можно не опасаться?

Все верно

На днях у меня крешанулась база с innodb таблицами. Насколько я выяснил из-за бедов. База всего 7гиг и были бекапы. Если при копировании файлов myisam таблицы успешно подхватываются, то с innodb это не происходит, хотя у меня таблицы были распределены по отдельных файлах. Насколько я выяснил из гугла, в ibdata1 как раз хранятся айдишники на таблицы и поэтому когда я создал новый ibdata1, то мускул просто был не в курсе про дополнительные таблицы. Поэтому думаю, что стоит использовать инструкции из поста, чтобы все наверняка сработало

kiotoze ★★★★
()
Последнее исправление: kiotoze (всего исправлений: 2)

одна из моих баз просто не поместится на диск, если её сдампить

Ответ очевиден: бэкапь на удаленный хост, где есть место для базы

mysqldump very_large_database | ssh remote_host 'cat >very_large_database.sql'

Восстановление - примерно по такой же схеме, только наоборот(сначала ssh, потому - mysql)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.