2017-01-16 7 views
0

Может кто-нибудь объяснить, как mysqldump--single-transaction действительно работает для транзакционных столов, таких как InnoDB? Я читал официальный documentation, но до сих пор не имеет клей. Выполняет ли он для блокировки таблицы вместо глобальной блокировки, как --lock-tables? Кроме того, mysqldump запускает --opt как вариант по умолчанию, который включает в себя --lock-tables, но они являются взаимоисключающими с --single-transaction, как описано в ссылке выше. Должен ли я использовать --skip-opt при использовании --single-transaction в одном mysqldump команда?Mysqldump - вариант одной транзакции

Мне нужно сбросить таблицу InnoDB размером ~ 700 Гб, и я ищу правильную команду, чтобы добиться этого. В настоящее время я использую ниже одного:

mysqldump -B my_db --quick --single-transaction --max_allowed_packet=512M --compress --order-by-primary 

Заранее благодарен.

+0

Почему бы вам просто не посмотреть в выходном файле, чтобы посмотреть, что он делает? – Barmar

+0

Будете ли вы получать доступ к таблице (таблицам) во время сброса? Записать? –

+0

Вместо этого см. Xtradbdump Percona. –

ответ

1

--single-transaction говорит: «Никакие изменения, которые происходят с таблицами InnoDB во время сброса, не будут включены в дамп». Таким образом, дамп - это моментальный снимок баз данных в тот момент, когда дамп начал, независимо от того, сколько времени занимает свалка.

Из-за того, как взаимодействуют замки, это замедляет работу таблиц, возможно, даже прекращает запись. Подумайте, например, о запуске ALTER TABLE или DROP TABLE во время дампа вместе с другими действиями в одной таблице.

--lock-tables полезен для таблиц MyISAM.

--opt обычно рекомендуется. Я думаю, что он не зависит от вышеуказанных вариантов.

 Смежные вопросы

  • Нет связанных вопросов^_^