Mysql Переход с MyISAM на InnoDB

borzih2

Новичок
Недавно перешел с MyISAM на InnoDB, и не могу решить задачу, которая раньше решалась.

Раз в сутки MySQL останавливается и все файлы базы данных копируются на резервный диск. В my.conf стоит опция innodb_per_file=1 и каждой таблице соответствует своя пара файлов *.frm и *.ibd.

Имеется таблица users с ТЕКУЩИМИ данными пользователей. Я хочу посмотреть таблицу users из РЕЗЕРВНОГО диска. Для этого на резервном диске я переименовываю файлы users.frm и users.ibd в users2.frm и users2.ibd и кидаю их папку действующей базы данных.

Проблема: таблица users2 в MyPhpAdmin не появляется. Остановка/запуск MySQL не помогает. Он не хочет видеть таблицу, привнесенную в базу из файлов. С таблицами типа MyISAM все работало, их легко можно было "переносить" как файлы. Операционная система - FreeBSD.

Что делать?
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
С InnoDB нельзя работать как с файлами, он "имеет" смысл только в полном наборе файлов. innodb_per_file=1 в этом смысле ничего не меняет. Взять одну "таблицу" нельзя. Если непонятно почему, вспомни про foreign keys и транзакции.

Соответственно, единственный вариант - создать полную копию базы.
Если остановить mysql, можно просто скопировать весь datadir.
Если не останавливать, то можно:
a) настроить master-slave репликацию, и спокойно себе работать с копией, вообще ничего никуда не двигая,
б) сделать копию datadir-а с помощью innobackup / mysqlbackup / mariabackup / xtrabackup (название инструмента отличается в зависимости от версии и разновидности mysql, суть та же),
в) тупо снять дамп.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Зачем такие сложности? Можно просто мускульдампнуть одну таблицу с --single-transaction и восстановить ее с выключенными foreign keys.

PS: кто же тебе бздю то дал вообщес таким подходом...
 
Сверху