PG的透明大页与系统大页

61 阅读2分钟

一、变更内容

变更背景: 逻辑复制异常导致数据丢失,需重建表后全量同步数据

变更环境:PRD

影响范围:智能点餐屏

变更类型:低风险

涉及系统等级:A级

变更负责人:xxx

变更复核人:xxx

变更内容:PG服务器关闭透明大页,开启PG系统大页

变更验收标准:




二、变更文档

前置工作

主库172.25.235.49

# 
# 检查透明大页
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled


# 检查系统大页
grep HugePages /proc/meminfo

透明大页


PG的大页


备库172.25.235.50

[root@KSSYYVI01352 temp]# ssh 172.25.235.50                                                                                                                  
Last login: Tue Jun 17 15:17:21 2025 from 172.25.162.57                                                                                                      
Welcome to YumChina Linux System. Version: CentOS7 Jul/2021                                                                                                  
[root@KSSYYV153648 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]                                                                                                                                       
[root@KSSYYV153648 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]                                                                                                                                       
[root@KSSYYV153648 ~]# 



[postgres@KSSYYV153648:/data/postgres/pgdata]$psql -h 127.0.0.7 -p 1921
psql (11.16)                                                                                                                                                 
Type "help" for help.                                                                                                                                        
                                                                                                                                                             
postgres=# show huge_pages;                                                                                                                                  
 huge_pages                                                                                                                                                  
------------                                                                                                                                                 
 try                                                                                                                                                         
(1 row)                                                                                                                                                      
                                                                                                                                                             
postgres=#  



[postgres@KSSYYV153648:/data/postgres/pgdata]$grep HugePages /proc/meminfo
AnonHugePages:      2048 kB                                                                                                                                  
HugePages_Total:       0                                                                                                                                     
HugePages_Free:        0                                                                                                                                     
HugePages_Rsvd:        0                                                                                                                                     
HugePages_Surp:        0 

监控地址



详细操作WBS

  1. clup中关闭PG的HA

  1. 备库172.25.235.50上关闭透明大页

# 
vi /etc/rc.d/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi


# 
chmod +x /etc/rc.d/rc.local
# 

3. ## 备库上PG大页参数调整

# 开启hugepage参数
vi postgresql.conf 

huge_pages = on

4. ## 备库上系统大页开启

 # 配置标准大页,比shard_buffers 大一点点即可
grubby --update-kernel=ALL --args="default_hugepagesz=1G hugepagesz=1G hugepages=9"

5. ## 重启备库服务器

  1. 启动PG服务

  1. 观察PG集群状态

  1. 主从切换

  1. 旧主库上关闭透明大页

  1. 旧主库上PG大页参数调整

  1. 旧主库上系统大页开启

  1. 重启旧主库服务器

  1. 拉起PG服务

  1. 观察PG集群




预案手册




灰度方案




回退方案




三、变更记录

变更执行记录

双岗复核记录

验证记录




问题点

切换主备失败

图片.png

图片.png

原因:

50(备库)上的postgres用户的环境变量问题,$PGHOST参数问题导致。