mysqldump параллелизм - PullRequest
2 голосов
/ 16 мая 2011

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

1 Ответ

1 голос
/ 16 мая 2011

Ну, это не точно, из Mysql Manual :

- одна транзакция

Эта опция отправляетОператор SQL START TRANSACTION для сервера перед сохранением данных.Он полезен только для транзакционных таблиц, таких как InnoDB и BDB, потому что тогда он выводит согласованное состояние базы данных во время выдачи BEGIN, не блокируя какие-либо приложения.

При использовании этой опции следует сохранять вИмейте в виду, что только таблицы InnoDB выводятся в согласованном состоянии.Например, любые таблицы MyISAM или MEMORY, выгруженные при использовании этой опции, могут все еще изменять состояние.

Во время выполнения дампа --single-транзакции, чтобы обеспечить действительный файл дампа (правильное содержимое таблицы и двоичные координаты журнала)), никакое другое соединение не должно использовать следующие операторы: ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE.Непротиворечивое чтение не изолировано от этих операторов, поэтому их использование в таблице, которая должна быть выгружена, может привести к тому, что SELECT, выполняемый mysqldump, получит содержимое таблицы для получения неверного содержимого или сбой.

- -опция одной транзакции и опция --lock-tables являются взаимоисключающими, поскольку LOCK TABLES вызывает неявную фиксацию любых ожидающих транзакций.

Этот параметр не поддерживается для таблиц MySQL Cluster;нельзя гарантировать согласованность результатов из-за того, что механизм хранения NDBCLUSTER поддерживает только уровень изоляции транзакции READ_COMMITTED.Вместо этого вы всегда должны использовать резервное копирование и восстановление NDB.

Чтобы создать дамп больших таблиц, вам следует объединить опцию --single-транзакции с --quick.

Если вы хотите сделать резервную копию/ переместите вашу живую БД, вы должны рассмотреть MySQL replication

...