1.6. MariaDB データのバックアップ


MariaDB データベースからデータのバックアップを取得するには、以下の 2 つの方法があります。

論理バックアップ

論理バックアップは、データの復元に必要な SQL ステートメントで構成されます。この種類のバックアップは、情報およびレコードをプレーンテキストファイルにエクスポートします。

物理バックアップに対する論理バックアップの主な利点は、移植性と柔軟性です。データは、物理バックアップではできない他のハードウェア設定である MariaDB バージョンまたはデータベース管理システム (DBMS) で復元できます。

論理バックアップは、mariadb.service が実行されている場合にのみ実行できることに注意してください。論理バックアップには、ログと設定ファイルが含まれません。

物理バックアップ

物理バックアップは、コンテンツを格納するファイルおよびディレクトリーのコピーで構成されます。

物理バックアップは、論理バックアップと比較して、以下の利点があります。

  • 出力が少なくなる。
  • バックアップのサイズが小さくなる。
  • バックアップおよび復元が速くなる。
  • バックアップには、ログファイルと設定ファイルが含まれる。

    mariadb.service が実行していない場合や、データベースのすべてのテーブルがロックされていて、バックアップ中に変更しないようにする場合は、物理バックアップを実行する必要があります。

MariaDB データベースからデータをバックアップするには、次のいずれかの MariaDB バックアップ方法を使用できます。

  • mariadb-dump を使用した論理バックアップ
  • Mariabackup ユーティリティーを使用した物理的なオンラインバックアップ
  • ファイルシステムのバックアップ
  • バックアップソリューションとしてレプリケーションを使用

1.6.1. mariadb-dump を使用した論理バックアップの実行

mariadb-dump クライアントはバックアップユーティリティーで、バックアップ目的でデータベースまたはデータベースの集合をダンプしたり、別のデータベースサーバーに転送したりできます。mariadb-dump の出力は通常、サーバーテーブル構造を再作成したり、そこにデータを入力したり、またはその両方を行う SQL ステートメントで構成されます。mariadb-dump は、XML および (CSV などの) コンマ区切りテキスト形式など、他の形式でファイルを生成することもできます。

mariadb-dump バックアップを実行するには、以下のいずれかのオプションを使用できます。

  • 選択したデータベースを 1 つまたは複数バックアップ
  • すべてのデータベースをバックアップする。
  • あるデータベースのテーブルのサブセットのバックアップを作成する。

手順

  • 単一のデータベースをダンプするには、以下を実行します。

    # mariadb-dump [options] --databases db_name > backup-file.sql
    Copy to Clipboard Toggle word wrap
  • 複数のデータベースを一度にダンプするには、次のコマンドを実行します。

    # mariadb-dump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
    Copy to Clipboard Toggle word wrap
  • すべてのデータベースをダンプするには、以下を実行します。

    # mariadb-dump [options] --all-databases > backup-file.sql
    Copy to Clipboard Toggle word wrap
  • 1 つ以上のダンプされたフルデータベースをサーバーにロードし直すには、以下を実行します。

    # mariadb < backup-file.sql
    Copy to Clipboard Toggle word wrap
  • データベースをリモート MariaDB サーバーにロードするには、以下を実行します。

    # mariadb --host=remote_host < backup-file.sql
    Copy to Clipboard Toggle word wrap
  • あるデータベースでテーブルのサブセットをダンプするには、mariadb-dump コマンドの末尾に、選択したテーブルのリストを追加します。

    # mariadb-dump [options] db_name [tbl_name ...​] > backup-file.sql
    Copy to Clipboard Toggle word wrap
  • 1 つのデータベースからダンプされたテーブルのサブセットをロードするには、以下を実行します。

    # mariadb db_name < backup-file.sql
    Copy to Clipboard Toggle word wrap
    注記

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

  • mariadb-dump がサポートするオプションのリストを表示するには、以下のコマンドを実行します。

    $ mariadb-dump --help
    Copy to Clipboard Toggle word wrap

1.6.2. mariabackup ユーティリティーを使用した物理的なオンラインバックアップの実行

mariabackup ユーティリティーは、InnoDB、Aria、および MyISAM テーブルの物理的なオンラインバックアップを実行できる Percona XtraBackup テクノロジーに基づいています。このユーティリティーは、暗号化および圧縮されたデータを含む MariaDB サーバーの完全バックアップ機能をサポートします。

前提条件

  • mariadb-backup パッケージがシステムにインストールされている。
  • バックアップを実行するユーザーの認証情報を mariabackup に提供する必要がある。認証情報はコマンドラインまたは設定ファイルで指定できます。
  • mariabackup のユーザーには、RELOADLOCK TABLES、および REPLICATION CLIENT 特権が必要です。

