postgresql 客户端_Postgresql体系结构
Potgres(常驻进程)
管理后端的常驻进程,也称为’postmaster’。其默认监听UNIX Domain Socket和TCP/IP(Windows等,一部分的平台只监听tcp/ip)的5432端口,等待来自前端的的连接处理。监听的端口号可以在PostgreSQL的设置文件postgresql.conf里面可以改。
一旦有前端连接过来,postgres会通过fork(2)生成子进程。没有Fork(2)的windows平台的话,则利用createProcess()生成新的进程。这种情形的话,和fork(2)不同的是,父进程的数据不会被继承过来,所以需要利用共享内存把父进程的数据继承过来。
postmaster(守护进程)主要职责有:
1. 数据库的启停
2. 监听客户端连接
3. 为每个客户端连接fork单独的postgres服务进程
4. 当postgres服务进程出错时进行修复
5. 管理数据文件
6. 管理与数据库运行相关的辅助进程
Postgres(子进程)
子进程根据pg_hba.conf定义的安全策略来判断是否允许进行连接,根据策略,会拒绝某些特定的IP及网络,或者也可以只允许某些特定的用户或者对某些数据库进行连接。
Postgres会接受前端过来的查询,然后对数据库进行检索,最好把结果返回,有时也会对数据库进行更新。更新的数据同时还会记录在事务日志里面(PostgreSQL称为WAL日志),这个主要是当停电的时候,服务器当机,重新启动的时候进行恢复处理的时候使用的。另外,把日志归档保存起来,可在需要进行恢复的时候使用。在PostgreSQL 9.0以后,通过把WAL日志传送其他的postgreSQL,可以实时得进行数据库复制,这就是所谓的‘数据库复制’功能。
其他的进程
Postgres之外还有一些辅助的进程。这些进程都是由常驻postgres启动的进程。
Writer process
Writer process在适当的时间点把共享内存上的缓存写往磁盘。通过这个进程,可以防止在检查点的时候(checkpoint),大量的往磁盘写而导致性能恶化,使得服务器可以保持比较稳定的性能。Background writer起来以后就一直常驻内存,但是并非一直在工作,它会在工作一段时间后进行休眠,休眠的时间间隔通过postgresql.conf里面的参数bgwriter_delay设置,默认是200微秒。
这个进程的另外一个重要的功能是定期执行检查点(checkpoint)。
检查点的时候,会把共享内存上的缓存内容往数据库文件写,使得内存和文件的状态一致。通过这样,可以在系统崩溃的时候可以缩短从WAL恢复的时间,另外也可以防止WAL无限的增长。 可以通过postgresql.conf的checkpoint_segments、checkpoint_timeout指定执行检查点的时间间隔。
WAL writer process
WAL writer process把共享内存上的WAL缓存在适当的时间点往磁盘写,通过这样,可以减轻后端进程在写自己的WAL缓存时的压力,提高性能。另外,非同步提交设为true的时候,可以保证在一定的时间间隔内,把WAL缓存上的内容写入WAL日志文件。
Archive process
Archive process把WAL日志转移到归档日志里。如果保存了基础备份以及归档日志,即使实在磁盘完全损坏的时候,也可以回复数据库到最新的状态。
stats collector process
统计信息的收集进程。收集好统计表的访问次数,磁盘的访问次数等信息。收集到的信息除了能被autovaccum利用,还可以给其他数据库管理员作为数据库管理的参考信息。
Logger process
把postgresql的活动状态写到日志信息文件(并非事务日志),在指定的时间间隔里面,对日志文件进行rotate.
Autovacuum启动进程
autovacuum launcher process是依赖于postmaster间接启动vacuum进程。而其自身是不直接启动自动vacuum进程的。通过这样可以提高系统的可靠性。
自动vacuum进程
autovacuum worker process进程实际执行vacuum的任务。有时候会同时启动多个vacuum进程。
wal sender / wal receiver
wal sender 进程和wal receiver进程是实现postgresql复制(streaming replication)的进程。Wal sender进程通过网络传送WAL日志,而其他PostgreSQL实例的wal receiver进程则接收相应的日志。Wal receiver进程的宿主PostgreSQL(也称为Standby)接受到WAL日志后,在自身的数据库上还原,生成一个和发送端的PostgreSQL(也称为Master)完全一样的数据库。
postgresql 客户端_Postgresql体系结构相关推荐
- PostgreSQL实战之体系结构
目录 PostgreSQL实战之体系结构 前言 1 逻辑和物理存储结构 1.1 逻辑存储结构 1.2 物理存储结构 2 进程结构 2.1 守护进程与服务进程 2.2 辅助进程 3 内存结构 3.1 本 ...
- Postico —— OS X 上的免费 PostgreSQL 客户端
Postico 是 OS X 下的一个 PostgreSQL 客户端管理工具.要求 OS X 10.8 或者更新版本. 文章转载自 开源中国社区 [http://www.oschina.net]
- postgresql客户端命令之口令文件
postgresql客户端命令之口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件.之所以在这里提前说明该文件,是因为我们在后面的示例代码中会 ...
- Mac超好用的PostgreSQL客户端:Postico Mac下载
Postico是一款Mac平台上的图形化PostgreSQL客户端工具,它提供了一个直观.简单易用的用户界面,方便开发人员与PostgreSQL数据库进行交互. 使用Postico,您可以轻松地连接到 ...
- PostgreSQL 客户端乱码问题
关于客户端和服务器端的乱码问题, POSTGRESQL字符集问题总结 总结的很详细, 特别棒. 这里让我头痛了很久的问题在于 终端 上字符编码的问题, 由于我的mbp上的 iterm2 的默认编码为 ...
- postgresql 客户端_一款功能强大的数据库客户端:DataGrip
前言 在我们日常的程序开发中,很大一部分时间是在与数据库打交道. 查数据,导数据,检查SQL执行计划,优化SQL等,是我们数据库开发工作的重要组成部分,而且很多时候我们会使用到多款数据库,如Oracl ...
- PostgreSQL客户端psql常用命令
使用psql客户端访问数据库, 列出了psql常用命令和参数. 常用命令 -- 使用指定用户和IP端口登陆 psql -h 10.43.159.11 -p 5432 -U postgres -W -- ...
- Postgresql 客户端 psql 的使用
psql命令行 获取命令行帮助 Usage: General options: Input and output options: Output format options: Connection ...
- postgresql入门_PostgreSQL教程:PostgreSQL 10入门
postgresql入门 多年来,PostgreSQL一直是企业软件和开放源代码中保存最好的秘密之一-功能强大,健壮且经过专家维护的关系数据库. MySQL可能更广为人知,但PostgreSQL提供了 ...
最新文章
- 一篇文章教你学会使用SpringBoot实现文件上传和下载
- Thrift异步IO服务器源码分析
- python多线程并行编程_Python并行编程(二):基于线程的并行
- 底层实现红黑树_图解:红黑树
- 多元样条函数及其应用_B样条算法(B-spline)
- Android开发笔记(二)
- RN组件使用注意事项
- node.js打开指定浏览器的四种方式
- word20161219
- matlab影像阿伯斯投影,D3.js 世界地图(一)投影方式
- NetMeeting不能共享桌面的解决办法
- 华为前端社招OD面试(已拿offer)
- 计算机英语ppt答辩,急求英语答辩PPT范文
- 用winpcap实现局域网DNS欺骗之一(基础知识)
- Logback日志名和日志内容配置增加ip等信息
- 涉密计算机分区保护,VeraCrypt - 创建加密分区保护计算机上需要保密的文件
- 操作系统2022简答8选4
- 面向对象三大特征之继承
- 灵山奇缘服务器维护,灵山奇缘 12月21日每周例行维护公告
- ie10 11 css兼容性问题,学习一下IE10和IE11的CSS Hack
热门文章
- python的setup如何安装_如何安装python的setuptool
- python定义x_Python 定义函数(示例代码)
- java启动时执行_java怎么实现项目启动时执行指定方法
- 哪些计算机p玩游戏,有了这个神器,你的电脑玩什么游戏都带得动
- git提交屏蔽某java类_git 删除某次指定的提交
- 深入理解javascript原型和闭包(17)——补this
- 再见 Win10系统!下一代操作系统要来了!!
- 数据分析、机器学习必读书,李航《统计学习方法》发布算法推导视频啦!(附作业讲解)...
- GitHub 3W 星,冲击热榜!超实用技术面试手册,看这篇就够了
- 关于求职简历的碎碎念。