7.2. MariaDB の使用

7.2.1. MariaDB の概要

MariaDB サーバーは、MySQL テクノロジーをベースとしたオープンソースの高速で強力なデータベースサーバーです。

MariaDB は、データを構造化情報に変換して、データにアクセスする SQL インターフェースを提供するリレーショナルデータベースです。これには、複数のストレージエンジンとプラグイン、および地理的な情報システム (GIS) および JSON (JavaScript Object Notation) 機能が含まれます。

本セクションでは、「MariaDB のインストール」で、MariaDB サーバーをインストールする方法を説明します。また、「MariaDB 10.3 への移行」では、Red Hat Enterprise Linux 7 のデフォルトバージョンの MariaDB 5.5 から Red Hat Enterprise Linux 8 のデフォルトバージョンの MariaDB 10.3 に移行する方法と、MariaDB データのバックアップを作成する方法を説明します。データバックアップの実行は、MariaDB 移行の前提条件です。

7.2.2. MariaDB のインストール

MariaDB をインストールするには、以下の手順を行います。

  1. 特定のストリームを使用して mariadb モジュールをインストールして、そのシステムで MariaDB サーバーに必要なパッケージをすべて利用できる状態にします。

    # yum module install mariadb:10.3/server
  2. mariadb サービスを起動します。

    # systemctl start mariadb.service
  3. mariadb サービスが、システムの起動時に起動するようにします。

    # systemctl enable mariadb.service
注記

RPM パッケージの競合により、データベースサーバー MariaDB および MySQL を Red Hat Enterprise Linux 8.0 で並行してインストールできないことに注意してください。Red Hat Enterprise Linux 6 および Red Hat Enterprise Linux 7 用の Red Hat Software Collections では、コンポーネントの同時インストールが可能です。Red Hat Enterprise Linux 8 では、コンテナーで異なるバージョンのデータベースサーバーを使用できます。

7.2.2.1. MariaDB インストールセキュリティーの改善

MariaDB のインストール時にセキュリティーを強化する場合は、次のコマンドを実行します。

このコマンドは、完全にインタラクティブなスクリプトを起動して、プロセスの各ステップのプロンプトを表示します。

# mysql_secure_installation

このスクリプトを使用すると、次の方法でセキュリティーを改善できます。

  • root アカウントのパスワードの設定
  • 匿名ユーザーの削除
  • リモート (ローカルホスト外) の root ログインの拒否

7.2.3. MariaDB の設定

7.2.3.1. MariaDB サーバーのネットワーク設定

MariaDB サーバーをネットワーク用に設定するには、/etc/my.cnf.d/mariadb-server.cnf ファイルの [mysqld] セクションを使用します。ここには、以下の設定ディレクティブを設定できます。

  • bind-address

    bind-address は、サーバーがリッスンするアドレスです。

    可能なオプションは、ホスト名、IPv4 アドレス、または IPv6 アドレスです。

  • skip-networking

    以下の値が使用できます。

    0 - すべてのクライアントをリッスンする

    1 - ローカルクライアントのみをリッスンする

  • port

    MariaDB が TCP/IP 接続をリッスンするポート

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

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

  • 論理バックアップ
  • 物理バックアップ

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

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

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

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

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

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

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

以下のいずれかの MariaDB バックアップ方法で、MariaDB データベースのデータのバックアップを使用できます。

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

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

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

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

  • 選択したデータベースをバックアップする。
  • あるデータベースのテーブルのサブセットのバックアップを作成する。
  • 複数のデータベースをバックアップする。
  • すべてのデータベースをバックアップする。
7.2.4.1.1. mysqldump を使用したデータベース全体のバックアップ

手順

  • データベース全体のバックアップを取得するには、以下を実行します。

    # mysqldump [options] db_name > backup-file.sql
7.2.4.1.2. mysqldump を使用したデータベースから一連のテーブルのバックアップ

手順

  • あるデータベースで、テーブルのサブセットのバックアップを作成するには、mysqldump コマンドの末尾に、選択したテーブルの一覧を追加します。

    # mysqldump [options] db_name [tbl_name …​]
7.2.4.1.3. mysqldump でサーバーへのダンプファイルの読み込み

