Для движка InnoDB используйте опцию
--single-transaction , которая добавляет SQL-выражение BEGIN перед дампом всех данных из БД, что позволяет получить дамп одной транзакцией, без блокировки таблиц.
Для движка MyISAM используйте опцию
--lock-tables , которая блокирует таблицы с помощью READ LOCAL, что позволяет выполнять запросы INSERT в MyISAM-таблицы во время выполнения дампа.
P.S. Кроме того, при дампе больших таблиц с помощью mysqldump рекомендуется использовать опцию
--quick
P.P.S Но не стоит забывать, что если вы делаете дамп с флагами
--master-data и
--single-transaction , автоматические локи не работают (флаг --lock-tables не действует)! Нужно указывать флаг
--lock-all-tables
И напоследок: для больших БД использование mysqldump - это зло, почитайте про
Percona XtraBackup например
тут и
тут и свеженькое
тут и используйте его если уж сильно не хочется репликацию, хотя бэкапы и при наличии репликации никто не отменял ибо репликация != бэкап.