从小白到专家 PostgreSQL手艺大讲堂 - Part 4:PG实例构造
PostgreSQL从小白到专家,是从进门逐步才能提拔的一个系列教程,内容包罗对PG根底的认知、包罗安拆利用、包罗角色权限、包罗庇护治理、、等内容,期看对热爱PG、进修PG的同窗们有搀扶帮助,欢送继续存眷CUUG PG手艺大讲堂。
Part 3:PG实例构造
内容1:PostgreSQL实例简介
内容2:PostgreSQL初始化参数文件
内容3:PostgreSQL内存构造
内容4:PostgreSQL后台历程
1.1、PG实例简介
PostgreSQL实例:用来拜候PostgreSQL数据库
一个实例对应一个数据库集簇
由内存和后台历程构成
1.2、成立一个毗连和创建一个会话
毗连到一个PostgreSQL实例成立一个用户毗连
创建一个会话
2、初始化参数文件
两品种型的参数显式:在文件中对参数停止设置
隐式:文件中没有设置,利用Postgres默认值
能够存在多个初始化参数文件静态参数文件:postgresql.conf
动态参数文件:postgresql.auto.conf
可选参数文件:postgresql.conf.user
读取挨次postgresql.conf
postgresql.auto.conf
postgresql.conf.user
2.1、postgresql.conf参数文件
postgresql.conf参数文件文本文件
利用操做系统编纂器修改
手动修改
更改将鄙人次启动时生效
仅在实例启动期间读取
默认位置为$PGDATA
2.2、postgresql.auto.conf参数文件
postgresql.auto.conf参数文件文本文件
由Postgres办事器庇护
撑持用文本编纂器修改(不选举)
ALTER SYSTEM号令修改的参数保留在该文件
可以在封闭和启动期间继续停止更改
能够实现自我调整参数值
默认位置为$PGDATA
改动一个参数的值,会在文件中主动添加参数
ALTER SYSTEM SET archive_mode = on;
恢复一个参数默认值,会在文件中主动删除参数
ALTER SYSTEM RESET archive_mode;
2.3、参数生效前提
参数生效前提 sighup:表达需要超等治理员修改,reload就可以生效。
superuser:表达利用超等治理员能够为通俗用户、数据库、或者超等治理员本身修改。(注:有些参数是能够针对用户、数据库、实例)
postmaster:表达需要超等治理员修改,需要重启才气够生效。
user:表达通俗用户能够修改该参数值,立即生效。
3、Memory Architecture
PostgreSQL中的内存架构能够分为两大类:Local memory area –由每个后端历程分配给本身利用
Shared memory area –由PostgreSQL办事器的所有历程利用
3.1、Memory Architecture
Local Memory Area:
Shared Memory Area:
4、Process Architecture
PostgreSQL历程构造:
postgres server process :postgres办事器历程是与数据库群集治理相关的所有历程的父历程。
backend process:每个后端历程处置毗连的客户端发出的所有查询和语句。
background processes:各类后台历程施行用于数据库治理的每个特征的历程(例如清空和查抄点历程)。
replication associated processes:在与复造相联系关系的历程中,它们施行流式复造。
background worker process-:在版本9.3撑持的后台工做历程中,它能够施行用户实现的任何处置。
PostgreSQL历程构造:
4.1、Postgres Server Process
Postgres Server Processpostgres办事器历程是PostgreSQL办事器中所有历程的父历程。早期版本它被称为“postmaster”。
pg_ctl适用法式启动该历程,然后派生出各个后台历程。同时分配共享内存区域。
一个postgres办事器历程侦听一个收集端口,默认端口为5432。
4.2、Backend Processes
Backend Processes后端历程(也称为postgres)由postgres办事器历程启动,并处置一个毗连的客户端发出的所有查询。
PostgreSQL容许多个客户端同时毗连;设置装备摆设参数max_connections掌握客户端的更大数量。
Background Processes
postgres pstree -p 9687-+= 00001 root /sbin/launchd\-+- 09687 postgres /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data |--= 09688 postgres postgres: logger process|--= 09690 postgres postgres: checkpointer process |--= 09691 postgres postgres: writer process|--= 09692 postgres postgres: wal writer process|--= 09693 postgres postgres: autovacuum launcher process |--= 09694 postgres postgres: archiver process|--= 09695 postgres postgres: stats collector process|--= 09697 postgres postgres: postgres sampledb 192.168.1.100(54924) idle\--= 09717 postgres postgres: postgres sampledb 192.168.1.100(54964) idle in transaction
相关阅读:
从小白到专家 PG手艺大讲堂 - Part 1:PG简介
从小白到专家 PG手艺大讲堂 - Part 2:PG源代码安拆
从小白到专家 PG手艺大讲堂 - Part 3:PG建库与利用
以上就是Part 4 - PG实例构造 的内容,各人操练的时候假设碰着困难,能够进群一路切磋,QQ交换群:752027153
假设单看文档不太懂,能够加进钉钉群,以后可能会有公开课专门讲解此内容,钉钉交换群:35822460