毎日バックアップを取るシェル スクリプトを作成しましたが、mysql を起動するたびにデータベースがロックされ、サイトがダウンします。
サイトは異なるタイムゾーンでアクセスできるため、ライブサーバーに影響を与えたくないので、夜間にバックアップを取ることができません
この問題を回避するための 1 つの方法は、 MySQL レプリケーションをセットアップし、スレーブ データベースを使用してバックアップを行うことです。
長所は、データベースの完全なレプリケーションを取得し、データベースの種類に関係なく、効果的にホット バックアップを実行できることです。ただし、別の db サーバーが必要であり、実質的にストレージ容量を 2 倍にします (db の別のコピーを維持しているため)。
万人向けというわけではありませんが、それでもオプションです。
問題を解決します
mysqldump -u[ユーザー] -p[パスワード] データベース名 --skip-lock-tables | gzip > soohoo_backup.sql.gz
MyISAM を使用している場合は、 を使用して、テーブルをロックしたくないことを MySQL に通知できます--lock-tables=false
。InnoDB を使用している場合は--single-transaction
、ロックを回避するために使用できます。
使用できます:
mysqldump -u [user] -p[password] [dbname] > dumpfile.sql