一、环境规划与部署准备
1.1 硬件资源评估
- CPU与内存:建议8核16GB起步,生产环境建议16核32GB以上
- 存储配置:SSD硬盘(推荐NVMe),RAID 10配置提升IO性能
- 网络要求:主备节点间网络延迟<1ms,带宽建议万兆网卡
1.2 系统环境检查
# 检查内核参数
cat /proc/sys/kernel/sem
cat /proc/sys/kernel/shmall
cat /proc/sys/kernel/shmmax
# 检查防火墙与SELinux
systemctl status firewalld
getenforce
二、单机与主备部署实战
2.1 单机快速部署
# 下载安装包
wget https://opengauss.org/download/openGauss-5.0.0-CentOS-x86_64.tar.gz
# 解压并执行安装
tar -zxvf openGauss-5.0.0-CentOS-x86_64.tar.gz
cd openGauss
./install.sh -w "your_password" -p 5432
2.2 一主一备高可用部署
主节点配置:# 修改postgresql.conf
listen_addresses = '*'
port = 5432
max_connections = 1000
shared_buffers = 8GB
wal_level = logical
synchronous_commit = on
synchronous_standby_names = 'standby1'
# 修改pg_hba.conf
host replication all 192.168.1.0/24 md5
备节点配置:
# 执行基础备份
pg_basebackup -h 主节点IP -p 5432 -U replication -D /data/openGauss/data -X stream -P
# 配置recovery.conf
standby_mode = on
primary_conninfo = 'host=主节点IP port=5432 user=replication password=your_password'
三、日常运维关键操作
3.1 数据库启停与状态检查
# 启动数据库
gs_ctl start -D /data/openGauss/data
# 查看运行状态
gs_ctl status -D /data/openGauss/data
# 检查主备同步状态
gs_ctl query -D /data/openGauss/data
3.2 备份与恢复策略
逻辑备份:# 全库备份
gs_dump -U omm -d mydb -f mydb_backup.sql
# 按表备份
gs_dump -U omm -d mydb -t mytable -f table_backup.sql
物理备份(基于PITR):# 开启归档模式
wal_level = archive
archive_mode = on
archive_command = 'cp %p /data/archive/%f'
# 执行基础备份
pg_basebackup -D /data/backup -X stream -P
四、监控告警体系建设
4.1 关键指标监控
- 连接数监控:
select count(*) from pg_stat_activity; - 锁等待检测:
select * from pg_locks where granted = false; - 慢查询分析:开启
log_min_duration_statement参数 - 磁盘空间预警:监控数据目录、WAL日志目录使用率
4.2 集成Prometheus监控
部署openGauss Exporter:# prometheus.yml配置
scrape_configs:
- job_name: 'opengauss'
static_configs:
- targets: ['localhost:9187']
关键监控面板(Grafana):
- QPS/TPS实时趋势
- 连接池使用率
- 主备同步延迟
- 磁盘IO与缓存命中率
五、常见故障处理
5.1 主备切换异常
场景:备节点无法提升为主# 检查备节点WAL日志位置
select pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn();
# 手动触发切换
gs_ctl promote -D /data/openGauss/data
5.2 连接池满问题
解决方案:
- 调整
max_connections参数 - 使用连接池中间件(如PgBouncer)
- 检查应用连接泄漏
5.3 磁盘空间不足
应急处理:# 清理WAL日志(谨慎操作)
pg_archivecleanup /data/archive/ 0000000100000001000000F0
# 临时扩展表空间
create tablespace new_space location '/new_disk';
六、总结与最佳实践
- 部署前充分测试:在测试环境验证配置参数
- 监控体系先行:部署后立即配置监控告警
- 定期演练:每季度进行主备切换演练
- 文档标准化:记录部署步骤、参数配置、故障处理流程
一、环境规划与部署准备
1.1 硬件资源评估
1.2 系统环境检查
# 检查内核参数
cat /proc/sys/kernel/sem
cat /proc/sys/kernel/shmall
cat /proc/sys/kernel/shmmax
# 检查防火墙与SELinux
systemctl status firewalld
getenforce
二、单机与主备部署实战
2.1 单机快速部署
# 下载安装包
wget https://opengauss.org/download/openGauss-5.0.0-CentOS-x86_64.tar.gz
# 解压并执行安装
tar -zxvf openGauss-5.0.0-CentOS-x86_64.tar.gz
cd openGauss
./install.sh -w "your_password" -p 5432
2.2 一主一备高可用部署
主节点配置:# 修改postgresql.conf
listen_addresses = '*'
port = 5432
max_connections = 1000
shared_buffers = 8GB
wal_level = logical
synchronous_commit = on
synchronous_standby_names = 'standby1'
# 修改pg_hba.conf
host replication all 192.168.1.0/24 md5
备节点配置:
# 执行基础备份
pg_basebackup -h 主节点IP -p 5432 -U replication -D /data/openGauss/data -X stream -P
# 配置recovery.conf
standby_mode = on
primary_conninfo = 'host=主节点IP port=5432 user=replication password=your_password'
三、日常运维关键操作
3.1 数据库启停与状态检查
# 启动数据库
gs_ctl start -D /data/openGauss/data
# 查看运行状态
gs_ctl status -D /data/openGauss/data
# 检查主备同步状态
gs_ctl query -D /data/openGauss/data
3.2 备份与恢复策略
逻辑备份:# 全库备份
gs_dump -U omm -d mydb -f mydb_backup.sql
# 按表备份
gs_dump -U omm -d mydb -t mytable -f table_backup.sql
物理备份(基于PITR):# 开启归档模式
wal_level = archive
archive_mode = on
archive_command = 'cp %p /data/archive/%f'
# 执行基础备份
pg_basebackup -D /data/backup -X stream -P
四、监控告警体系建设
4.1 关键指标监控
select count(*) from pg_stat_activity;select * from pg_locks where granted = false;log_min_duration_statement参数4.2 集成Prometheus监控
部署openGauss Exporter:# prometheus.yml配置
scrape_configs:
- job_name: 'opengauss'
static_configs:
- targets: ['localhost:9187']
关键监控面板(Grafana):
五、常见故障处理
5.1 主备切换异常
场景:备节点无法提升为主# 检查备节点WAL日志位置
select pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn();
# 手动触发切换
gs_ctl promote -D /data/openGauss/data
5.2 连接池满问题
解决方案:
max_connections参数5.3 磁盘空间不足
应急处理:# 清理WAL日志(谨慎操作)
pg_archivecleanup /data/archive/ 0000000100000001000000F0
# 临时扩展表空间
create tablespace new_space location '/new_disk';
六、总结与最佳实践