PostgreSQL 数据库初始化
2018-07-16 本文已影响0人
椟夜
按照先后顺序创建
- 创建全局数据库(GLOBAL)
- 全局数据库中存储与数据库集群相关的信息,例如集群中的数据库、用户、 角色等。
- 用户不能连接全局数据库。
- 全局数据库中的数据操作由DBMS自动完成
- 创建临时数据库(TEMPDB)
- 临时数据库用于存储DBMS在运行过程中产生的临时信息,例如排序、创建hash表等。
- 用户不能连接临时数据库,临时数据库中的数据操作由DBMS自动完成。
- 创建模板数据库(TEMPLATE0和TEMPLATE1)
- 模板数据库中存储了每个数据库的系统表信息,它是创建一个新数据库的样板。
- Template0 : 最原始的模板库,不允许建立数据库连接。
- Template1 : 创建其他数据库使用的模板数据库,可以进行定制。
-
创建样例数据库(SAMPLE)
-
创建用户数据库(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