课程1、PostgreSQL安装与管理
课程2、PostgreSQL数据库SQL基础
课程3、PostgreSQL表详解
课程4、PostgreSQL索引详解
课程5、PostgreSQL对象管理
课程6、PostgreSQL安全管理
课程7、PostgreSQL并发控制
文档资料
想要理解PostgreSQL的数据库结构,需要先了解一些重要的概念。
数据库相关概念:
PostgreSQL由一系列数据库组成。一套PostgreSQL程序称之为一个数据库群集。
当initdb()命令执行后,template0 , template1 , 和postgres数据库被创建。
template0和template1数据库是创建用户数据库时使用的模版数据库,他们包含系统元数据表。
initdb()刚完成后,template0和template1数据库中的表是一样的。但是template1数据库可以根据用户需要创建对象。
用户数据库是通过克隆template1数据库来创建的;
表空间相关概念:
initdb()后马上创建pg_default和pg_global表空间。
建表时如果没有指定特定的表空间,表默认被存在pg_default表空间中。
用于管理整个数据库集群的表默认被存储在pg_global表空间中。
pg_default表空间的物理位置为$PGDATA\base目录。
pg_global表空间的物理位置为$PGDATA\global目录。
一个表空间可以被多个数据库同时使用。此时,每一个数据库都会在表空间路径下创建为一个新的子路径。
创建一个用户表空间会在$PGDATA\pg_tblspc目录下面创建一个软连接,连接到表空间制定的目录位置。
表相关概念:
每个表有三个数据文件。
一个文件用于存储数据,文件名是表的OID。
一个文件用于管理表的空闲空间,文件名是OID_fsm。
一个文件用于管理表的块是否可见,文件名是OID_vm。
索引没有_vm文件,只有OID和OID_fsm两个文件
创建用户
id postgres -查看是否有postgres用户
groupadd postgres -添加postgres组
useradd -g postgres postgres -添加postgres用户
passwd postgres -修改postgres密码
mkdir -p /data/postgres/13.2/ -创建数据库目录
chown -R postgres:postgres /data/ -修改数据库目录权限
修改环境变量
目的是为了不需要指定可执行文件(如psql、pg_ctl等)的绝对路径
修改postgres用户的~/.bash_profile,也可以直接修改~/.bashrc
PATH=xxx:/data/postgres/13.2/bin
PGDATA=/data/postgres/13.2/data
export PATH
export PGDATA
source ~/.bashrc
执行psql验证环境变量修改生效
如何启停数据库
ps -ef | grep postges -检查数据库是否运行
pg_ctl stop -m fast -停止数据库
pg_ctl start -D /data/postgres/13/2/data -l ~/startup.log -启动数据库
pg_ctl status -检查数据库状态