MySQL PXC クラスターの構築方法

MySQL PXC クラスターの構築方法

1. PXCの紹介

1.1 PXC の紹介

PXC は、MySQL の高可用性クラスタ ソリューションです。マスター スレーブ レプリケーション モードに基づく従来のクラスタ アーキテクチャと比較すると、PXC の最も顕著な特徴は、長年批判されてきたデータ レプリケーションの遅延の問題を解決し、基本的にリアルタイムの同期を実現できることです。さらに、ノード間の関係は平等です。 PXC はデータの一貫性を最も重視しています。物事を処理するときは、すべてのノードで実行するか、まったく実行しません。その実装メカニズムは、一貫性の処理に非常に厳格であると判断され、MySQL クラスターのデータ一貫性も完全に保証できます。

1.2 PXC の特徴と利点

  • MySQL と完全に互換性があります。
  • 同期レプリケーションでは、トランザクションはすべてのノードでコミットされるか、されないかのいずれかになります。
  • マルチマスターレプリケーションにより、任意のノードで書き込み操作を実行できます。
  • スレーブ サーバーにイベントを並列に適用し、真の並列レプリケーションを実現します。
  • ノードの自動構成、データの一貫性、非同期レプリケーションの廃止。
  • フェイルオーバー: マルチポイント書き込みをサポートしているため、データベース障害発生時にフェイルオーバーを簡単に実行できます。
  • 自動ノードクローン作成: 新しいノードを追加したり、メンテナンスのためにシャットダウンしたりするときに、増分データや基本データを手動でバックアップする必要はありません。Galera Cluster はオンライン ノード データを自動的に取得し、クラスターは最終的に一貫性を保ちます。

PXCの最大の利点: 強力な一貫性と同期遅延がない

1.3 PXCの限界と欠点

  • レプリケーションは InnoDB エンジンのみをサポートします。他のストレージ エンジンへの変更はレプリケートされません。
  • 書き込み効率は最も遅いノードに依存する

1.4 PXCとレプリケーションの違い

レプリケーションPXC
データの同期は一方向です。マスターは書き込みを行い、その後スレーブに非同期的に複製する役割を担います。スレーブがデータを書き込むと、マスターに複製されません。データ同期は双方向です。MySQL ノードによって書き込まれたデータは、クラスター内の他のノードに同期されます。
非同期レプリケーション、スレーブとマスターはデータの一貫性を保証できない同期レプリケーションでは、トランザクションはすべてのクラスタノードで同時にコミットされるか、同時にコミットされないかのいずれかになります。

1.5 PXC共通ポート

  • 3306: データベース外部サービスのポート番号。
  • 4444: SST を要求するためのポート。
  • 4567: グループメンバー間の通信用のポート番号
  • 4568: IST の送信に使用されます。

用語集:

  • SST (状態スナップショット転送): 完全転送
  • IST (増分状態転送): 増分転送

2. 練習

2.1 PXC クラスターの構築

MySQLとは異なり、PXCはDockerイメージを公式に提供しているため、PXCクラスターを簡単に構築できます。

1) Dockerイメージをダウンロードする

docker pull percona/percona-xtradb-cluster:5.7

画像の名前を変更する

docker タグ percona/percona-xtradb-cluster:5.7 pxc:5.7

3) 元の画像を削除する

docker rmi percona/percona-xtradb-cluster:5.7

PXC クラスターを独立して使用するための Docker ネットワークを作成する

docker ネットワーク pxc-network を作成する

後でマウントするためのデータボリュームを作成する

docker ボリューム作成 --name v1
docker ボリューム作成 --name v2
docker ボリューム作成 --name v3

注意: PXC コンテナーはデータ ボリュームのマウントのみサポートし、ディレクトリのマウントはサポートしません。

最初のノードの作成

docker run -di --name=pn1 --net=pxc-network -p 9000:3306 -v v1:/var/lib/mysql --privileged -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 pxc:5.7 

後続のノードの追加は最初のノードに関連付ける必要があるため、データベースが起動するまで待つ必要があります。 docker logs pn1 でログを確認します。次の出力が表示されれば、起動が成功したことがわかります。

2019-09-04T06:27:30.085880Z 0 [注記] InnoDB: バッファプールのロードが190904 6:27:30に完了しました

注意: CLUSTER_NAME 名にキーワード PXC を使用しないでください。そうしないと起動に失敗します。

2番目のノードに参加する

