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 でデータベースのデフォルトの表領域を設定できます。