postgresql进程简介

  1. 启动服务以后,在有无客户端连接的进程对比

    postgresql进程简介_第1张图片

    上半部分是没有psql连接时的进程状态,下半部分是连接一个psql时候的进程状态。通过对比可以发现,当有客户端连接的时候,启动一个postgres进程。同理,当再增加一个客户端连接的时候,也再起一个postgres进程。

  2. 守护进程postmaster

    数据库服务的主控制进程,负责整个系统的开启和关闭,在其他服务进程发生错误时完成系统恢复,当有客户端请求时,fork一个postgres进程。如上图,增加一个psql连接以后,增加一个postgres进程。

    守护进程入口函数postmaste.c

void PostmasterMain(int argc, char *argv[])

   3.  checkpointer进程

        检查点进程,各种类型的检查点实现。检查的作用主要是缩短数据库恢复的时间。

        checkpointer进程入口,checkpointer.c

void CheckpointerMain(void)

   4.  writer进程

        writer进程在适当的时间,将共享内存上的缓存写入磁盘。

        writer进程入口,bgwriter.c

 

void BackgroundWriterMain(void)

   5.  wal writer进程

        预写日志进程,一种比较高效的日志模式,在数据库进行操作是,先将数据写入到日志文件,然后再写入数据库,由于           是顺序写,效率比一般的日志模式快。类似的,SQLite也有WAL模式。

        wal writer进程入口,Walwriter.c

void WalWriterMain(void)

  6.  autovacuum 进程

        执行自动vacuum任务。

        autovacuum进程入口,autovacuum.c

NON_EXEC_STATIC void
AutoVacLauncherMain(int argc, char *argv[])

   7.  stats colletcor进程

        统计信息收集进程,收集表的访问次数,磁盘的访问次数等信息。

   8.  

你可能感兴趣的:(进程,PostgreSQL)