docker run -di --name=pn2 --net=pxc-network -p 9001:3306 -v v2:/var/lib/mysql --privileged -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pn1 pxc:5.7  

2 番目のノード以降には、pn1 ノードとの同期を示す CLUSTER_JOIN=pn1 パラメータを追加する必要があることに注意してください。そうしないと、pn1 コンテナは自動的に閉じられます。

PXC クラスターに 2 つ以上のノードがある場合、マスター ノードの概念はありません。クラスターから最後に退出するノードがプライマリ ノードになり、/var/lib/mysql/grastate.dat ファイルの属性 safe_to_bootstrap の値が 0 から 1 に設定され、そのノードがプライマリ ノードであることを示します。

8) 3番目のノードを追加する

docker run -di --name=pn3 --net=pxc-network -p 9002:3306 -v v3:/var/lib/mysql --privileged -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pn2 pxc:5.7  

今回は CLUSTER_JOIN が pn2 コンテナであることがわかります。これは、PXC クラスターに 2 つ以上のノードがある場合、マスター ノードの概念は存在しないという先ほど述べたことが正しいことを証明しています。

9) pn1ノードに入る

docker exec -it pn1 /usr/bin/mysql -uroot -p123456

ステータスを表示

mysql> 'wsrep%' のようなステータスを表示します。
+----------------------------------+-------------------------------------------------+
| 変数名 | 値 |
+----------------------------------+-------------------------------------------------+
| wsrep_local_state_uuid | 068dd5e8-cedd-11e9-904d-466e75bd8fe1 |
| wsrep_プロトコルバージョン | 9 |
| wsrep_last_applied | 16 |
| wsrep_last_committed | 16 |
| wsrep_replicated | 0 |
| wsrep_replicated_bytes | 0 |
| wsrep_repl_keys | 0 |
| wsrep_repl_keys_bytes | 0 |
| wsrep_repl_data_bytes | 0 |
| wsrep_repl_other_bytes | 0 |
| wsrep_received | 10 |
| wsrep_received_bytes | 800 |
| wsrep_local_commits | 0 |
| wsrep_local_cert_failures | 0 |
| wsrep_local_replays | 0 |
| wsrep_local_send_queue | 0 |
| wsrep_local_send_queue_max | 1 |
| wsrep_local_send_queue_min | 0 |
| wsrep_local_send_queue_avg | 0.000000 |
| wsrep_local_recv_queue | 0 |
| wsrep_local_recv_queue_max | 2 |
| wsrep_local_recv_queue_min | 0 |
| wsrep_local_recv_queue_avg | 0.100000 |
| wsrep_local_cached_downto | 0 |
| wsrep_flow_control_paused_ns | 0 |
| wsrep_flow_control_paused | 0.000000 |
| wsrep_flow_control_sent | 0 |
| wsrep_flow_control_recv | 0 |
| wsrep_flow_control_interval | [ 173, 173 ] |
| wsrep_flow_control_interval_low | 173 |
| wsrep_flow_control_interval_high | 173 |
| wsrep_flow_control_status | オフ |
| wsrep_cert_deps_distance | 0.000000 |
| wsrep_apply_oooe | 0.000000 |
| wsrep_apply_oool | 0.000000 |
| wsrep_apply_window | 0.000000 |
| wsrep_commit_oooe | 0.000000 |
| wsrep_commit_oool | 0.000000 |
| wsrep_commit_window | 0.000000 |
| wsrep_local_state | 4 |
| wsrep_local_state_comment | 同期されました |
| wsrep_cert_index_size | 0 |
| wsrep_cert_bucket_count | 22 |
| wsrep_gcac​​he_pool_size | 1592 |
| wsrep_causal_reads | 0 |
| wsrep_cert_interval | 0.000000 |
| wsrep_open_transactions | 0 |
| wsrep_open_connections | 0 |
| wsrep_ist_receive_status | |
| wsrep_ist_receive_seqno_start | 0 |
| wsrep_ist_receive_seqno_current | 0 |
| wsrep_ist_receive_seqno_end | 0 |
| wsrep_incoming_addresses | 172.19.0.2:3306,172.19.0.3:3306,172.19.0.4:3306|
| wsrep_cluster_weight | 3 |
| wsrep_desync_count | 0 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | 動作中 |
| wsrep_gcomm_uuid | 11ed51e2-cedd-11e9-b362-af453a7ac074 |
| wsrep_cluster_conf_id | 3 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | 068dd5e8-cedd-11e9-904d-466e75bd8fe1 |
| wsrep_cluster_status | プライマリ |
| wsrep_connected | オン |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 0 |
| wsrep_provider_name | ガレラ |
| wsrep_provider_vendor | Codership Oy <[email protected]> |
| wsrep_provider_バージョン | 3.37(rff05089) |
| wsrep_ready | オン |
+----------------------------------+-------------------------------------------------+
セット内の行数は 71 行 (0.06 秒)