手順

  • ダンプファイルをサーバーに読み込むには、以下のいずれかを使用します。

    # mysql db_name < backup-file.sql
    # mysql -e "source /path-to-backup/backup-file.sql" db_name
7.2.4.1.4. mysqldump を使用した 2 つのデータベース間のデータのコピー

手順

  • データを MariaDB サーバー間でコピーしてデータベースを入力するには、以下を実行します。

    # mysqldump --opt db_name | mysql --host=remote_host -C db_name
7.2.4.1.5. mysqldump で複数データベースのダンプ

手順

  • 複数のデータベースを一度にダンプするには、次のコマンドを実行します。

    # mysqldump [options] --databases db_name1 [db_name2 …​] > my_databases.sql
7.2.4.1.6. mysqldump で全データベースのダンプ

手順

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

    # mysqldump [options] --all-databases > all_databases.sql
7.2.4.1.7. mysqldump オプションの確認

手順

  • mysqldump サポートするオプションの一覧を表示するには、以下を実行します。

    $ mysqldump --help
7.2.4.1.8. 関連情報

mysqldump を使用した論理バックアップの詳細は、MariaDB のドキュメント を参照してください。

7.2.4.2. Mariabackup ツールを使用した物理的なオンラインバックアップ

Mariabackup は、Percona Xtrabackup テクノロジーをベースとしたツールで、InnoDB、Aria、および MyISAM のテーブルの物理的なオンラインバックアップを実行できます。

AppStream リポジトリーの mariadb-backup パッケージが提供する Mariabackup は、MariaDB サーバーの完全バックアップ機能に対応します。これには、暗号化されたデータと圧縮データが含まれます。

前提条件

  • mariadb-backup パッケージがシステムにインストールされている。

    # yum install mariadb-backup
  • Mariabackup には、バックアップを実行するユーザーの認証情報を指定している。この手順に示されるように、コマンドラインで認証情報を指定するか、または手順を適用する前に設定ファイルを指定します。設定ファイルを使用して認証情報を設定するには、最初にファイル (例: /etc/my.cnf.d/mariabackup.cnf) を作成し、新しいファイルの [xtrabackup] セクションまたは [mysqld] セクションに以下の行を追加します。

    [xtrabackup]
    user=myuser
    password=mypassword
    重要

    Mariabackup は、設定ファイルの [mariadb] セクションのオプションは読み込みません。MariaDB サーバーにデフォルト以外のデータディレクトリーが指定されている場合は、Mariabackup がデータディレクトリーを見つけることができるように、設定ファイルの [xtrabackup] セクションまたは [mysqld] セクションでこのディレクトリーを指定する必要があります。

    このようなデータディレクトリーを指定するには、MariaDB 設定ファイルの [xtrabackup] セクションまたは [mysqld] セクションに以下の行を追加します。

    datadir=/var/mycustomdatadir
    注記

    Mariabackup のユーザーがバックアップを操作するには、RELOADLOCK TABLES、および REPLICATION CLIENT の特権が必要です。

Mariabackup を使用してデータベースのバックアップを作成するには、以下の手順を行います。

手順

  • 次のコマンドを実行します。

    $ mariabackup --backup --target-dir <backup_directory> --user <backup_user> --password <backup_passwd>

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

    ユーザー オプションおよび パスワード オプションにより、ユーザー名とパスワードを設定できます。「前提条件」の説明に従って設定ファイルでユーザー名とパスワードをすでに設定している場合は、このオプションを使用しないでください。

関連情報

Mariabackup によるバックアップの実行の詳細は、「Full Backup and Restore with Mariabackup」を参照してください。

7.2.4.3. Mariabackup ツールを使用したデータの復元

バックアップが完了したら、mariabackup コマンドに以下のいずれかのオプションを使用して、バックアップからデータを復元できます。

  • --copy-back
  • --move-back

--copy-back オプションを使用すると、元のバックアップファイルを保持できます。--move-back オプションは、バックアップファイルをデータディレクトリーに移動し、元のバックアップファイルを削除します。

前提条件

  • mariadb サービスが稼働していないことを確認します。

    # systemctl stop mariadb.service
  • データディレクトリーが空であることを確認します。
7.2.4.3.1. バックアップファイルを維持しながら Mariabackup でデータの復元

