53.15. pg_database #

pg_databaseカタログには使用可能なデータベースの情報が格納されます。 データベースはCREATE DATABASEコマンドで作成されます。 いくつかのパラメータの詳細については第23章を参照してください。

ほとんどのシステムカタログとは異なり、pg_databaseはクラスタにおける全てのデータベースにわたって共有されます。 データベース毎に1つではなく、クラスタ毎にたった1つだけpg_databaseのコピーが存在します。

表53.15 pg_databaseの列

列 型

説明

oid oid

行識別子

datname name

データベース名

datdba oid (参照先 pg_authid.oid

データベースの所有者。通常はそのデータベースの作成者

encoding int4

このデータベースの文字エンコード(pg_encoding_to_char()で、この番号からエンコード方式名称に変換できます)

datlocprovider char

このデータベースのロケールプロバイダ: c = libc、 i = icu

datistemplate bool

trueの場合、このデータベースはどのユーザでもCREATEDBを使って複製できます。 falseの場合、スーパーユーザまたはデータベースの所有者だけが複製できます。

datallowconn bool

falseの場合、このデータベースには誰も接続できません。 これはtemplate0データベースが変更されることを防ぐために使用されます。

datconnlimit int4

このデータベースに対する同時のコネクションの最大数を設定します。 -1は無制限を意味し、-2はデータベースが無効であることを示します。

datfrozenxid xid

このデータベースの中で、この値よりも前のトランザクションIDは、永続的な(凍結された)トランザクションIDを持つように変更されています。 これは、このデータベースに対して、トランザクションID周回を防ぎ、かつ、pg_xactを縮小させることを目的としたバキュームを行うかどうかを追跡するために使用されます。 これはテーブル毎のpg_class.relfrozenxid値の最小値になります。

datminmxid xid

このデータベース内のトランザクションIDで置換される前のすべてのマルチトランザクションID。 これは、トランザクションIDの周回問題を防ぐ、またはpg_multixactを縮小させるためにデータベースをバキュームする必要があるかどうかを追跡するために使用されます。 これはテーブル毎のpg_class.relminmxidの最小値です。

dattablespace oid (参照先 pg_tablespace.oid

データベース用のデフォルトテーブル空間。 このデータベース内でpg_class.reltablespaceがゼロであるすべてのテーブルは、このテーブル空間に格納されます。 特に、共有されていないすべてのシステムカタログはこのテーブル空間にあります。

datcollate text

このデータベースのLC_COLLATE

datctype text

このデータベースのLC_CTYPE

daticulocale text

このデータベースのICUロケールID

daticurules text

このデータベースのICU照合規則

datcollversion text

この照合順序に対する提供者固有のバージョンです。 これはデータベースが作成された時に記録され、データの破壊につながりかねない照合順序定義の変更を検知するために使用時に検査されます。

datacl aclitem[]

アクセス権限。 詳細は5.7を参照してください