Создать новый файл ibdata * для каждой базы данных в InnoDB - PullRequest
4 голосов
/ 13 сентября 2011

Возможно ли создать уникальный файл ibdate для каждой базы данных, созданной в InnoDB?

Поскольку, если у меня есть несколько баз данных, созданных в InnoDB, все они будут храниться в ibdata1, ibdata2 и т. Д. ...

Что затрудняет восстановление только 1 базы данных, а не всех клиентов, имеющих InnoDB.MyISAM создает несколько файлов .frm, MYD и MYI для каждой таблицы, что облегчает восстановление.

Как мы можем сделать в таком виде, что восстановление проще в InnoDB.Нужно ли создавать файл DUMP .sql или есть другое решение?

Спасибо

1 Ответ

5 голосов
/ 13 сентября 2011

Вы не можете разделить данные InnoDB по базе данных, но вы можете разделить их по таблицам, и таблицы хранятся в соответствующем подкаталоге, как и таблицы MyISAM. Смотри http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html

Но независимо от того, используете ли вы файл центрального табличного пространства или файл на таблицу, вы не должны выполнять резервное копирование или восстановление баз данных InnoDB, перемещая файлы в файловой системе. Даже если вы не выполняете запросы для записи в таблицы InnoDB, существуют фоновые потоки, которые обрабатывают ib_logfile, отменяют журналы, вставляют буферы и другие вещи. Ваши данные распространяются в нескольких местах в любой момент времени, и если вы попытаетесь переместить файлы InnoDB, вы испортите их .

Вместо этого используйте mysqldump для безопасного создания логических дампов данных InnoDB во время работы MySQL.

...