元のバックアップファイルを維持しながらデータを復元するには、以下の手順を行います。

手順

  1. mariabackup コマンドを実行して、--copy-back オプションを指定します。

    $ mariabackup --copy-back --target-dir=/var/mariadb/backup/
  2. ファイルの権限を修正します。

    データベースを復元するとき、Mariabackup は、バックアップのファイルおよびディレクトリーの権限を保持します。ただし、Mariabackup は、ユーザーおよびグループがデータベースを復元する際にファイルをディスクに書き込みます。したがって、バックアップの復元後に、MariaDB サーバーのユーザーおよびグループ (通常は共に mysql) が一致するように、データディレクトリーの所有者の調整が必要になることがあります。

    たとえば、ファイルの所有権を mysql ユーザーおよびグループに再帰的に変更するには、次のコマンドを実行します。

    # chown -R mysql:mysql /var/lib/mysql/
  3. mariadb サービスを起動します。

    # systemctl start mariadb.service
7.2.4.3.2. バックアップファイルの削除中に Mariabackup でデータの復元

データを復元し、元のバックアップファイルを保存しないようにするには、以下の手順を行います。

手順

  1. --move-back オプションを指定して mariabackup コマンドを実行します。

    $ mariabackup --move-back --target-dir=/var/mariadb/backup/
  2. ファイルの権限を修正します。

    データベースを復元するとき、Mariabackup は、バックアップのファイルおよびディレクトリーの権限を保持します。ただし、Mariabackup は、ユーザーおよびグループがデータベースを復元する際にファイルをディスクに書き込みます。したがって、バックアップの復元後に、MariaDB サーバーのユーザーおよびグループ (通常は共に mysql) が一致するように、データディレクトリーの所有者の調整が必要になることがあります。

    たとえば、ファイルの所有権を mysql ユーザーおよびグループに再帰的に変更するには、次のコマンドを実行します。

    # chown -R mysql:mysql /var/lib/mysql/
  3. mariadb サービスを起動します。

    # systemctl start mariadb.service
7.2.4.3.3. 関連情報

詳細は「Full Backup and Restore with Mariabackup」を参照してください。

7.2.4.4. ファイルシステムのバックアップの実行

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

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

手順

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

    # systemctl stop mariadb.service
  2. データファイルを必要な場所にコピーします。

    # cp -r /var/lib/mysql /backup-location
  3. 必要に応じて、設定ファイルを必要な場所にコピーします。

    # cp -r /etc/my.cnf /etc/my.cnf.d /backup-location/configuration
  4. 必要に応じて、ログファイルを必要な場所にコピーします。

    # cp /var/log/mariadb/* /backup-location/logs
  5. mariadb サービスを起動します。

    # systemctl start mariadb.service

7.2.4.5. レプリケーションをバックアップソリューションとして紹介します。

レプリケーションは、マスターサーバー用の代替バックアップソリューションです。マスターサーバーの複製となるスレーブサーバーを作成すると、マスターに影響を与えずに、スレーブでバックアップを実行できます。マスターは、スレーブをシャットダウンしている間にも実行でき、データをバックアップできます。

警告

レプリケーション自体は、バックアップソリューションとしては十分ではありません。レプリケーションは、ハードウェア障害からマスターサーバーを保護しますが、データ損失に対する保護は保証しないためです。この方法とともに、レプリケーションスレーブでその他のバックアップソリューションを使用することが推奨されます。

関連情報

レプリケーションをバックアップソリューションとして使用する場合は、MariaDB ドキュメンテーション を参照してください。

7.2.5. MariaDB 10.3 への移行

Red Hat Enterprise Linux 7 には、MySQL データベースファミリーからのサーバーのデフォルトの実装として、MariaDB 5.5 が同梱されています。新しいバージョンの MariaDB データベースサーバーは、Red Hat Enterprise Linux 6 および Red Hat Enterprise Linux 7 の Software Collections として利用できます。Red Hat Enterprise Linux 8 は、MariaDB 10.3 および MySQL 8.0 を提供します。

7.2.5.1. RHEL 7 と RHEL 8 のバージョンの MariaDB の違い

