1) mysqldump блокирует только когда вы его запрашиваете (один из -lock-tables, -lock-all-tables, -single-transaction). но если вы хотите, чтобы ваша резервная копия была последовательной, то mysqldump должен обладать блоком (используя --single-transaction или -lock-all-tables), или вы можете получить несогласованный снимок базы данных. Примечание. - Отдельная транзакция работает только для InnoDB.
2) Конечно, просто перечислить таблицы, которые необходимо выполнить резервное копирование после имени базы данных:
mysqldump OPTIONS DATABASE TABLE1 TABLE2 ...
В качестве альтернативы вы можете исключить таблицы, которые вы не хотите:
mysqldump ... --ignore-table=TABLE1 --ignore-table=TABLE2 .. DATABASE
Так вы можете делать весь дамп базы данных один раз в неделю и делать резервные копии только смены таблиц один раз в день.
3) mysqlhotcopy полностью работает с таблицами MyISAM, и в большинстве приложений вам лучше работать с InnoDB. Есть коммерческие инструменты (довольно дорогие) для hotbackup столов innodb. В последнее время для этой цели также существует новый источник с открытым исходным кодом. Xtrabackup
Кроме того, для автоматизации процесса вы можете использовать astrails-safe. Он поддерживает резервное копирование базы данных с помощью mysqldump и файловой системы с tar. + шифрование + загрузка на S3, + много других лакомств. Пока нет поддержки xtrabackup, но это должно быть легко добавить, если это то, что вам нужно.
спасибо Макросы за Ваш ответ! – TMM