Creating Postgres tablespaces

Creating Postgres tablespaces#

デプロイメント中にPostgresテーブルスペースを作成するには、 config.ymlのcluster_vars または特定のインスタンスのvars の下のpostgres_tablespaces に名前と場所を定義します。

volume_for: postgres_tablespace セットとtablespace_name を定義して Filesystem configuration を実行すると、それらはデフォルトエントリとしてpostgres_tablespaces に追加されます。

cluster_vars:
  postgres_tablespaces:
    explicit:
      location: /some/path

instances:

- Name: example
  …
  volumes:
  - device_name: /dev/xvdh
    …
    vars:
      volume_for: postgres_tablespace
      tablespace_name: implicit

上記の例では、2つのテーブルスペースを作成します。明示的 /some/path と暗黙的 ボリュームの別のマウントポイントを指定しない限り、デフォルトで /opt/postgres/tablespaces/implicit/tablespace_data に。

すべてのpostgres_tablespace ボリュームにはtablespace_name を定義する必要があります。テーブルスペースの場所は、ボリュームのマウントポイントから取得されます。

postgres_tablespaces のすべてのエントリは、表領域名をキーとしてとそのlocation を指定する必要があります。テーブルスペースの場所を明示的に指定する場合は、PGDATA内にテーブルスペースを置かず、ボリュームマウントポイントをテーブルスペースの場所として直接使用しないでください。lost+found は、一部のツールを混乱させて、ディレクトリが空でないと判断します。

デフォルトでは、テーブルスペースowner はpostgres ですが、任意の有効なユーザー名に設定できます Creating Postgres users のユーザー

この時点で作成されています)。

ストリーミングレプリカには、上流のインスタンスと同じpostgres_tablespace ボリュームとpostgres_tablespaces 設定が必要です

Creating Postgres databases でデータベースのデフォルトの表領域を設定できます。