3.12. pg_database

pg_database 表存储关于可用数据库的信息. 数据库是用 CREATE DATABASE创建的. 参考管理员手册获取一些参数的详细含义.

和大多数系统表不同,pg_database 是在一个集群里的所有数据库共享的∶每个集群只有一份 pg_database 拷贝,而不是每个数据库一份.

Table 3-12. pg_database 字段

名字类型引用描述
datnamename 数据库名字
datdbaint4pg_shadow.usesysid数据库所有人,通常为其创建者
encodingint4 数据库的字符/多字节编码方式
datistemplatebool  如果为真则此数据库可以用于CREATE DATABASE "TEMPLATE"子句,把新数据库创建为此数据库的克隆.
datallowconnbool  如果为假则没有人可以联接到这个数据库.这个字段用于保护 template0 数据库不被更改.
datlastsysoidoid  数据库里最后一个系统 OID; 对 pg_dump 特别有用
datvacuumxidxid  在该数据库中这个标志标记为在"已知已提交"或者"已知已退出" 之前,所有元组都以事务 ID 插入或删除.这个标志用于判断何时 提交日志空间可以循环使用.
datfrozenxidxid  在该数据库中这个标志标记为一个永久的 ("冻结(frozen)")的事务 ID 之前, 所有元组都以事务 ID 插入. 该标志可以用于检查一个数据库是否应该马上清理以避免事务 ID 重叠的问题.
datpathtext  如果该数据库存放在另外一个位置,那么这个字段记录该位置. 它要么是一个环境变量名要么是一个绝对路径,取决于它是如何输入的.
datconfigtext[] 运行时配置变量的会话缺省值
dataclaclitem[] 访问权限