MariaDB 5.5MariaDB 10.3 において最も重要な変更点を以下に示します。

  • 10.1 以降、同期マルチクラスターでもある MariaDB Galera Cluster が、MariaDB の標準に含まれるようになりました。
  • ARCHIVE ストレージエンジンはデフォルトで有効ではなくなるため、プラグインを明示的に有効にする必要があります。
  • BLACKHOLE ストレージエンジンはデフォルトで有効ではなくなるため、プラグインを明示的に有効にする必要があります。
  • InnoDB は、MariaDB 10.1 以前のバージョンで使用されていた XtraDB ではなく、デフォルトのストレージエンジンとして使用されます。

    詳細は、「Why does MariaDB 10.2 use InnoDB instead of XtraDB?」を参照してください。

  • 新しい mariadb-connector-c パッケージは、MySQL と MariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバー MySQL および MariaDB のすべてのバージョンで使用できます。その結果、Red Hat Enterprise Linux 8 に同梱される MySQL サーバーまたは MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

MariaDB 5.5 から MariaDB 10.3 へ移行するには、「設定変更」の記載どおりに複数の設定を実行する必要があります。

7.2.5.2. 設定変更

MariaDB 5.5 から MariaDB 10.3 への推奨される移行パスは、最初に MariaDB 10.0 にアップグレードしてから、1 バージョンずつ順次アップグレードすることです。

バージョンを 1 つずつアップグレードする主な利点は、変更に対するデータと構成の両方を含む、データベースの適合に優れています。アップグレードは、RHEL 8 (MariaDB 10.3) で利用可能なものと同じメジャーバージョンで終了します。これにより、設定変更やその他の問題が大幅に低下します。

MariaDB 5.5 から MariaDB 10.0 への移行時の設定の変更の詳細は、『Red Hat Software Collections』の「MariaDB 10.0 への移行」を参照してください。

以下の後続バージョンの MariaDB への以降と、必要な設定変更は、以下のドキュメントで説明します。

注記

MariaDB 5.5 から MariaDB 10.3 へ直接移行することもできますが、上記の移行ドキュメントに記載されている違いにより必要とされる設定変更をすべて実行する必要があります。

7.2.5.3. mysql_upgrade ツールを使用したインプレースアップグレード

データベースファイルを Red Hat Enterprise Linux 8 に移行するには、Red Hat Enterprise Linux 7 の MariaDB ユーザーが、mysql_upgrade ツールを使用してインプレースアップグレードを実行する必要があります。mysql_upgrade ツールは、mariadb-server-utils サブパッケージにより提供され、mariadb-server パッケージの依存関係としてインストールされます。

インプレースアップグレードを実行するには、Red Hat Enterprise Linux 8 システムの /var/lib/mysql/ データディレクトリーにバイナリーデータファイルをコピーして、mysql_upgrade ツールを使用する必要があります。

この方法を使用すると、以下からデータを移行できます。

  • Red Hat Enterprise Linux 7 バージョンの MariaDB 5.5
  • Red Hat Software Collections のバージョンは、以下の通りです。

    • MariaDB 5.5 (サポート対象外になりました)
    • MariaDB 10.0 (サポート対象外になりました)
    • MariaDB 10.1 (サポート対象外になりました)
    • MariaDB 10.2

MariaDB 10.2 へのアップグレードは、バージョンごとに行うことが推奨されます。移行は、Red Hat Software Collections Release Notes で該当する章を参照してください。

注記

Red Hat Enterprise Linux 7 バージョンの MariaDB からアップグレードする場合、ソースデータは /var/lib/mysql/ ディレクトリーに保存されます。Red Hat Software Collections バージョンの MariaDB の場合、ソースデータディレクトリーは /var/opt/rh/<collection_name>/lib/mysql/ です (/opt/rh/mariadb55/root/var/lib/mysql/ データディレクトリーを使用する mariadb55 を除く)。

重要

アップグレードを実行する前に、MariaDB データベースに保存されている全データのバックアップを作成します。

