このセクションでは、MariaDB データベースのバックアップについて紹介します。
■ mysqldumpを使ったバックアップ
全てのデータベースをフルバックアップ
全てのデータベースをフルバックアップしたい場合には、以下コマンドを実行します。–all-databases オプションを使います。
[root@hp ~]# mysqldump --user=root -p --all-databases > /tmp/backup/full-backup-$(date +%Y%m%d).sql
Enter password:
[root@hp ~]#
指定の場所にバックアップされていることを確認します。
[root@hp ~]# ls -la /tmp/backup/
合計 123880
drwxr-xr-x 2 root root 76 7月 18 17:34 .
drwxrwxrwt. 17 root root 4096 7月 18 03:50 ..
-rw-r--r-- 1 root root 66048592 7月 18 17:34 full-backup-20230718.sql
[root@hp ~]#
圧縮してバックアップ
圧縮してバックアップをしたい場合は、以下コマンドを実行します。ここでは、gzipにパイプしてバックアップファイルを圧縮しています。
[root@hp ~]# mysqldump --user=root -p --all-databases | gzip > /tmp/backup/full-backup-$(date +%Y%m%d).sql.gz
Enter password:
[root@hp ~]#
バックアップファイルが圧縮されていることを確認します。
[root@hp ~]# ls -la /tmp/backup/
合計 130552
drwxr-xr-x 2 root root 111 7月 18 17:43 .
drwxrwxrwt. 17 root root 4096 7月 18 03:50 ..
-rw-r--r-- 1 root root 6828489 7月 18 17:43 full-backup-20230718.sql.gz
[root@hp ~]#
特定のデータベースをフルバックアップ
特定のデータベースをフルバックアップしたい場合には、以下コマンドを実行します。–database オプションを使います。ここでは、wpという名前のデータベースを指定しているので、適宜変更してください。
[root@hp ~]# mysqldump --user=WP_yuji_0527 -p --database wp > /tmp/backup/wp-backup-$(date +%Y%m%d).sql
Enter password:
[root@hp ~]#
指定の場所にバックアップされていることを確認します。
[root@hp ~]# ls -la /tmp/backup/
合計 189952
drwxr-xr-x 2 root root 141 7月 18 17:51 .
drwxrwxrwt. 17 root root 4096 7月 18 03:50 ..
-rw-r--r-- 1 root root 60825219 7月 18 17:52 wp-backup-20230718.sql
[root@hp ~]#
データの整合を保ちながらバックアップ
データの整合を保ちながらオンラインでバックアップしたい場合には、以下コマンドを実行します。–single-transactionオプションを使用します。
–single-transactionオプションを指定せずデフォルトの状態でバックアップした場合、データの整合がないダンプファイルが作成される可能性があります。データの不整合が起こるのはテーブルをロックせずに、オンラインでダンプをするケースで発生します。
[root@hp ~]# mysqldump --user=WP_yuji_0527 -p --single-transaction --database wp > /tmp/backup/wp-backup-$(date +%Y%m%d).sql
Enter password:
[root@hp ~]#
補足)–single-transactonオプションを指定すればオンラインでもデータの整合性を保ちながらバックアップできますが、トランザクションに対応していないストレージエンジン(MyISAMストレージエンジンなど)を利用している場合、–single-transactionオプションでもデータの一貫性を保つことが保証されません。
MySQL 5.5以前の場合、ストレートエンジンとしてMyISAMが使われていたのですが、それより新しいバージョンであれば標準のストレージエンジンとしてInnoDBが採用されていますので、この問題は解消されます。