《openEuler2403 中 PostgreSQL17 扩展插件安装:pg_stat_statements 与 pgBouncer》
若扩展加载失败,检查 PostgreSQL 日志。
·
openEuler 2403 中 PostgreSQL 17 扩展插件安装:pg_stat_statements 与 pgBouncer
一、环境准备
- 系统更新
sudo dnf update -y - 安装 PostgreSQL 17
sudo dnf install postgresql17-server postgresql17-contrib -y sudo /usr/pgsql-17/bin/postgresql-17-setup initdb sudo systemctl enable postgresql-17 sudo systemctl start postgresql-17
二、安装 pg_stat_statements 扩展
- 修改配置文件
编辑/var/lib/pgsql/17/data/postgresql.conf:shared_preload_libraries = 'pg_stat_statements' # 取消注释 pg_stat_statements.track = all # 监控所有SQL - 重启服务
sudo systemctl restart postgresql-17 - 创建扩展
连接数据库:
执行 SQL:sudo -u postgres psqlCREATE EXTENSION pg_stat_statements; SELECT * FROM pg_stat_statements LIMIT 10; -- 验证安装
三、安装 pgBouncer
- 安装软件包
sudo dnf install pgbouncer -y - 配置连接池
编辑/etc/pgbouncer/pgbouncer.ini:[databases] mydb = host=127.0.0.1 port=5432 dbname=postgres [pgbouncer] listen_port = 6432 auth_type = md5 auth_file = /etc/pgbouncer/userlist.txt - 创建认证文件
echo '"postgres" "md5$(echo -n 'passwordpostgres' | md5sum)"' | sudo tee /etc/pgbouncer/userlist.txt - 启动服务
sudo systemctl enable pgbouncer sudo systemctl start pgbouncer
四、验证与使用
- pg_stat_statements 验证
SELECT query, calls, total_time FROM pg_stat_statements ORDER BY total_time DESC; - pgBouncer 连接测试
psql -p 6432 -U postgres -h 127.0.0.1 mydb
五、关键注意事项
- 防火墙配置
开放端口 6432 (pgBouncer):sudo firewall-cmd --add-port=6432/tcp --permanent sudo firewall-cmd --reload - 性能调优公式
连接池大小建议:
$$ \text{pool_size} = \frac{\text{max_connections}}{\text{avg_query_concurrency}} $$ - 监控指标
- pg_stat_statements:跟踪 SQL 执行频率/耗时
- pgBouncer:监控连接池利用率(
SHOW POOLS)
故障排查:若扩展加载失败,检查 PostgreSQL 日志
/var/lib/pgsql/17/data/log/postgresql-*.log
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)