手順

  • バックアップを作成するには、次のいずれかのオプションを使用します。

    • コマンドラインで認証情報を提供しながらバックアップを作成するには、次のように入力します。

      $ mariabackup --backup --target-dir <backup_directory> --user <backup_user> --password <backup_passwd>
      Copy to Clipboard Toggle word wrap

      target-dir オプションは、バックアップファイルを格納するディレクトリーを定義します。完全バックアップを実行する場合は、ターゲットディレクトリーが空であるか、存在しない必要があります。

      user および password オプションにより、ユーザー名とパスワードを設定できます。

    • 設定ファイルに認証情報を設定してバックアップを作成するには、次のコマンドを実行します。

      1. /etc/my.cnf.d/ ディレクトリーに設定ファイルを作成します (例: /etc/my.cnf.d/mariabackup.cnf)。
      2. 以下の内容をファイルに追加します。

        [mysqld]
        user=<backup_username>
        password=<password>
        Copy to Clipboard Toggle word wrap
      3. バックアップを実行します。

        $ mariabackup --backup --target-dir <backup_directory>
        Copy to Clipboard Toggle word wrap

1.6.3. mariabackup ユーティリティーを使用してデータを復元する

mariabackup ユーティリティーによって作成された MariaDB バックアップがある場合は、同じユーティリティーを使用してデータを復元できます。

前提条件

  • mariadb サービスが停止しています。
  • データディレクトリーが空です。
  • mariabackup のユーザーには、RELOADLOCK TABLES、および REPLICATION CLIENT 特権が必要です。

手順

  1. データを復元するには、次のいずれかのオプションを使用します。

    • /var/mariadb/backup/ ディレクトリー内のバックアップからデータを復元し、元のバックアップファイルを保持するには、次のように入力します。

      $ mariabackup --copy-back --target-dir=/var/mariadb/backup/
      Copy to Clipboard Toggle word wrap
    • /var/mariadb/backup/ ディレクトリー内のバックアップからデータを復元し、元のバックアップファイルを削除するには、次のように入力します。

      $ mariabackup --move-back --target-dir=/var/mariadb/backup/
      Copy to Clipboard Toggle word wrap
  2. ファイルのパーミッションを修正します。たとえば、ファイルの所有権を mysql ユーザーおよびグループに再帰的に変更するには、次のコマンドを実行します。

    # chown -R mysql:mysql /var/lib/mysql/
    Copy to Clipboard Toggle word wrap

    データベースを復元する際、mariabackup は、バックアップのファイルおよびディレクトリー特権を保持します。ただし、mariabackup は、ユーザーおよびグループがデータベースを復元する際にファイルをディスクに書き込みます。したがって、バックアップを復元した後、MariaDB サーバーのユーザーとグループに合わせてデータディレクトリーの所有者を調整する必要があります。

  3. mariadb サービスを起動します。

    # systemctl start mariadb.service
    Copy to Clipboard Toggle word wrap

1.6.4. MariaDB サーバーでファイルシステムのバックアップを実行する

MariaDB データファイルのファイルシステムバックアップを作成するには、MariaDB データディレクトリーの内容をバックアップの場所にコピーします。

現在の設定またはログファイルのバックアップも作成するには、以下の手順の中から任意の手順を選択します。

手順

  1. mariadb サービスを停止します。

    # systemctl stop mariadb.service
    Copy to Clipboard Toggle word wrap
  2. データファイルをコピーします。

    # cp -rp /var/lib/mysql/ /backup-location/data/
    Copy to Clipboard Toggle word wrap
  3. 設定ファイルをコピーします。

    # cp -rp /etc/my.cnf /etc/my.cnf.d/ /backup-location/configuration/
    Copy to Clipboard Toggle word wrap
  4. オプション: ログファイルをコピーします。

    # cp -p /var/log/mariadb/* /backup-location/logs/
    Copy to Clipboard Toggle word wrap
  5. mariadb サービスを起動します。

    # systemctl start mariadb.service
    Copy to Clipboard Toggle word wrap
  6. バックアップされたデータをバックアップ場所から /var/lib/mysql ディレクトリーにロードする際は、mysql:mysql/var/lib/mysql/ 内のすべてのデータの所有者であることを確認してください。

    # chown -R mysql:mysql /var/lib/mysql/
    Copy to Clipboard Toggle word wrap

1.6.5. バックアップソリューションとしてレプリケーションを使用

ソースサーバーの複製となるレプリカサーバーを作成すると、ソースに影響を与えずにレプリカでバックアップを実行できます。ソースは、レプリカをシャットダウンする間に依然として実行でき、レプリカからデータのバックアップを作成できます。

警告

レプリケーション自体は、バックアップソリューションとしては十分ではありません。レプリケーションは、ハードウェア障害からソースサーバーを保護しますが、データ損失に対する保護は保証していません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat