今天分享的是:类延良:在Linux和Windows下PostgreSQL运维避坑
报告共计:43页
《在Linux和Windows下PostgreSQL运维避坑》介绍了在Linux和Windows系统下PostgreSQL运维的注意事项以及如何为PostgreSQL做贡献。
Linux系统下的运维注意点
1. 文件系统问题
- 在RHEL8上建立的xfs无法在RHEL7上mount,需创建文件系统时不使用reflink功能;RHEL9上创建的XFS文件系统在RHEL8.6及以下版本无法mount,应根据内核版本选择合适的创建方式。
2. 进程数限制
- 在SUSE12上,由于systemd的资源控制,数据库进程达到一定数量时无法连接数据库,可修改/etc/systemd/system.conf中DefaultTasksMax的值为‘infinity’并重启主机解决。
3. 数据库启停
- 介绍了手工发出pg_ctl启停数据库与systemd调用pg_ctl启停数据库的区别,以及如何判断数据库实例的启动方式,还提到/etc/security/limits.conf中定义的资源限制对systemd机制启动的服务无效。
4. 查看新盘数据
- 可使用hexdump命令查看新盘有无数据,返回结果全为0000则为空盘。
5. 系统调优
- 对Red Hat Enterprise Linux服务器进行PostgreSQL数据库调优时,涉及虚拟内存和I/O调度器调优,需根据实际情况调整相关参数。
Windows系统下的运维注意点
1. 操作系统版本选择
- 为服务器选择认证过的Windows操作系统版本,参考微软的认证列表。同时要注意PostgreSQL版本对Windows版本的支持情况,从PostgreSQL13开始不支持Windows2012 R2及更低版本,从PostgreSQL11开始不支持Windows Client操作系统。
2. 安装问题及解决方法
- 不打操作系统补丁的Windows 2012 R2无法安装PostgreSQL数据库,需按特定顺序安装补丁;点击postgresql - 12.5 - 1 - windows - x64.exe安装程序后GUI安装界面无法弹出,可通过修改组策略编辑器中“阻止访问命令提示符”的设置解决。
3. 安装程序提供商及格式
- 介绍了PostgreSQL for Windows安装程序的提供商有enterprisedb、postgrespro和bigsql公司,安装程序格式有exe和zip包两种。还介绍了exe格式安装程序的静默安装方法及判断安装过程是否结束的方式。
4. Windows下PGDATA目录
- 介绍了Windows下PGDATA目录中一些有用的目录,如存放文档的目录。
5. 杀进程问题
- 介绍了在Windows下从OS层面杀掉PostgreSQL backend进程的正确方法,使用pg_ctl kill TERM命令,避免使用任务管理器直接结束进程导致数据库崩溃重启。
为PostgreSQL做贡献
介绍了作者在翻译文档时发现问题并提交bug,被PostgreSQL国际社区承认,从而为PostgreSQL做贡献的经历,以及做贡献的收获和好处。
以下为报告节选内容