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