1) mysqldump は、要求された場合にのみブロックします (--lock-tables、--lock-all-tables、--single-transaction のいずれか)。ただし、バックアップの一貫性が必要な場合は、mysqldumpを(--single-transaction または --lock-all-tables を使用して) ブロックする必要があります。そうしないと、一貫性のないデータベース スナップショットが取得される可能性があります。注: --single-transaction は InnoDB でのみ機能します。
2) 確かに、データベース名の後にバックアップしたいテーブルを列挙するだけです:
mysqldump OPTIONS DATABASE TABLE1 TABLE2 ...
または、不要なテーブルを除外できます。
mysqldump ... --ignore-table=TABLE1 --ignore-table=TABLE2 .. DATABASE
したがって、データベース全体のダンプを週に 1 回実行し、変化するテーブルのみを 1 日 1 回バックアップできます。
3) mysqlhotcopy は MyISAM テーブルでのみ動作し、ほとんどのアプリケーションでは InnoDB を使用する方が適切です。innodb テーブルのホットバックアップ用の商用ツール (かなり高価) があります。最近、この目的のための新しいオープンソースのものもあります - Xtrabackup
また、プロセスを自動化するには、astrails-safeを使用できます。mysqldump によるデータベースのバックアップと tar によるファイルシステムをサポートしています。+暗号化 +S3 へのアップロード +その他多くの機能。xtrabackup のサポートはまだありませんが、必要な場合は簡単に追加できます。