Postgresql - 源码 - 数据库启动

数据库启动,一个很简单的举动,只需要执行一条命令, OS上执行的service postgresql start 或者 systemctl status postgresql.service 或是直接执行数据库启动命令 /usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 -l /usr/local/pgsql/logs/pg...
分类: 其他 发布时间: 10-21 23:45 阅读次数: 0

Postgresql - 源码 - backend启动

如何调到这个postmaster子进程呢,后台程序 postmaster backend子进程存在在backend/main/main.c     1. 进入到src/backend/main/main.c中,查看后台主函数main /* * ...... * This does some essential startup tasks for any incarnation of ...
分类: 其他 发布时间: 10-21 23:44 阅读次数: 0

Postgresql - 源码 - 数据库启动 -StartChildProcess

启动其他子进程。such as the bgwriter, walwriter, walreceiver, bootstrapper and the shared memory checker code.   包括 src/backend/postmaster/postmaster.c 中的 #define StartupDataBase()       StartChildProcess(...
分类: 其他 发布时间: 10-21 23:44 阅读次数: 0

Postgresql - Vacuuming

vacuum是PG中很重要的知识点,值得好好学习,自己写的没有官方文档的详细,最后还是选择翻译。   以下内容翻译自官方文档 https://www.postgresql.org/docs/11/static/routine-vacuuming.html   *****************************************************************...
分类: 其他 发布时间: 10-21 23:44 阅读次数: 0

Postgresql - 源码 - autovacuum deamon

什么是vacuum。在这一文章中就不多阐述了。我们来看一下autovacuum的代码。   代码中的注释信息 ( 代码位置 src/backend/postmaster/autovacuum.c ): ****************************************************************** autovacuum系统是由两种不同的过程构成的:aut...
分类: 其他 发布时间: 10-21 23:44 阅读次数: 0

Postgresql - 源码 - walreceiver process

启动进程时执行一个函数,这个函数是walreceiver 进程的主入口。 WalReceiverMain()   代码位置: src/backend/replication/walreceiver.c   下面我们看一下主入口函数   /* Main entry point for walreceiver process */ void WalReceiverMain(void...
分类: 其他 发布时间: 10-21 23:43 阅读次数: 0

Postgresql - 源码 - WalWriter process

启动时执行两个函数 InitXLOGAccess(); 代码位置 src/backend/access/transam/xlog.c WalWriterMain(); 代码位置 src/backend/postmaster/walwriter.c   InitXLOGAccess()的解释是:在创建WAR记录之前,必须在后端过程中调用。我们需要初始化ThisTimeLineID 和 Red...
分类: 其他 发布时间: 10-21 23:43 阅读次数: 0

Postgresql - 源码 - WAL Sender process

介绍: WAL sender process 是9.0的新功能。需要从主服务器发送XLOG到单个recipient(备机)。注意可以同时存在多个walsender进程。当备用服务器的walreceiver连接到主服务器并请求XLOG streaming replication的时候,由postmaster启动walsender process。 walsender类似于常规后端,连接和wals...
分类: 其他 发布时间: 10-21 23:43 阅读次数: 0

Postgresql - 监控 moniter - 监控日志

监控日志,之前介绍过一个第三方工具,pgbadger。非常的好用。 这次介绍其他的方法。1. 通过ELK监控日志。2. 借助filebeats,kafka,自己编写的监控脚本。   通过ELK监控日志 说是监控日志,其实ELK主要的功能是对文件进行收集和统计。比如某个数据库的错,在一段时间出现的次数。 1. 首先搭建kafka,logstash,kibana,ElasticSearch服...
分类: 其他 发布时间: 10-21 23:43 阅读次数: 0

Postgresql - 源码 - checkpointer process

代码位置: src/backend/postmaster/checkpointer.c   代码中的注释: 检查指针是Postgres 9.2 的新功能。它处理所有checkpoint。checkpoint在从上一个checkpoint经过一定时间之后自动调度,并且还可以用信号通知它执行所请求的checkpoint。(每隔这么多WAL段指定一个checkpoint的GUC参数通过在它们填充...
分类: 其他 发布时间: 10-21 23:42 阅读次数: 0

Postgresql - 源码 - logger process

代码位置: src/backend/postmaster/syslogger.c   system logger是从PG 8开始的。通过重定向到管道来捕获来自Postmaster, backends, 和其他的子进程的所有stderr,并写入日志文件。可以再postgresql.conf 中配置日志文件的 size 和 age限制。如果达到了限制,关闭当前日志文件,并创建新的日志文件。日志文...
分类: 其他 发布时间: 10-21 23:42 阅读次数: 0

Postgresql - 源码 - stats collector process

代码位置: src/backend/postmaster/pgstat.c   所有的统计信息收集器的东西放在一个大的丑陋的文件。 TODO: - Separate collector, postmaster and backend stuff into different files. 单独收集,postmaster和backend内容到不同的文件。 - Add some autom...
分类: 其他 发布时间: 10-21 23:42 阅读次数: 0

Postgresql - 源码 - background writer process

代码位置 src/backend/postmaster/bgwriter.c   background writer (bgwriter)是PG 8.0的新特性。视图避免常规后端必须写出脏共享缓冲区(只有在需要释放共享缓冲区以在另一页中读取时才会这样做。)最佳方案中,共享缓冲区的所有写入将由后台写入器进程发出。但是,如果 bgwriter 无法保持足够干净的缓冲区,则定期后端仍然有权发出写入...
分类: 其他 发布时间: 10-21 23:42 阅读次数: 0

天气预报网页版

经过一段时间的摸索,终于把天气预报网页做好了。
分类: 其他 发布时间: 10-21 23:41 阅读次数: 0

聚合天气预报

​ 1.使用 http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json 新浪 IP API 进行城市定位。 2.添加 ProgressDialog ,获取数据时显示“请稍后”。 报错:java.lang.RuntimeException: Can't create handler inside thread that has
分类: 其他 发布时间: 10-21 23:41 阅读次数: 0

linux下GTK编程:显示CPU使用率,内存使用率,网速。

StartOS 5.1版GNOME核心linux用了一段时间后,一直想视窗编程,QT最先搭建好,QT入门做了一个系统信息,重装系统后发现不能运行了,要安装QT环境才能运行,于是想做一种低依赖的系统级编程,因为StartOS已经停止更新了,千辛万苦第三次才成功搭建GTK环境,结合C语言对QT源码进行移植,并做了一些改进,最终窗口界面是一样的。 #include #include #
分类: 其他 发布时间: 10-21 23:41 阅读次数: 0

Qt:圆形头像

QPixmap pixmapa(avantar); QPixmap pixmap(80,80); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); QPainte
分类: 其他 发布时间: 10-21 23:40 阅读次数: 0

QWebView多标签浏览器

网上资料太少了,我来做个成品,供大家学习。 特色:多标签,开发者工具,自己设计的收藏夹和历史记录。 源码地址:https://github.com/sonichy/Qt_HTYBrowser
分类: 其他 发布时间: 10-21 23:40 阅读次数: 0

C/C++ 错误分析--错误代码及意义

参考链接:【C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义 】
分类: 其他 发布时间: 10-21 23:39 阅读次数: 0

eclipse导出调试配置信息

使用 eclipse 进行嵌入式开发时,常常需要配置调试选项,而且常常需要配置多个不同的调试类别,如 Debug、Release、flash等等。当需要提供给用户工程文件时,调试信息常常会发生变化,用户需要重新配置调试信息,这样的做法既不安全也不人性化。试想如果一个并不懂调试配置的用户使用你提供的工程时,他会不会被调试配置搞的一头乱麻呢? eclipse 支持将调试配置信息导出到 launch 文...
分类: 其他 发布时间: 10-21 23:39 阅读次数: 0