MySQLデータベースのバックアップ方法は主に三つのアプローチがあります。
1つ目はMySQL Enterprise Backup、Enterprise Edition限定のみですが、オンラインバックアップはもちろん、増分および圧縮バックアップも可能。
2つ目はmysqldump、このコマンドはデータベース単位で取得します。オンラインバックアップやデータベースの特定のテーブルのみをダンプすることができます。
3つ目はテーブルファイルをコピーするバックアップです、こちらは物理ファイルをコピーするだけとシンプルですが。更新されていない状態で取得が望ましいバックアップ方法です。
mysqldumpを使用したデータベースバックアップを業務で使用しましたので、今回紹介したいと思います。
mysqldumpを使用したバックアップ手順
コマンドの実行: rootユーザーで以下のコマンドを実行します。
ファイルに保存する必用があるため、リダイレクトが必須です。これにより、全てのデータベースが含まれるSQLファイルが生成されます。
# mysqldump -u root -p --all-databases > mysqldump_all_`date "+%Y-%m%d-%H%M"`.sql # ls -l -rw-r--r-- 1 root root 1286719 Jan 27 22:15 mysqldump_all_2024-0127-2215.sql
また、–all-databasesはすべてのデータベースですが、特定のデータベースを指定したい場合は、
# mysqldump -u root -p --all-databases db1 > mysqldump_all_`date "+%Y-%m%d-%H%M"`.sql
と指定して上げればよいですし、テーブルも指定したい場合は、
# mysqldump -u root -p --all-databases db1 table1 > mysqldump_all_`date "+%Y-%m%d-%H%M"`.sql
のように指定するとよいでしょう。