PostgreSQL Certifed Master (PGCM)大师认证资质是开源软件推进联盟中国 PostgreSQL 认证的
最高级别。此认证是对技术、知识和操作技能的最高级别的认可。
详见官网:https://www.pgcm.org
认证简述:
PGCM考试前提需要通过PGCA(初级)、PGCE(中级)两门考试,均为选择题。考试采取网络远程+现场的方式,可以根据个人情况自由选择。考试全程需要开启笔记本前置摄像头,以便老师可以观察到考试环境是否符合要求、是否作弊等情况。
考试科目:
■ PG 数据库安全管控(考试代号:PGCM-E094)
考点一:数据库配置管理
考点
二: 数据库安全管理
■ PG 数据库优化(考试代号:PGCM-E095)
考点三:性能优化
■ PG 高可用(考试代号:PGCM-E096)
考点
四:高可用Repmgr
■ PG 分布式(考试代号:PGCM-E097)
考点
五:分布式Citus
一共五个考点, 考点一、二、三操作比较多,涉及的小知识点比较多,因此感觉题量比较大。 考点四、五属于那种很明显的操作、非细节性操作,因此比较简单,同时题量也是最少的。
考试环境:
每个人有两台机器,分为奇数机和偶数机,除了repmgr高可用集群的搭建需要同时用到两台机器,其他的所有操作均在奇数机完成。机器配置还可以16G内存的,比当初考OCM时候的4G内存强多了,那会儿命令跑多了都怕卡死。
考试时间:
考试时间相对于OCM相比是比较短的,仅一天时间。但是目前由于首次开放认证,可能大纲覆盖的还不够,题量不是很大。 PGCM 考试没有明确的时间划分,只需要你在指定的时间范围(共8个小时)内将五道大题全部做完即可,时间上个人感觉是完全足够的,完全不紧张。
考试提交:
考证完成后务必要报告老师完成确认,因为目前还没有像OCM的那种结果采集连通性测试,很可能出现老师那边无法采集到操作结果的情况。切记! 切记! 切记!
操作过程中遇到的问题分享
下面简单说说我在操作过程中遇到的问题
软件版本: PostgreSQL 10.14
分享一:
软件是通过源码安装的,并要求安装到指定位置并配置openssl, openssl个人感觉配置还是比较麻烦的,不过还好考试提供的资源里面包含了官方文档,建议自己去试验下。
分享二:
几个考点中都包含了extension的创建。扩展的安装需要在先前编译好的数据库编译环境下才能正常编译(即postgresql.../contrib目录下),不然无法成功编译安装。提供的扩展中,部分是已经编译好的(存在
分享三:
-
做题一定要看准题目, 在细节题中题目要求用哪个用户操作哪个数据库,会明确提示。
-
设置数据库允许非超级用户的最大连接数为100,这题一定要排除掉默认为superuser保留的3个连接。
-
修改用户密码加密方式为scram-sha-256,修改完加密方式记得重置所有用到的用户的密码。
-
鉴权文件的匹配规则是自上向下开始匹配的,要注意规则的先后顺序,限制条件越多的规则要放在前面。
分享四:
设置磁盘预读这题,第一次使用blockdev,这命令对于我来说,太冷门了。
针对SSD硬盘做参数优化,这题不是很了解,大家上网查查,感觉不是单纯的改俩参数这么简单。
分享五:
-
按照2G内存设置合适的shared_buffers值,正常就是建议值2048MB*1/4,要根据当时的实际物理内存看,因为后面这个机器上面需要启动好几个数据库实例,设置太大有可能会影响其他实例运行,如果是16G内存,那是没有问题的。
-
设置表级并行度,真的就是只设置这张表的并行度就可以了,不用去看执行计划,因为表中的数据量过少,执行计划始终都是非并行扫描。
分享六:
-
高可用repmgr集群感觉配置基本问题都不大,这题需要注意的是一定要配置好pg_hba.conf文件,是两条规则
host all repmgr 192.168.56.0/24 trust
host replication repmgr 192.168.56.0/24 trust
此外还需要配置好.pgpass文件,尽量避免将密码直接写到配置文件里面,这不是个好习惯,你懂得。
还有就是在配置repmgr.conf的过程中尽量使用IP地址进行配置,减少出现错误的可能性。
-
repmgr明确Timeline最后的结果为3,也就是只能切换两次,一次是手动切换,一次是自动切换,每次切换完你可能会发现primary和standby的Timeline不一致,一个是目标值3(new primary),一个是旧值2(old primary),这种情况目前我知道的方法是可以通过重启下standby数据库来强制刷新下就可以了。
分享七:
对于分布式Citus的使用,我的感觉这题就是送分的,操作少简单,唯一要注意的就是,每个分布节点的创建都是在奇数机上面,操作的时候,明确指定PGDATA,避免操作混乱。
分享八:
数据库软件不需要多次安装,可以共用一套已经安装好的软件,本地直接共用PGHOME,远程直接拷贝即可,节约时间,主要是省事。
总结:
考试考点:
-
难度应该算适中,整体不难,就是多多注意细节就行了。
-
高可用repmgr集群和citus分布式的题比较简单,题量较少。
结果采集:
结果采集过程中遇到的问题:
1. 题目中要求禁用postgres用户本地免密登录,但是采分脚本是本地直接登录的。
2. repmgr使用主机名配置无法正常采集到结果,需要使用IP配置。
3. postgres用户本地登录的采分方式并不使用ssl加密访问。
以上问题已经和老师进行沟通过,后面会进行bug修复,以后应该不会出现此类问题。
考试建议:
-
建议增加repmgr和citus的考试内容,感觉当前的考试内容不足以解决常见的故障问题。
-
Postgres-XL也是目前用的比较多的分布式软件。
-
PostgreSQL有个很大的问题就是不支持VIP,即使pgpool-II支持,但是这东西又不太常用,但是可以通过keepalived+lvs简单实现。
-
SQL优化和数据库优化部分考试内容过于简单,不具更多的实践意义。
PG目前兼容的数据类型、函数和索引类型是非常多的,尤其是地理位置信息处理等。
-
逻辑复制replication和流复制stream replication是平常用的比较多的数据复制方式。
-
建议关闭root权限,采用sudo的方式。