MysqlやMariaDBを使用している場合、データのバックアップは非常に重要です。
何らかの問題が発生した場合、バックアップからデータを復元することができます。そのため、定期的にバックアップを取ることは必須です。
今回の記事では、MysqlとMariaDBのデータベースをダンプする方法について解説します。まずは、mysqldumpコマンドを使用してデータベースをバックアップする方法を紹介します。
mysqldumpとは?
mysqldump
は、MariaDBやMySQLデータベースからSQL形式でデータをエクスポートするためのコマンドラインツールです。以下に、基本的な使い方や一般的なオプションを示します。
MySQLのdump(ダンプ)ファイルを取得方法
指定したデータベースのすべてのテーブルのデータと構造が、指定したファイル名で保存出来ます。
su
コマンドなどで権限のあるユーザにスイッチする必要があるかもしれません。
コマンドを実行します。
このコマンドは、MysqlにログインせずにDBサーバ上で実行してください。
mysqldump -u [ユーザー名] -p [データベース名] > [出力ファイル名].sql
これにより、指定したデータベースのデータがSQL形式で出力ファイルに保存されます。パスワードは -p
オプションの後に入力します。
出力パスですが、下記のようにフルパスで指定して出力先を指定するのが便利です。
/var/lib/mysql/backup20230304.sql
オプション
- –host (
-h
): データベースサーバーのホスト名を指定します。mysqldump -h ホスト名 -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
- –port (
-P
): データベースサーバーのポート番号を指定します。mysqldump -h ホスト名 -P ポート番号 -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
- –single-transaction: InnoDBテーブルの一貫性を保ちながらデータをダンプします。
mysqldump --single-transaction -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
- –lock-tables: テーブルをロックしてデータをダンプします。
--single-transaction
と併用しないでください。mysqldump --lock-tables -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
- –compress: データを圧縮して出力します。
mysqldump --compress -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
- –verbose (
-v
): 処理の詳細な情報を表示します。mysqldump -v -u ユーザー名 -p パスワード データベース名 > 出力ファイル.sql
これらは一部の一般的なオプションです。mysqldump --help
を実行して、使用可能なすべてのオプションを確認できます。
dumpのリストア方法
指定したファイルに保存されたデータベースのデータと構造が、指定したデータベースにリストアされます。
リストアするデータベースが存在しない場合は、あらかじめ作成しておく必要があります。
こちらもMySQLにログインせずに実行します。
mysql -u [ユーザー名] -p [データベース名] < [ダンプファイル名].sql
注意点
- バックアップは定期的に行い、複数のバックアップを保存しておくことが望ましいです。
- バックアップファイルは適切な場所に保存し、セキュリティに留意してください。
- オプションの選択によってデータベースの動作に影響が出る可能性があるため、慎重に使用してください。
これらの手順と注意点を守ることで、データベースの安全性と復旧の信頼性が向上します。