Creating your first cluster
===========================

Docker Composeを使用してローカルクラスターを作成し、 EDB Postgres
DistributedPGDの特徴と機能について学びます。

前提条件
--------

- ローカルマシンにインストールされているDockerおよびDocker Compose。

PGD Dockerクイックスタートキットのインストール
----------------------------------------------

最初のPGDクラスターを作成するには、EDBが提供するDocker
Composeファイルを使用して、3つのノードでローカルクラスターをセットアップします。

1. ローカルマシンにDockerおよびDocker
   Composeがインストールされていることを確認します。
   `Docker installation guide <https://docs.docker.com/get-docker/>`_ をまだ行っていない場合は、フォローできます。

2. ターミナルを開き、dockerをインストールしたマシンで、PGDクラスターの新しいディレクトリを作成します。例

.. code:: bash

     mkdir pgd-cluster
     cd pgd-cluster

3. PGD Docker Composeファイルをダウンロードします。

.. code:: bash

      curl -L https://enterprisedb.com/docs/pgd/latest/quickstart/assets/pgd_quickstart.sh | bash

このコマンドは、 PGD
Dockerクイックスタートキットをダウンロードします。これには、Docker
ComposeファイルおよびPGDを開始するために必要なその他のファイルが含まれています。

4. ダウンロードが完了したら、PGDクラスターの環境を準備します。

.. code:: bash

     ./qs.sh prepare

このコマンドは、PGDクラスターに必要なディレクトリとファイルを作成します。

5. PGDクラスターのDockerイメージをビルドします。

.. code:: bash

     export EDB_SUBSCRIPTION_TOKEN=...
     ./qs.sh build

このコマンドは、PGDクイックスタートクラスターに必要なDockerイメージをビルドします。

6. イメージがビルドされたら、PGDクラスターを起動します。

.. code:: bash

     ./qs.sh start

このコマンドは、Dockerコンテナを起動し、デフォルト構成でローカルクラスターを作成します。

PGDクラスターへのアクセス
-------------------------

1. コンテナが起動して実行されたら、PGDクラスターにアクセスします。

.. code:: bash

     docker compose exec host-1 psql pgddb

このコマンドは、 ``psql``
コマンドラインインターフェイスを使用して、クラスターの最初のノードに接続します。

メンテナンスおよび管理タスクのために、最初のノードを介してデータベースに接続します。

1. アプリケーションとユーザーにアクセスするには、接続マネージャーを使用して接続します。デフォルトでは、クラスター内のすべてのホストのTCPポート6432で実行されています。次のコマンドを使用して、クラスター内の書き込みリーダーノードに接続します。

.. code:: bash

     docker compose exec host-1 psql -h host-1 -p 6432 pgddb

``-h host-1``
は、クラスター内のホストの名前に置き換えます。これらはすべて接続マネージャーを実行します。

ローカルマシンにpsqlクライアントをインストールしている場合は、次のコマンドを使用してクラスターに接続することもできます。

.. code:: bash

     export PGPASSWORD=secret
     psql -h localhost -p 6432 -U postgres pgddb

このコマンドは、ポート6432のhost-3コンテナで実行されている接続マネージャーに接続します。これは、クラスター内の書き込みリーダーノードにルーティングされます。

.. code:: sql

     select node_name from bdr.local_node_summary;
     __OUTPUT__
       node_name
       -----------
       node-1
       (1 row)

1. コンテナの外部からPGD CLIを使用するには、次のコマンドを実行します。

.. code:: bash

     docker compose exec host-1 pgd nodes list 
     __OUTPUT__
     Node Name | Group Name | Node Kind | Join State | Node Status
     -----------+------------+-----------+------------+-------------
     node-1    | group-1    | data      | ACTIVE     | Up
     node-2    | group-1    | data      | ACTIVE     | Up
     node-3    | group-1    | data      | ACTIVE     | Up

このコマンドは、クラスター内のノードとそのステータスをリストします。

1. または、host-1コンテナでシェルを開き、 pgdコマンドを直接実行します。

.. code:: bash

     docker compose exec host-1 bash
     pgd nodes list
     __OUTPUT__
     Node Name | Group Name | Node Kind | Join State | Node Status
     -----------+------------+-----------+------------+-------------
     node-1    | group-1    | data      | ACTIVE     | Up
     node-2    | group-1    | data      | ACTIVE     | Up
     node-3    | group-1    | data      | ACTIVE     | Up

このコマンドにより、PGD
CLIにアクセスし、host-1コンテナで直接PGDコマンドを実行できます。

次のステップ
------------

- :ref:`Working with SQL and the PGD cluster <Working with SQL and the PGD cluster>` 
  SQLコマンドを使用してクラスターに接続および対話する方法を理解する。

- ``COPY`` コマンドまたは\ ``pg_dump`` および\ ``pg_restore``
  を使用してクラスターに :ref:`Loading data into your PGD Cluster <Loading data into your PGD Cluster>` をインストールします。

- :ref:`Using PGD CLI <Using PGD CLI>`  クラスターを監視および管理します。