インプレースアップグレードを実行する場合は、root で以下を行います。

  1. Red Hat Enterprise Linux 8 システムに mariadb-server パッケージがインストールされていることを確認します。

    # yum install mariadb-server
  2. データのコピー時に、mariadb デーモンがソースおよびターゲットのシステムで実行していないことを確認します。

    # systemctl stop mariadb.service
  3. ソースの場所から、Red Hat Enterprise Linux 8 ターゲットシステムの /var/lib/mysql/ ディレクトリーにデータをコピーします。
  4. ターゲットシステムでコピーされたファイルに適切なパーミッションと SELinux コンテキストを設定します。

    # restorecon -vr /var/lib/mysql
  5. ターゲットシステムで、MariaDB サーバーを起動します。

    # systemctl start mariadb.service
  6. mysql_upgrade コマンドを実行して、内部テーブルをチェックし、修復します。

    # systemctl mysql_upgrade
  7. アップグレードが完了したら、/etc/my.cnf.d/ ディレクトリーのすべての設定ファイルに MariaDB 10.3 の有効なオプションのみが含まれていることを確認してください。
重要

インプレースアップグレードに関連する特定のリスクと既知の問題があります。たとえば、一部のクエリーが動作しなかったり、アップグレード前とは異なる順序で実行される場合があります。これらのリスクと問題、およびインプレースアップグレードに関する全般的な情報は、『MariaDB 10.3 Release Notes』を参照してください。

7.2.6. Galera で MariaDB の複製

本セクションでは、Galera ソリューションを使用して MariaDB データベースを複製する方法を説明します。

7.2.6.1. MariaDB Galera Cluster の概要

Galera レプリケーションは、複数の MariaDB サーバーで構成される同期マルチマスター MariaDB Galera Cluster の作成に基づいています。

Galera レプリケーションと MariaDB データベースとの間のインターフェースは、書き込みセットレプリケーション API (wsrep API) で定義されます。

MariaDB Galera Cluster の主な機能は以下のとおりです。

  • 同期のレプリケーション
  • アクティブ/アクティブのマルチマスタートポロジー
  • クラスターノードへの読み取りおよび書き込み
  • 自動メンバーシップ制御、失敗したノードのクラスターからの削除
  • 自動ノードの参加
  • 行レベルの並列レプリケーション
  • ダイレクトクライアント接続 (ユーザーはクラスターノードにログオンし、レプリケーションの実行中にノードを直接操作できます)

同期レプリケーションとは、サーバーがトランザクションに関連付けられた書き込みセットをクラスター内のすべてのノードにブロードキャストすることで、コミット時にトランザクションをレプリケートすることを意味します。クライアント (ユーザーアプリケーション) は、データベース管理システム (DBMS) に直接接続し、ネイティブの MariaDB と同様の動作が発生します。

同期レプリケーションは、クラスター内の 1 つのノードで発生した変更が、クラスター内の他のノードで同時に発生することを保証します。

そのため、同期レプリケーションには、非同期のレプリケーションと比べて次のような利点があります。

  • 特定のクラスターノード間の変更の伝播に遅延がない
  • すべてのクラスターノードには常に一貫性がある
  • いずれかのクラスターノードがクラッシュしても、最新の変更は失われない
  • すべてのクラスターノードのトランザクションが並列に実行する
  • クラスター全体にわたる因果関係

関連情報

詳細は、アップストリームのドキュメントを参照してください。

7.2.6.2. MariaDB Galera クラスターを構築するためのコンポーネント

MariaDB Galera Cluster を構築できるようにするには、以下のパッケージをシステムにインストールしておく必要があります。

  • mariadb-server-galera
  • mariadb-server
  • galera

mariadb-server-galera パッケージには、MariaDB Galera Cluster のサポートファイルとスクリプトが含まれます。

MariaDB アップストリームは、mariadb-server パッケージにパッチを適用して、書き込みセットレプリケーション API (wsrep API) を組み込みます。この API は、Galera レプリケーションと MariaDB との間のインターフェースを提供します。

また、MariaDB のアップストリームでは galera にパッチを適用して、MariaDB の完全サポートを追加します。galera パッケージには、Galera Replication Library および Galera Arbitrator ツールが含まれます。Galera Replication Library は、レプリケーション機能全体を提供します。Galera Arbitrator は、スプリットブレインのシナリオで投票に参加するクラスターメンバーとして使用できます。ただし、Galera Arbitrator は実際のレプリケーションには参加できません。

関連情報

詳細は、アップストリームのドキュメントを参照してください。

7.2.6.3. MariaDB Galera クラスターのデプロイメント

