一切源于折腾,一切为了节约钞票,一台服务器做两台远程数据库使用,反而流量不大,问题应该不大!
一、版本选择与安装
1. 推荐PostgreSQL版本
- 建议安装版本: PostgreSQL 12或13
- 安装方法:
# 添加官方源(以PostgreSQL 12为例) sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update sudo apt install postgresql-12 postgresql-client-12
2. 与MariaDB 10.6共存
- 端口分配:PostgreSQL(5432)与MariaDB(3306)分离
- 资源优先级:优先保障PostgreSQL内存分配
二、关键优化设置
1. 内存分配优化
shared_buffers = 512MB
work_mem = 4MB
maintenance_work_mem = 64MB
effective_cache_size = 768MB
2. 磁盘与检查点优化
checkpoint_timeout = 30min
checkpoint_completion_target = 0.9
synchronous_commit = off
3. 连接与并发控制
max_connections = 50
建议额外安装pgbouncer
实现连接池
三、安全与远程访问配置
1. 创建数据库用户
CREATE USER discourse WITH PASSWORD 'your_password';
CREATE DATABASE discourse_db OWNER discourse;
GRANT ALL PRIVILEGES ON DATABASE discourse_db TO discourse;
2. 开放远程访问
# postgresql.conf
listen_addresses = '*'
# pg_hba.conf
host discourse_db discourse 0.0.0.0/0 md5
3. 防火墙配置
sudo ufw allow 5432/tcp
四、资源冲突处理
1. 限制MariaDB内存
# /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_buffer_pool_size = 256M
key_buffer_size = 64M
2. 监控工具
- 使用
htop
或glances
实时监控
五、验证与测试
1. 连接测试
psql -h <服务器IP> -U discourse -d discourse_db
2. 性能分析
- 使用
EXPLAIN ANALYZE
检查查询计划 - 监控日志:
tail -f /var/log/postgresql/postgresql-12-main.log
总结
通过内存分配优化、连接池管理和资源隔离,可在有限配置下稳定运行PostgreSQL作为Discourse数据库。建议定期使用pg_stat_activity
监控长期查询。
没有回复内容