Назад | Перейти на главную страницу

Исключение / включение таблиц в mysqldump AWS

Я пытаюсь понять, как исключить или включить определенные таблицы при выполнении команды mysqldump на AWS через терминал.

Предыстория: у меня есть мультисайт WordPress, но мне нужны только таблицы с первыми тремя символами «wp_», все остальные таблицы с префиксами типа «wp_1», «wp_2» и т. Д. Мне не нужен файл дампа.

Вот код, который я использую для создания файла дампа, который работает, но захватывает все таблицы в базе данных:

mysqldump -h RDS instance endpoint \ 
-u user \ 
-p databasename \ 
--port=3306 \ 
--single-transaction \ 
--routines \ 
--triggers \ 
--databases databasename > path/rds-dump.sql

Спасибо!

Одна вещь, которую я реализовал, когда столкнулся с такой же проблемой, - это то, что я создал файл со всеми необходимыми именами таблиц. Теперь мне просто нужно пройтись по файлу, взять дамп каждой таблицы и добавить его в тот же файл дампа. Например:

for i in $(cat requiredtables.txt);do mysqldump -h RDS_instance -u user -p'password' db_name $i >> db_dump.sql;done

Это невозможно, но вы всегда можете выгрузить всю базу данных и создать запрос SQL, который удаляет ненужные таблицы. Однако это не сократит время mysqldump.

Я смотрел на это некоторое время назад, когда перемещал свои собственные веб-сайты, и пришел к выводу, что это невозможно. Вероятно, есть способ обработать файл дампа после экспорта, но я, вероятно, не стал бы беспокоиться без действительно уважительной причины.