有一些特别的schema 是系统内置的,比如public、pg_catalog、information_schema、pg_toast等。其中,PG元数据信息和表都放置在pg_catalog schema中,包括系统表 、索引 、内置数据类型、内置函数等。对于系统表,pg_class,其中储存了表的描述信息;pg_database存储PG中已经创建的数据库的信息;pg_am用于存储表访问方法的...
postgres=# \l --查看所有数据库 postgres=# select pg_database_size('hwb'); --查看单个数据库的大小 postgres=# select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; --查看所有数据库的大小 postgres=# select pg_size_pretty(pg_database_size('hwb')...
CREATE DATABASE 对于某个具体的数据库,在PGDATA/base里都有一个对应的子目录,子目录名字是该数据库在系统表pg_database里的OID,刚启动时,底下有三个目录。 数量上是对的上的,我们新建一个database,base下多了个目录16384。 CREATEDATABASEmydatabase; 基本也可以判断16384就是mydatabase的OID。 访问16384目录,...
系统中每创建一个database都会在pg_database中插入一行,这一行对应的oid就是数据库的oid,删除数据库也会删除对应的行 和大多数系统表不同的是,在一个集群里该表是所有数据库共享的,即每个集群只有一份pg_database拷贝,而不是每个数据库一份。 关键字段含义 pg_class pg_class存储表以及类似表的数据库对象信息...
1 查看数据库的信息,从 pg_database 中可以看到数据库的信息,其中 pg_database 是可以进行修改的,可以限制对整体库的写入,例如你可以把你自己定义的库作为模板库 等等 SELECT oid,* FROM pg_database WHERE datname = 'dvdrental'; 2 select * from pg_stat_database; ...
一、概述: 数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该
了解过PostgreSQL的同学都知道;我们通过系统表pg_database可以查到数据库,通过系统表pg_class可以查到数据库object。 postgres=# select datname, oid from pg_database where datname = 'postgres'; datname | oid ---+--- postgres | 13543 (1 row) postgres...
global目录存储pg_control及数据库集群维度的数据库及其关系,非客户维度的数据,例如pg_database、pg_class等。目录内的文件结构和base是一致的。 global目录文件结构如下图所示。 2.pg_control pg_control文件记录数据库集群控制信息,包括initdb初始化、WAL和checkpoint的信息。
数据库的oid存储在pg_database中。 数据库的oid与对应的数据库目录名是一致的 2、数据库集簇物理结构 每个数据库是base子目录下的子目录;数据库目录名与相应的oid相同。例如,当数据库sampledb的OID为16384时,其子目录名为16384。 cd $PGDATA ls -ld base/16384 ...
PostgreSQL 中使用 aclitem 来表示一个具体的数据库对象上的权限。对于 database 和 schema,aclitem 存储在 pg_database.datacl 和 pg_namespace.nspacl 中,对于 table,view 等其他数据库对象,pg_class.relacl 中保存了 aclitem 的一个 list。对于列级别的权限,aclitem 将保存在 pg_attribute.attacl 中。