Red Hat Training
A Red Hat training course is available for RHEL 8
9.3.4. MySQL データのバックアップ
Red Hat Enterprise Linux 8 でMySQL データベースからデータをバックアップする主な方法は 2 つあります。
- 論理バックアップ
- 物理バックアップ
論理バックアップ は、データの復元に必要な SQL ステートメントで設定されます。この種類のバックアップは、情報およびレコードをプレーンテキストファイルにエクスポートします。
物理バックアップに対する論理バックアップの主な利点は、移植性と柔軟性です。データは、物理バックアップではできない他のハードウェア設定である MySQL バージョンまたはデータベース管理システム (DBMS) で復元できます。
mysqld.service
が実行されている場合は、論理バックアップを実行できることに注意してください。論理バックアップには、ログと設定ファイルが含まれません。
物理バックアップ は、コンテンツを格納するファイルおよびディレクトリーのコピーで設定されます。
物理バックアップは、論理バックアップと比較して、以下の利点があります。
- 出力が少なくなる。
- バックアップのサイズが小さくなる。
- バックアップおよび復元が速くなる。
- バックアップには、ログファイルと設定ファイルが含まれる。
mysqld.service
が実行されていない場合、またはバックアップ中の変更を防ぐためにデータベース内のすべてのテーブルがロックされている場合は、物理バックアップを実行する必要があることに注意してください。
以下の MySQL バックアップアプローチのいずれかを使用して、MySQL データベースからデータをバックアップできます。
-
mysqldump
を使用した論理バックアップ - ファイルシステムのバックアップ
- バックアップソリューションとしてレプリケーションを使用
9.3.4.1. mysqldump を使用した論理バックアップの実行
mysqldump クライアントはバックアップユーティリティーで、バックアップ目的でデータベースまたはデータベースの集合をダンプしたり、別のデータベースサーバーに転送したりできます。通常、mysqldump の出力は、サーバーテーブル構造を再作成する、それにデータを取り込む、またはその両方の SQL ステートメントで設定されます。mysqldump は、XML および (CSV などの) コンマ区切りテキスト形式など、他の形式でファイルを生成することもできます。
mysqldump バックアップを実行するには、以下のいずれかのオプションを使用できます。
- 選択したデータベースを 1 つまたは複数バックアップ
- すべてのデータベースをバックアップする。
- あるデータベースのテーブルのサブセットのバックアップを作成する。
手順
単一のデータベースをダンプするには、以下を実行します。
# mysqldump [options] --databases db_name > backup-file.sql
複数のデータベースを一度にダンプするには、次のコマンドを実行します。
# mysqldump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
すべてのデータベースをダンプするには、以下を実行します。
# mysqldump [options] --all-databases > backup-file.sql
1 つ以上のダンプされたフルデータベースをサーバーにロードし直すには、以下を実行します。
# mysql < backup-file.sql
データベースをリモート MySQL サーバーにロードするには、以下を実行します。
# mysql --host=remote_host < backup-file.sql
あるデータベースでテーブルのサブセットをダンプするには、
mysqldump
コマンドの末尾に、選択したテーブルの一覧を追加します。# mysqldump [options] db_name [tbl_name ...] > backup-file.sql
1 つのデータベースからダンプされたテーブルのサブセットをロードするには、以下を実行します。
# mysql db_name < backup-file.sql
注記この時点で、db_name データベースが存在している必要があります。
mysqldump がサポートするオプションの一覧を表示するには、以下を実行します。
$ mysqldump --help