前提条件

  • MariaDB Galera Cluster を構築するのに必要なソフトウェアがすべてシステムにインストールされている。これを確認するには、mariadb:10.3 モジュールの galera プロファイルをインストールします。

    # yum module install mariadb:10.3/galera

    これにより、以下のパッケージがインストールされます。

  • MariaDB サーバーのレプリケーション設定は、システムを初めてクラスターに追加する前に更新する必要があります。

    デフォルト設定は、/etc/my.cnf.d/galera.cnf ファイルに同梱されています。

    MariaDB Galera Cluster をデプロイする前に、以下の文字列で開始するように、すべてのノードの /etc/my.cnf.d/galera.cnf ファイルに wsrep_cluster_address オプションを設定します。

    gcomm://

    初期ノードでは、wsrep_cluster_address を空のリストとして設定できます。

    wsrep_cluster_address="gcomm://"

    その他のすべてのノードに wsrep_cluster_address を設定して、実行中のクラスターに属するノードへのアドレスを追加します。以下に例を示します。

    wsrep_cluster_address="gcomm://10.0.0.10"

    Galera Cluster アドレスの設定方法は、「Galera Cluster Address」を参照してください。

手順

  1. ノードで以下のラッパーを実行して、新規クラスターの最初のノードをブートストラップします。

    $ galera_new_cluster

    このラッパーにより、MariaDB サーバーデーモン (mysqld) に --wsrep-new-cluster オプションが指定されて実行されるようになります。このオプションは、接続する既存クラスターがないという情報を提供します。したがって、ノードは新規 UUID を作成し、新しいクラスターを特定します。

    注記

    mariadb サービスは、複数の MariaDB サーバープロセスと対話する systemd メソッドをサポートします。したがって、複数の MariaDB サーバーを実行している場合は、インスタンス名を接尾辞として指定して、特定のインスタンスをブートストラップできます。

    $ galera_new_cluster mariadb@node1
  2. 各ノードで次のコマンドを実行して、その他のノードをクラスターに接続します。

    # systemctl start mariadb

    その結果、ノードはクラスターに接続し、それ自体をクラスターの状態と同期します。

関連情報

詳細は「Getting started with MariaDB Galera Cluster」を参照してください。

7.2.6.4. 新規ノードの MariaDB Galera クラスターへの追加

新規ノードを MariaDB Galera Cluster に追加するには、以下の手順に従います。

この手順に従って、既存のノードを再接続することもできます。

手順

  • 特定のノードで、/etc/my.cnf.d/galera.cnf 設定ファイルの [mariadb] セクション内にある wsrep_cluster_address オプションで、1 つ以上の既存クラスターメンバーにアドレスを指定します。

    [mariadb]
    wsrep_cluster_address="gcomm://192.168.0.1"

    新規ノードを既存クラスターノードのいずれかに接続すると、クラスター内のすべてのノードを表示できるようになります。

    ただし、wsrep_cluster_address のクラスターの全ノードを表示することが推奨されます。

    したがって、1 つ以上のクラスターノードがダウンしても、その他のクラスターノードに接続することでノードがクラスターに参加できます。すべてのメンバーがメンバーシップに同意すると、クラスターの状態が変更します。新規ノードの状態がそのクラスターとは異なる場合は、他のノードとの整合性を保つために、IST (Incremental State Transfer) または SST (State Snapshot Transfer) のいずれかが要求されます。

関連情報

7.2.6.5. MariaDB Galera クラスターの再起動

すべてのノードを同時にシャットダウンすると、クラスターが終了し、実行中のクラスターは存在しなくなります。ただし、クラスターのデータは引き続き存在します。

クラスターを再起動するには、「MariaDB Galera クラスターのデプロイメント」の説明に従って最初のノードをブートストラップします。

警告

クラスターがブートストラップされず、最初のノードの mysqldsystemctl start mariadb コマンドで起動した場合、ノードは /etc/my.cnf.d/galera.cnf ファイルの wsrep_cluster_address オプションに記載されている中から少なくとも 1 つのノードに接続しようとします。ノードが現在実行していない場合は、再起動に失敗します。

関連情報

詳細は「Getting started with MariaDB Galera Cluster」を参照してください。