3.6. 論理ダンプを使用した MySQL データのバックアップと復元


MySQL データの論理バックアップは、データの復元に必要な SQL ステートメントで構成されます。物理バックアップに対する論理バックアップの利点は、異なるハードウェア構成や MySQL バージョンでもデータを復元できることです。

3.6.1. mysqldump を使用した論理バックアップの実行

mysqldump ユーティリティーを使用すると、データベースサーバーが稼働中でも MySQL データベースをバックアップし、エクスポートしたデータを SQL ファイルに保存できます。データが失われた場合に回復できるように、バックアップをセキュアな場所に保存してください。

mysqldump でよく見られるシナリオは以下のとおりです。

  • 単一のデータベースのバックアップ
  • 複数のデータベースのバックアップ
  • すべてのデータベースのバックアップ

mysqldump ユーティリティーは、出力を単一のファイルに保存します。複数のデータベースをバックアップする際に、データベースごとに 1 つのファイルが必要な場合は、各データベースを個別にバックアップしてください。

注記

mysqldump ユーティリティーはデータベースのみをバックアップできます。これには、mysql データベースに格納されているサーバー設定も含まれます。ただし、このユーティリティーは /etc/my.cnf などの設定ファイルはバックアップしません。

前提条件

  • mysqld サービスが実行されている。
  • root アカウントなど、データベースをバックアップする権限を持つ認証情報を持っている。

手順

  • 一貫性のある包括的なデータベースの論理バックアップを作成します。

    # mysqldump -u <username> -p --routines --events --triggers --single-transaction --result-file=backup.sql --databases <database_1> <database_2>

    各項目の説明:

    -u <username>
    ユーティリティーがデータベースサーバーに接続するために使用するユーザー名を設定します。
    -p
    パスワードの入力を求めます。
    --routines
    バックアップにストアドプロシージャーと関数を含めます。
    --events
    スケジュールされたイベントをバックアップに含めます。
    --triggers
    バックアップにトリガーを含めます。
    --single-transaction

    InnoDB などのトランザクションストレージエンジンを使用するデータベースに対して、整合性の取れたスナップショットの作成を開始します。単一のトランザクションを使用すると、すべての読み取り操作が、ダンプ開始時点のデータベースの状態を反映したものになります。

    MyISAM などの非トランザクションストレージエンジンをまだ使用している場合は、整合性のあるバックアップを確保するために、--single-transaction ではなく --lock-tables オプションを使用してください。

    --result-file=<output_file>
    mysqldump が 出力を保存するファイルを指定します。
    --databases <list_of_databases>

    バックアップするデータベースを定義します。または、すべてのデータベースを一度にバックアップするには、--all-databases オプションを使用します。

    重要

    データベースのバックアップには、そのデータベースのデータのみが含まれます。ユーザーアカウントやその他のサーバー設定は含まれません。サーバーは、この重要なセキュリティー情報とシステム情報を、別の MySQL システムデータベースに保存します。したがって、これらの設定を保持する必要がある場合は、mysql もバックアップする必要があります。

検証

  • サンドボックス環境でバックアップを復元し、データが正しいことを確認します。
  • データベースをリモート MySQL サーバーにロードするには、以下を実行します。

    # mysql --host=remote_host < backup-file.sql
  • 1 つのデータベースからテーブルのサブセットをダンプするには、mysqldump コマンドの末尾に、選択したテーブルのリストを追加します。

    # mysqldump [options] db_name [tbl_name ...] > backup-file.sql
  • 1 つのデータベースからダンプされたリテラルなテーブルのサブセットをロードするには、次のコマンドを実行します。

    # mysql db_name < backup-file.sql
    注記

    この時点で、db_name データベースが存在している必要があります。

  • mysqldump が サポートするオプションのリストを表示するには、以下を実行してください。

    $ mysqldump --help
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る