wsrep_incoming_addressesの値は3つのコンテナのIPアドレスであることがわかります。

| wsrep_incoming_addresses | 172.19.0.2:3306,172.19.0.3:3306,172.19.0.4:3306 |

クラスターの整合性チェック:

財産意味
wsrep_cluster_state_uuidクラスター内のすべてのノードの値は同じである必要があります。異なる値を持つノードはクラスターに接続されません。
wsrep_cluster_conf_id通常、値はすべてのノードで同じです。値が異なる場合は、ノードが一時的に「分割」されていることを意味します。ノード間のネットワーク接続が回復すると、同じ値が復元されるはずです。
wsrep_cluster_sizeこの値が予想されるノード数と一致する場合、すべてのクラスター ノードが接続されます。
wsrep_cluster_statusクラスターのステータス。「プライマリ」でない場合は、「パーティション」または「スプリット ブレイン」のブレイン分割があることを意味します。

ノードステータスチェック:

財産意味
wsrep_readyこの値がONの場合、SQLロードが受け入れられることを意味します。Offの場合は、wsrep_connectedを確認する必要があります。
wsrep_接続済み値が Off で、wsrep_ready の値も Off の場合、ノードがクラスターに接続されていないことを意味します。(wsrep_cluster_address や wsrep_cluster_name などの構成エラーが原因である可能性があります。具体的なエラーについては、エラー ログを確認してください)
wsrep_local_state_comment wsrep_connectedがオンだがwsrep_readyがオフの場合は、この項目から理由を確認できます。

レプリケーションのヘルスチェック:

財産意味
wsrep_flow_control_一時停止レプリケーションが停止した時間を示します。これは、スレーブのレイテンシによりクラスタがどれだけ遅くなったかを示します。値は0から1の間で、0に近いほど良好で、1の値はレプリケーションが完全に停止したことを示します。wsrep_slave_threadsの値を最適化して、パフォーマンスを向上させることができます。
wsrep_cert_deps_距離並列処理できるトランザクションの数。wsrep_slave_threads の値は高すぎないようにしてください。
wsrep_flow_control_sentノードがレプリケーションを停止した回数を示します
*wsrep_local_recv_queue_avgスレーブ トランザクション キューの平均長を示します。スレーブのボトルネックの兆候です。最も遅いノードは、wsrep_flow_control_sent と wsrep_local_recv_queue_avg の値が最高になります。値が低いほど良好です。

遅いネットワークの問題を検出しています:

財産意味
wsrep_local_send_queue_avgネットワークのボトルネックの兆候です。この値が高い場合、ネットワークのボトルネックが発生している可能性があります。

競合またはデッドロックの数:

財産意味
wsrep_last_committed最後にコミットされたトランザクションの数
wsrep_local_cert_failures と wsrep_local_bf_abortsロールバック、検出された競合の数

2.2 クラスタ同期の検証

ノード1にデータベーステストを作成する

mysql> データベーステストを作成します。
クエリは正常、1 行が影響を受けました (0.02 秒)

ノード 2 の表示:

mysql> データベースを表示します。
+--------------------+
| データベース |
+--------------------+
| 情報スキーマ |
|mysql |
| パフォーマンススキーマ |
|システム|
| テスト |
+--------------------+
セット内の行数は 5 です (0.00 秒)

ノード2にテーブルを作成する

mysql> テストを使用します。
データベースが変更されました
mysql> テーブル sys_user(id int 、name varchar(30)) を作成します。
クエリは正常、影響を受けた行は 0 行 (0.11 秒)

4) ノード3のテーブル構造を表示する

mysql> テストを使用します。
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。

データベースが変更されました
mysql> テーブルを表示します。
+----------------+
| テスト中のテーブル |
+----------------+
|システムユーザー|
+----------------+
セット内の 1 行 (0.00 秒)

ノード3にデータを挿入する

mysql> sys_user に値(1,'a')を挿入します。
エラー 1105 (HY000): Percona-XtraDB-Cluster は、pxc_strict_mode = ENFORCING または MASTER で明示的な主キーのないテーブル (test.sys_user) での DML コマンドの使用を禁止します。

