PostgreSQL 数据库初始化

按照先后顺序创建

  1. 创建全局数据库(GLOBAL)
  • 全局数据库中存储与数据库集群相关的信息,例如集群中的数据库、用户、 角色等。
  • 用户不能连接全局数据库。
  • 全局数据库中的数据操作由DBMS自动完成
  1. 创建临时数据库(TEMPDB)
  • 临时数据库用于存储DBMS在运行过程中产生的临时信息,例如排序、创建hash表等。
  • 用户不能连接临时数据库,临时数据库中的数据操作由DBMS自动完成。
  1. 创建模板数据库(TEMPLATE0和TEMPLATE1)
  • 模板数据库中存储了每个数据库的系统表信息,它是创建一个新数据库的样板。
  • Template0 : 最原始的模板库,不允许建立数据库连接。
  • Template1 : 创建其他数据库使用的模板数据库,可以进行定制。
  1. 创建样例数据库(SAMPLE)

  2. 创建用户数据库(TEMPLATE2)

  • 工具使用的数据库。

表空间与数据文件对应关系

  • 新创建的数据库包括:
  • Catalog表空间 – databasename.dbf

Catalog表空间 存放系统表信息。

  • PG表空间 – Udatabasename.dbf
  • PG表空间 存放用户数据。
  • 若表空间只对应一个数据文件,该表空间中的所有对象都存储在这个数据文件中
    若表空间对应多个数据文件,可以将一个对象的数据存储在任意数据文件中,甚至同一个对象的数据可以分布在多个数据文件中。
  • Temp表空间– Tdatabasename.dbf

数据字典(系统表)

  • 数据库中的系统表存储数据库中数据的元信息,如表定义,函数定义等。
  • 数据库中的系统表以PG_开头,从存储结构上看,系统表也是普通的用户表,所不同的只是用户不能通过INSERT、UPDATE、DELETE语句对其进行修改。
  • 执行DDL语句,如CREATE TABLE、CREATE DATABASE等,系统会自动更新系统表。
  • 常用的系统表:

pg_database
pg_namespace
pg_class
pg_attribute
pg_proc
… …

更多交流加群: PostgreSQL内核开发群 876673220

You may also like...