Step 6 - Checking the cluster
=============================

クラスターの確認
----------------

クラスターが起動して実行されたら、いくつかの基本的なチェックを実行して、どの程度効率的に複製されているかを確認することは価値があります。

次の例は、これを行うための1つの簡単な方法を示していますが、実行するテストがユースケースに適切であることを確認する必要があります。

-  | **準備**

-  クラスターの準備ができていることを確認します。

-  host-one/node-oneのデータベースにログインします。

-  ``select bdr.wait_slot_confirm_lsn(NULL, NULL);`` を実行します。

-  クエリーが返されると、クラスターの準備が整います。

-  **データを作成する**
   クラスターがレプリケートしていることをテストする最も簡単な方法は、1つのノードにログインし、テーブルを作成し、それに値を設定することです。
   - ノード1で、テーブルを作成します。

.. code:: sql

   CREATE TABLE quicktest ( id SERIAL PRIMARY KEY, value INT ); 

-  ノード1で、テーブルにデータを入力します。

.. code:: sql

   INSERT INTO quicktest (value) SELECT random()*10000 FROM generate_series(1,10000);

-  ノード1で、パフォーマンスを監視します。

.. code:: sql

   select * from bdr.node_replication_rates;

-  ノード1で、値列の合計を取得しますチェック用。

.. code:: sql

        select COUNT(*),SUM(value) from quicktest;

-  **データの確認** - ノード2にログインします。
   host-two/node-twoでデータベースにログインします。

-  ノード2で、値列の合計を取得しますチェック用。

.. code:: sql

    select COUNT(*),SUM(value) from quicktest;

-  node-one.

   -  の結果と比較します node-threeにログインします。
      host-three/node-three.
   -  のデータベースにログインします。
      node-threeで、value列の合計を取得しますチェック用。

.. code:: sql

   select COUNT(*),SUM(value) from quicktest;

-  ノード1およびノード2の結果と比較します。

実際の例
--------

準備
^^^^

host-oneのPostgresサーバーにログインします。

::

   ssh admin@host-one
   sudo -iu enterprisedb psql bdrdb

これは、 PGDのノード1への接続です。

クラスターの準備ができていることを確認します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

クラスターの準備ができていることを確認するには、次のコマンドを実行します。

::

   select bdr.wait_slot_confirm_lsn(NULL, NULL)

このクエリは、クラスターが初期化でビジーな間はブロックし、クラスターの準備が整うと結果を返します。

別のウィンドウで、host-twoのPostgresサーバーにログインします。

::

   ssh admin@host-two
   sudo -iu enterprisedb psql bdrdb

データを作成する
^^^^^^^^^^^^^^^^

ノード1で、テーブルを作成します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

実行します

.. code:: sql

   CREATE TABLE quicktest ( id SERIAL PRIMARY KEY, value INT ); 

ノード1で、テーブルにデータを設定します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

::

   INSERT INTO quicktest (value) SELECT random()*10000 FROM generate_series(1,10000);

このコマンドは、10000行のランダム値のテーブルを生成します。

ノード1で、パフォーマンスを監視する
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

できるだけ早く実行します。

.. code:: sql

   select * from bdr.node_replication_rates;

このコマンドは、そのデータが他の2つのノードに複製された速度に関する統計を表示します。

.. code:: console

   bdrdb=# select * from bdr.node_replication_rates;
    peer_node_id | target_name | sent_lsn  | replay_lsn | replay_lag | replay_lag_bytes | replay_lag_size | apply_rate | catchup_interv
   al
   - -------------+-------------+-----------+------------+------------+------------------+-----------------+------------+---------------
   - --
      1954860017 | node-three  | 0/DDAA908 | 0/DDAA908  | 00:00:00   |                0 | 0 bytes         |      13682 | 00:00:00
      2299992455 | node-two    | 0/DDAA908 | 0/DDAA908  | 00:00:00   |                0 | 0 bytes         |      13763 | 00:00:00
   (2 rows)

そして、それは既に複製されています。

ノード1でチェックサムを取得します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

実行します

.. code:: sql

   select COUNT(*),SUM(value) from quicktest;

このコマンドは、生成されたデータからいくつかの値を取得します。

.. code:: sql

   bdrdb=# select COUNT(*),SUM(value) from quicktest;
   __OUTPUT__
    count  |    sum
   - -------+-----------
    100000 | 498884606
   (1 row)

データを確認する
^^^^^^^^^^^^^^^^

host-twoのPostgresサーバーにログインします
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

::

   ssh admin@host-two
   sudo -iu enterprisedb psql bdrdb

これは、 PGDのノード2への接続です。

ノード2で、チェックサムを取得します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

実行します

.. code:: sql

   select COUNT(*),SUM(value) from quicktest;

このコマンドは、生成されたデータのノード2の値を取得します。

.. code:: sql

   bdrdb=# select COUNT(*),SUM(value) from quicktest;
   __OUTPUT__
    count  |    sum
   - -------+-----------
    100000 | 498884606
   (1 row)

ノード1の結果と比較します
^^^^^^^^^^^^^^^^^^^^^^^^^

値は同じです。

ノード3でプロセスを繰り返すか、任意のノードで新しいデータを生成し、他のノードにレプリケートされるのを確認できます。

host-threeのPostgresサーバーにログインします
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

::

   ssh admin@host-two
   sudo -iu enterprisedb psql bdrdb

これは、 PGDのノード3への接続です。

ノード3で、チェックサムを取得します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

実行します

.. code:: sql

   select COUNT(*),SUM(value) from quicktest;

このコマンドは、生成されたデータのノード3の値を取得します。

.. code:: sql

   bdrdb=# select COUNT(*),SUM(value) from quicktest;
   __OUTPUT__
    count  |    sum
   - -------+-----------
    100000 | 498884606
   (1 row)

ノード1およびノード2の結果と比較します
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

値は同じです。
