Вернувшись 16 декабря 2011 года, я ответил на вопрос: Как вы оцениваете специфические таблицы mysqldump?
Я собрал все таблицы, не включая определенный набор имен таблиц.
Используя те же принципы, вы могли бы собрать все имена баз данных из таблицы метаданных, information_schema.schemata
которые вы хотите mysqldump'd, создать запрос для возврата этого списка, а затем использовать этот список баз данных для формулирования команды mysqldump.
DATABASES_TO_EXCLUDE="db1 db2 db3"
EXCLUSION_LIST="'information_schema','mysql'"
for DB in `echo "${DATABASES_TO_EXCLUDE}"`
do
EXCLUSION_LIST="${EXCLUSION_LIST},'${DB}'"
done
SQLSTMT="SELECT schema_name FROM information_schema.schemata"
SQLSTMT="${SQLSTMT} WHERE schema_name NOT IN (${EXCLUSION_LIST})"
MYSQLDUMP_DATABASES="--databases"
for DB in `mysql -ANe"${SQLSTMT}"`
do
MYSQLDUMP_DATABASES="${MYSQLDUMP_DATABASES} ${DB}"
done
MYSQLDUMP_OPTIONS="--routines --triggers"
mysqldump ${MYSQLDUMP_OPTIONS} ${MYSQLDUMP_DATABASES} > MySQLDatabases.sql
Все, что вам нужно сделать, это поместить базы данных, которые вы не хотите, mysqldump'd в DATABASES_TO_EXCLUDE
Попробуйте!
information_schema
что это не сбрасывается в любом случае.mysqldump does not dump the INFORMATION_SCHEMA or performance_schema database by default. To dump either of these, name it explicitly on the command line and also use the --skip-lock-tables option. You can also name them with the --databases option. Before MySQL 5.5 mysqldump silently ignores INFORMATION_SCHEMA even if you name it explicitly on the command line.
dev.mysql.com/doc/refman/5.5/en/mysqldump.htmlИспользуйте grep, чтобы исключить ненужные базы данных:
Если посмотреть на /programming/19354870/bash-command-line-and-input-limit, то вы сможете обрабатывать длинные строки. В противном случае вы всегда можете
источник
grep
, чтобы перейти от многострочного вывода к одной строке с каждым именем базы данных, разделенным пробелом, который требуетсяmysqldump
. Таким образом, команда будетcandidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema)$" | paste -sd " " -)
Я не думаю, что это возможно, но вы можете попробовать это решение, которое вам нужно будет ввести имена всех баз данных, которые вы хотите сбросить.
Дайте мне знать, если решение поможет.
источник
Даже здесь так много отличных ответов, так что этот пост просто добавить еще один выбор. Ниже 2 строк в скрипте, вы можете взять ваши серверы все резервные копии БД, игнорируя некоторые БД.
источник
sys
Кроме того, вы можете посмотреть на следующие ссылки;
Mysqldump Игнорировать опцию базы данных
Несколько хаков для симуляции mysqldump --ignore-database
Реализация mysqldump –ignore-database
Дайте мне знать, если решение поможет.
Удачи!
источник
Многие всегда хотели, чтобы mysqldump игнорировал базы данных.
Вы поверите, что такой вариант существует сейчас ??? Нет, не в mysqldump.
Oracle (Yuck, toowee, до сих пор не скатывается с языка) имеет DataPump (expdb impdp) для выгрузки баз данных Oracle. Начиная с MySQL 5.7 в семействе Oracle (все еще болит), новая утилита резервного копирования называется mysqlpump , которая поставляется с --exclude-database и другими полезными опциями. Как и его старый сводный сводный файл данных , mysqlpump также имеет параллелизм, который помогает ускорить дампы и разделить работу . На данный момент я не включился в работу, но это выглядит очень многообещающе. Когда я глубоко погружаюсь в mysqlpump, я могу обнаружить, что он выглядит так же, как datapump от Oracle .
Если в MySQL Parallel Universe есть кто-то с историями об этом, пожалуйста, опубликуйте его здесь.
источник
Ответ Роландо довольно велик, но я хотел сценарий, который можно использовать в разных проектах. Итак, я взял его сценарий и изменил его так, чтобы вы могли делать такие вещи, как:
Вот модифицированный скрипт:
(Я все еще надеюсь, что
--ignore-database
опция будет добавлена в будущую версию mysqldump)источник
Начиная с MySQL 5.7.8, вы можете использовать
mysqlpump
(что НЕ совпадает сmysqldump
) следующим образом:Просто замените
db1,db2,db3,db4
четыре базы данных, которые вы хотите исключить.Источник: MySQL Server Blog
источник