PostgreSQL 数据库初始化

按照先后顺序创建

  1. 创建全局数据库(GLOBAL)

    • 全局数据库中存储与数据库集群相关的信息,例如集群中的数据库、用户、 角色等。
    • 用户不能连接全局数据库。
    • 全局数据库中的数据操作由DBMS自动完成
  2. 创建临时数据库(TEMPDB)

    • 临时数据库用于存储DBMS在运行过程中产生的临时信息,例如排序、创建hash表等。
    • 用户不能连接临时数据库,临时数据库中的数据操作由DBMS自动完成。
  3. 创建模板数据库(TEMPLATE0和TEMPLATE1)

    • 模板数据库中存储了每个数据库的系统表信息,它是创建一个新数据库的样板。
    • Template0 : 最原始的模板库,不允许建立数据库连接。
    • Template1 : 创建其他数据库使用的模板数据库,可以进行定制。
  4. 创建样例数据库(SAMPLE)

  5. 创建用户数据库(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
    … …

    猜你喜欢

    转载自blog.csdn.net/tencupofkaiwater/article/details/81069223