表示された主キーがないとデータを挿入できないことがわかったので、次のテーブル構造を変更します。

テーブル sys_user を変更し、主キー (id) を追加します。

データを挿入:

mysql> sys_user に値(1,'a')を挿入します。
クエリは正常、1 行が影響を受けました (0.05 秒)

6) ノード1のテーブルデータを表示する

mysql> sys_user から * を選択します。
+----+------+
| ID | 名前 |
+----+------+
| 1 | へ |
+----+------+
セット内の 1 行 (0.00 秒)

3 つのノードのデータが正常に同期されており、すべて読み取りおよび書き込み可能であることがわかります。

2.3 データベースノード操作の追加

データベースが十分でない場合は、通常、負荷を分散するためにデータベース ノードを追加する必要があります。新しいノードを追加する操作を説明しましょう。

データボリュームの作成

docker ボリューム作成 --name v4

2) 新しいコンテナを追加する

docker run -di --name=pn4 --net=pxc-network -p 9003:3306 -v v4:/var/lib/mysql --privileged -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pn3 pxc:5.7 

今回は CLUSTER_JOIN が pn3 に結合することに注意してください。

データを表示するにはノード4を入力してください

mysql> データベースを表示します。
+--------------------+
| データベース |
+--------------------+
| 情報スキーマ |
|mysql |
| パフォーマンススキーマ |
|システム|
| テスト |
+--------------------+
セット内の行数は 5 です (0.00 秒)
mysql> テストを使用します。
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。
データベースが変更されました
mysql> テーブルを表示します。
+----------------+
| テスト中のテーブル |
+----------------+
|システムユーザー|
+----------------+
セット内の 1 行 (0.00 秒)
mysql> sys_user から * を選択します。
+----+------+
| ID | 名前 |
+----+------+
| 1 | へ |
+----+------+
セット内の 1 行 (0.00 秒)

以前のデータも自動的に同期されていることがわかります。

2.4 ダウンタイム操作

ノードpn4コンテナを閉じてダウンタイムを発生させる

ドッカー停止pn4

ノードpn2のクラスタステータスを確認する

mysql> 'wsrep%' のようなステータスを表示します。
......
| wsrep_local_state | 4 |
| wsrep_local_state_comment | 同期されました |
| wsrep_cert_index_size | 3 |
......
| wsrep_incoming_addresses | 172.19.0.4:3306,172.19.0.3:3306,172.19.0.2:3306 |

クラスターには 4 つのノードがあるはずですが、現在は 3 つだけが正常に接続されていることがわかります。

3) ノードpn2で変更操作を実行する

mysql> sys_user を更新し、name='b' を設定します (id=1)。 
クエリは正常、1 行が影響を受けました (0.00 秒)
一致した行: 1 変更された行: 1 警告: 0

ノードpn4コンテナを起動する

[root@VM_0_15_centos ~]# docker start pn4

コンテナpn4を入力して、変更操作が同期されているかどうかを確認します。

docker exec -it pn4 /usr/bin/mysql -uroot -p123456
mysql> テストを使用します。
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。

データベースが変更されました
mysql> sys_user から * を選択します。
+----+------+
| ID | 名前 |
+----+------+
| 1 | バ |
+----+------+
セット内の 1 行 (0.00 秒)

ノードがクラスターに正常に参加し、データが同期されていることがわかります。

pn4 は、指定されたマスターノードの形で PXC クラスターに入ることによって作成されたコンテナです。pn1 が自分自身をマスターノードとしてコンテナを直接起動するとどうなりますか?これを実証してみましょう:

pn1ノードをシャットダウンする

ドッカー停止pn1

pn2ノードにデータを挿入する

mysql> sys_user に値 ('2'、'c') を挿入します。
クエリは正常、1 行が影響を受けました (0.01 秒)

pn1ノードを起動する

docker スタート pn1

1分待ってコンテナの起動リストを確認します

ドッカーps -a

pn1ノードが起動されていないことが判明しました

コンテナIDイメージ......ステータス名
fa123563e787 pxc:5.7 ...... 終了しました (1) 約1分前 pn1               

エラーログを確認してください:

docker ログ pn1

例外情報は次のとおりです。

