PostgreSQL データベースの「クラスター」は、ポストマスターと補助プロセスのグループであり、すべてが 1 つ以上のデータベースを含む共有データ ディレクトリを管理します。
PostgreSQL の「クラスター」という用語は歴史的な癖*であり、「コンピューティング クラスター」の一般的な意味とは完全に異なります。「コンピューティング クラスター」は通常、より高いパフォーマンスや可用性を達成するために連携して動作するコンピューターのグループを指します。CLUSTER
また、テーブルの整理に関するPostgreSQL コマンドとは無関係です。
これを読んでいるということは、実際には高可用性、レプリケーション、またはプーリングに関する情報を探している可能性があります。その場合は、レプリケーション、クラスタリング、および高可用性の wiki 記事と PostgreSQL マニュアルの高可用性セクションを読んでから、ツールを調べてください。repmgrのように。
通常、PostgreSQL をインストールすると、クラスタが作成されます。通常、インストールによってinitdb
新しいクラスターが作成されます。基本ユーザーまたは中級ユーザーがクラスターを作成したり、複数のクラスターを管理したりする必要があることは非常にまれであるため、これを行う理由と、解決しようとしている根本的な問題は何かを説明すると役立ちます。ユーザー マニュアルでは、ソースから PostgreSQL をインストールすることを想定しており、実際にそれを行う人は比較的少ないため、おそらくこれをより適切に説明できます。
各クラスターのデータ ディレクトリはinitdb
、システム サービス (オペレーティング システムとバージョンに応じて、Windows サービス、、、、など) を介して、または を介して直接launchd
開始init
さupstart
れるpostmaster で作成および管理されます。systemd
pg_ctl
クラスターには、組み込みのデータベースtemplate0
がtemplate1
ありpostgres
ます。他のデータベースはユーザーによって作成されます。
クラスターのポストマスターは、tcp ポートをリッスンして着信接続を受け入れ、それらをワーカー バックエンドに渡します。特定のポートで実行できる postmaster は 1 つのみであるため、各クラスタには異なるポートが必要です。
PostgreSQL の構造については、この以前の回答で詳しく説明しました。小見出し「リレーション?スキーマ?ハァッ?」を参照してください。
Pg でクラスターを「作成」する方法は、実行方法に完全に依存します。あなたが尋ねているので、 を使用する Ubuntu システムを使用していると思わpg_wrapper
れpg_wrapper
ますpg_createcluster
。
* PostgreSQL 用語の「クラスター」と「クラスター」という用語の一般的な使用法との混同は、特に PostgreSQL インスタンスのクラスター化について議論する場合に、紛らわしく、残念な歴史的な奇妙さです。PostgreSQL クラスターのクラスターを持つことができますが、これは苦痛です。