71

私はデータベースに非常に慣れていないので、あまり取り組んでいません。ここで、データベースクラスターという用語を理解したいと思います。私はたくさんグーグルで検索し、多くの有用なリンクを見つけましたが、それらを理解することができません-おそらく私はデータベースについての基本的な知識がほとんどなく、またそれらは非常に技術的な言語でした。

これらの点についてアドバイスが必要です。

  1. PostgreSQLのデータベースクラスターとは何ですか?
  2. PostgreSQLでクラスターを作成するにはどうすればよいですか?
4

2 に答える 2

142

PostgreSQL データベースの「クラスター」は、ポストマスターと補助プロセスのグループであり、すべてが 1 つ以上のデータベースを含む共有データ ディレクトリを管理します。

PostgreSQL の「クラスター」という用語は歴史的な癖*であり、「コンピューティング クラスター」の一般的な意味とは完全に異なります。「コンピューティング クラスター」は通常、より高いパフォーマンスや可用性を達成するために連携して動作するコンピューターのグループを指します。CLUSTERまた、テーブルの整理に関するPostgreSQL コマンドとは無関係です。


これを読んでいるということは、実際には高可用性、レプリケーション、またはプーリングに関する情報を探している可能性があります。その場合は、レプリケーション、クラスタリング、および高可用性の wiki 記事と PostgreSQL マニュアルの高可用性セクションを読んでから、ツールを調べてください。repmgrのように。


通常、PostgreSQL をインストールすると、クラスタが作成されます。通常、インストールによってinitdb新しいクラスターが作成されます。基本ユーザーまたは中級ユーザーがクラスターを作成したり、複数のクラスターを管理したりする必要があることは非常にまれであるため、これを行う理由と、解決しようとしている根本的な問題は何かを説明すると役立ちます。ユーザー マニュアルでは、ソースから PostgreSQL をインストールすることを想定しており、実際にそれを行う人は比較的少ないため、おそらくこれをより適切に説明できます。

各クラスターのデータ ディレクトリはinitdb、システム サービス (オペレーティング システムとバージョンに応じて、Windows サービス、、、、など) を介して、または を介し​​て直接launchd開始initupstartれるpostmaster で作成および管理されます。systemdpg_ctl

クラスターには、組み込みのデータベースtemplate0template1ありpostgresます。他のデータベースはユーザーによって作成されます。

クラスターのポストマスターは、tcp ポートをリッスンして着信接続を受け入れ、それらをワーカー バックエンドに渡します。特定のポートで実行できる postmaster は 1 つのみであるため、各クラスタには異なるポートが必要です。

PostgreSQL の構造については、この以前の回答で詳しく説明しました。小見出し「リレーション?スキーマ?ハァッ?」を参照してください。

Pg でクラスターを「作成」する方法は、実行方法に完全に依存します。あなたが尋ねているので、 を使用する Ubuntu システムを使用していると思わpg_wrapperpg_wrapperますpg_createcluster


* PostgreSQL 用語の「クラスター」と「クラスター」という用語の一般的な使用法との混同は、特に PostgreSQL インスタンスのクラスター化について議論する場合に、紛らわしく、残念な歴史的な奇妙さです。PostgreSQL クラスターのクラスターを持つことができますが、これは苦痛です。

于 2012-10-16T05:44:49.657 に答える