2019-09-04T07:21:56.412918Z 0 [エラー] WSREP: このノードからクラスターをブートストラップするのは安全ではない可能性があります。このノードはクラスターから最後に離れたノードではないため、すべての更新が含まれていない可能性があります。このノードでクラスターを強制的にブートストラップするには、grastate.dat ファイルを手動で編集し、safe_to_bootstrap を 1 に設定します。
2019-09-04T07:21:56.412922Z 0 [エラー] WSREP: プロバイダー/ノード (gcomm://) がクラスターとの接続を確立できませんでした (理由: 7)
2019-09-04T07:21:56.412929Z 0 [エラー] 中止しています

中国語に翻訳:

2019-09-04T07:21:56.412918Z 0 [エラー] WSREP: このノードからクラスターを起動するのは安全でない可能性があります。 これはクラスターから最後に離れたものではなく、すべての更新が含まれていない可能性があります。 このノードを使用してクラスターを強制的にブートストラップするには、grastate.dat ファイルを手動で編集し、safe_to_bootstrap を 1 に設定します。
2019-09-04T07:21:56.412922Z 0 [エラー] WSREP: プロバイダー/ノード (gcomm://) はクラスターとの接続を確立できませんでした (理由: 7)
2019-09-04T07:21:56.412929Z 0 [エラー] 中止されました

pn1 ノードはクラスターから最後に離脱したノードではなく、マスター ノードとして起動できないため、エラー メッセージは明らかです。マスター ノードとして起動する場合は、grastate.dat ファイルの safe_to_bootstrap パラメータを 1 に調整する必要があります。

ただし、クラスター内の他のノードはシャットダウンされていないため、起動したコンテナは以前のクラスターと接続されておらず、データは同期されないことに注意してください。確認してみましょう。

データボリュームが保存されているパスを表示する

docker ボリューム検査 v1
[
    {
        "作成日時": "2019-09-05T09:22:22+08:00",
        "ドライバー": "ローカル",
        「ラベル」: {},
        「マウントポイント」: 「/var/lib/docker/volumes/v1/_data」、
        「名前」: 「v1」、
        「オプション」: {},
        「スコープ」: 「ローカル」
    }
]

データボリュームディレクトリに入り、grastate.datファイルがあるかどうかを確認します。

[root@VM_0_15_centos ~]# cd /var/lib/docker/volumes/v1/_data
[root@VM_0_15_centos _data]# ll
合計 323444
-rw-r----- 1 1001 1001 56 9月 5 08:34 auto.cnf
-rw------- 1 1001 1001 1680 9月5日 08:34 ca-key.pem
-rw-r--r-- 1 1001 1001 1120 9月5日 08:34 ca.pem
-rw-r--r-- 1 1001 1001 1120 9月5日 08:34 client-cert.pem
-rw------- 1 1001 1001 1676 9月5日 08:34 クライアントキー.pem
-rw-r----- 1 1001 1001 2 9月5日 08:34 fa123563e787.pid
-rw-r----- 1 1001 1001 134219048 9月5日 09:22 galera.cache
-rw-r----- 1 1001 1001 113 9月5日 09:21 grastate.dat
-rw-r----- 1 1001 1001 1300 9月5日 08:34 ib_buffer_pool
-rw-r----- 1 1001 1001 79691776 9月5日 09:15 ibdata1
-rw-r----- 1 1001 1001 50331648 9月5日 09:15 ib_logfile0
-rw-r----- 1 1001 1001 50331648 9月5日 08:34 ib_logfile1
-rw-r----- 1 1001 1001 12582912 9月5日 08:38 ibtmp1
-rw-r----- 1 1001 1001 34751 9月5日 08:38 innobackup.backup.log
drwxr-x--- 2 1001 1001 4096 9月5日 08:34 mysql
drwxr-x--- 2 1001 1001 4096 9月5日 08:34 performance_schema
-rw------- 1 1001 1001 1676 9月5日 08:34 private_key.pem
-rw-r--r-- 1 1001 1001 452 9月5日 08:34 public_key.pem
-rw-r--r-- 1 1001 1001 1120 9月5日 08:34 server-cert.pem
-rw------- 1 1001 1001 1676 9月5日 08:34 server-key.pem
drwxr-x--- 2 1001 1001 12288 9月5日 08:34 sys
drwxr-x--- 2 1001 1001 4096 9月5日 09:07 テスト
-rw-r--r-- 1 1001 1001 143 9月5日 09:22 version_info
-rw-r----- 1 1001 1001 3932160 9月5日 09:15 xb_doublewrite

ファイルの編集

vim グラステート.dat

safe_to_bootstrapパラメータ値を1に変更し、保存して終了します。

# GALERA 保存された状態
バージョン: 2.1
ユーザID: 068dd5e8-cedd-11e9-904d-466e75bd8fe1
シーケンス番号: 20
ブートストラップに安全: 1

pn1コンテナを再起動します

docker スタート pn1

コンテナに入り、データを表示する

docker exec -it pn1 /usr/bin/mysql -uroot -p123456
mysql> テストを使用します。
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。

データベースが変更されました
mysql> sys_user から * を選択します。
+----+------+
| ID | 名前 |
+----+------+
| 1 | バ |
+----+------+
セット内の1行(0.01秒)

データが同期されていないことがわかりました。pn1 ノードをクラスターに追加するにはどうすればよいでしょうか?

pn1 コンテナを直接削除し、ノードを追加してコンテナを再作成することができます。また、以前にコンテナ データをデータ ボリュームにマウントしたため、データ損失のリスクはありません。実行してみましょう。

pn1コンテナを削除する

ドッカー停止pn1
docker rm pn1

スレーブノードとしてクラスターに参加する

docker run -di --name=pn1 --net=pxc-network -p 9000:3306 -v v1:/var/lib/mysql --privileged -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=cluster1 -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=pn2 pxc:5.7  

コンテナが初期化されるまで待ちます

3) コンテナに入り、データが同期されているかどうかを確認します

docker exec -it pn1 /usr/bin/mysql -uroot -p123456
mysql> テストを使用します。
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。

データベースが変更されました
mysql> sys_user から * を選択します。
+----+------+
| ID | 名前 |
+----+------+
| 1 | バ |
| 2 | へ |
+----+------+
セット内の 2 行 (0.00 秒)

データが同期されました。

MySQL PXC クラスターの構築手順に関するこの記事はこれで終わりです。MySQL PXC クラスターの構築の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL 高可用性クラスタの展開とフェイルオーバーの実装
  • MySQL 5.7 クラスタ構成手順
  • MySQLクラスタのDockerデプロイメントの実装
  • クラスタrpmを使用してMySQLをインストールするための詳細な手順
  • MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装
  • Docker を使用して MySQL 5.7 および 8.0 マスター スレーブ クラスターをデプロイする方法
  • MySQLのクラスタモードでのgalera-clusterのデプロイメントの詳細説明
  • Docker で MySQL クラスターを構築する方法の例
  • MySQL Cluster 基本導入チュートリアル
  • MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

<<:  Vue を通じて QR コードスキャン機能を実装する

>>:  Linux で ss コマンドと zabbix を組み合わせてソケットを監視する方法の詳細な説明

推薦する

Apache Web サーバーを使用して 2 つ以上のサイトを構成する方法

人気があり強力な Apache Web サーバーで 2 つ以上のサイトをホストする方法。前回の記事で...

IEではボタンが両側に伸びる

ボタン (input, button) を記述すると、IE では次のようになります。単語数が増えると...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

RocketMQ の Docker インストールとインストール中に発生した問題の解決策

目次rocketmqイメージを取得する名前rvを作成する単一のブローカーノードを作成するrocket...

Nginxを使用してストリーミングメディアサーバーを構築し、ライブブロードキャスト機能を実現する

前面に書かれた近年、ライブストリーミング業界は非常に人気が高まっています。伝統的な業界でのライブスト...

JSはショッピングカート内の商品の合計金額の計算を実現します

JSはショッピングカート内の商品の合計金額を計算して参考とします。具体的な内容は以下のとおりです。質...

アイデアコンパイラvueインデントエラー問題シナリオの分析

プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...

CentOS 7.5 が Varnish キャッシュサーバー機能を導入

1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...

このような大画面のデジタルスクロール効果が必要になる場合があります

大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...

HTMLとは何ですか?

HTML 開発の歴史: HTML は英語で Hypertext Marked Language の...

Windows システムに mysql5.7.21 をインストールするための詳細なチュートリアル

MySQL インストーラーは、MySQL ソフトウェアのあらゆるニーズに対応する、使いやすいウィザー...

MacにMySQLをインストールするときに忘れたパスワードを変更する方法

1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...

「いいね!」機能では MySQL と Redis のどちらを使用すればよいでしょうか?

目次1. 初心者が陥りがちな間違い2. Iteratorのremove()メソッドを使用する3. f...

MySQLでconcat関数を使用する方法

以下のように表示されます。 //managefee_managefee テーブルの年と月を照会し、c...