Как я могу скопировать только часть сервера базы данных MySQL на новый подчиненный сервер?

Я пытаюсь установить подчиненный сервер MySQL на другом континенте. У меня недостаточно места на новом сервере для всей базы данных, содержащейся на главном сервере. Поэтому я пытаюсь запустить этот сервер без трех крупнейших баз данных. Как только я заработаю сервер, я намерен отказаться от этих трех баз данных.

БД активно использует InnoDB с опцией innodb-file-per-table , так что это не один ibdata1 файл табличного пространства.

Я попытался скопировать каталог данных без каталогов для трех очень больших баз данных. Это не сработало, потому что не удалось загрузить табличное пространство innodb для таблиц в базах данных, которые я не копировал.

Затем я скопировал остальные файлы, но использовал dd для копирования только первых 100 МБ из каждый .ibd файл в этих трех каталогах вместо многих гигабайт, содержащихся в файлах на главном сервере. С опцией восстановления innodb, Я могу запустить MySQL, но я не могу отбросить таблицы или базы данных в этот момент.

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

0
задан 27 September 2016 в 21:51
3 ответа

Используйте mysqldump для экспорта баз данных, а затем используйте mysql для восстановления дампов на удаленном сервере. mysqldump дампирует отдельные базы данных, поэтому вы можете свободно выбирать, какие базы данных нужно дампировать.

Не очень хорошая идея пытаться взломать реальные файлы баз данных, не зная точной внутренней реализации файлов.

.
1
ответ дан 5 December 2019 в 09:29

используйте mysqldump -u root -p --all-databases > alldb.sql для сброса всех db, затем скопируйте файл alldb.sql на удаленный сервер. Снова восстановите db с помощью команды mysql -u root -p < alldb.sql.

.
-1
ответ дан 5 December 2019 в 09:29

Если проблема с пространством является важной, возможно, NFS сможет избежать этой проблемы.

В сочетании с Частичным резервным копированием (нужно включить innodb-file-per-table, что вы уже сделали), вы можете просто скопировать эти большие базы данных InnoDB на другой slave-сервер.

.
0
ответ дан 5 December 2019 в 09:29

Теги

Похожие вопросы