瀚高数据库V9.0安装部署与运维入门指南
前言
瀚高数据库管理系统 V9.0(以下简称 HGDB V9.0)是瀚高公司基于 PostgreSQL 最新内核打造的企业级关系型数据库,面向核心 OLTP 业务场景。相比于社区版 PostgreSQL,HGDB V9.0 在兼容性、高可用、安全性和易用性方面都有显著增强。
本文基于官方安装手册和管理员指南,覆盖从环境准备到生产部署的完整流程。
一、产品架构概览
HGDB V9.0 采用多进程模式,充分确保高并发场景下的稳定性和扩展性。
客户端 → 鉴权认证 → Postmaster(守护进程)
↓
共享内存区(Shared Buffer)
↓
┌────────┬────────┬────────┬──────────┐
│ │ │ │ │
后台写进程 日志写进程 状态收集 自动清理 归档进程
(BgWriter) (WalWriter) (Stats) (AutoVacuum) (Archiver)
产品核心组成:
| 组件 | 功能 |
|---|---|
| HGHAC | 高可用集群,支持自动故障转移和VIP |
| HGPGBACKREST | 物理备份恢复,支持全量/增量/差异备份 |
| HGPROXY | 读写分离集群,事务级读写分离 |
| HGDBManager | 图形化管理工具 |
| HGUARD | 运维实施一体化管理平台 |
支持的操作系统:
- RHEL/CentOS 7.x/8.x
- 麒麟 V10(Kylin Linux Advanced Server)
- 统信 UOS
- 中标麒麟
二、安装前环境准备
2.1 系统要求
# 检查操作系统版本
cat /etc/os-release
# 检查内核版本(建议 3.10+)
uname -r
# 检查磁盘空间(建议 /opt 有 20GB+)
df -h /opt
# 检查内存(建议 8GB+)
free -h
2.2 关闭防火墙和 SELinux
# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 配置防火墙(以开放 5866 端口为例)
firewall-cmd --zone=public --add-port=5866/tcp --permanent
firewall-cmd --reload
2.3 创建数据库用户
# 创建 highgo 用户
groupadd highgo
useradd -g highgo -m -d /home/highgo highgo
passwd highgo
# 配置用户资源限制
cat >> /etc/security/limits.conf << 'EOF'
highgo soft nproc 65536
highgo hard nproc 65536
highgo soft nofile 65536
highgo hard nofile 65536
highgo soft memlock unlimited
highgo hard memlock unlimited
EOF
2.4 系统内核参数调优
cat >> /etc/sysctl.conf << 'EOF'
# 共享内存
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
# 信号量
kernel.sem = 250 32000 100 128
# 网络优化
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
# 文件句柄
fs.file-max = 655360
EOF
sysctl -p
三、安装 HGDB V9.0
3.1 解压安装包
# 切换到 highgo 用户
su - highgo
# 解压安装包到指定目录
mkdir -p /opt/highgo/hgdb-v9
tar -xzf hgdb-9.0.0-linux-x86_64.tar.gz -C /opt/highgo/hgdb-v9
# 设置环境变量
cat >> ~/.bashrc << 'EOF'
export HGDB_HOME=/opt/highgo/hgdb-v9
export PATH=$HGDB_HOME/bin:$PATH
export LD_LIBRARY_PATH=$HGDB_HOME/lib:$LD_LIBRARY_PATH
export PGDATA=/home/highgo/hgdb-v9/data
export PGPORT=5866
EOF
source ~/.bashrc
3.2 初始化数据库集簇
# 初始化数据库(使用 Oracle 兼容模式)
initdb -D $PGDATA \
--encoding=UTF8 \
--locale=zh_CN.UTF-8 \
--username=highgo \
--data-checksums
关键参数说明:
--data-checksums:开启数据页校验和,防止静默数据损坏--encoding=UTF8:使用 UTF-8 编码--locale=zh_CN.UTF-8:中文环境
3.3 配置数据库参数
编辑 $PGDATA/postgresql.conf:
# 监听地址
listen_addresses = '*'
port = 5866
# 内存配置(以 16GB 服务器为例)
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 64MB
maintenance_work_mem = 1GB
# WAL 配置
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB
archive_mode = on
archive_command = '/bin/true' # 使用备份工具时替换
# 日志配置
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0
log_min_duration_statement = 1000
# 连接配置
max_connections = 200
superuser_reserved_connections = 5
# 查询优化
random_page_cost = 1.1 # SSD 环境
effective_io_concurrency = 200
3.4 配置客户端认证
编辑 $PGDATA/pg_hba.conf:
# 本地连接
local all all trust
# IPv4 连接
host all all 127.0.0.1/32 scram-sha-256
host all all 10.0.0.0/8 scram-sha-256
host all all 192.168.0.0/16 scram-sha-256
# SSL 连接
hostssl all all 0.0.0.0/0 scram-sha-256 clientcert=1
3.5 启动数据库
# 方式一:使用 pg_ctl
pg_ctl -D $PGDATA -l /home/highgo/hgdb-v9/logfile start
# 方式二:配置 Systemd 服务
cat > /etc/systemd/system/hgdb.service << 'EOF'
[Unit]
Description=HighGo Database V9.0
After=network.target
[Service]
Type=forking
User=highgo
Group=highgo
Environment=PGDATA=/home/highgo/hgdb-v9/data
ExecStart=/opt/highgo/hgdb-v9/bin/pg_ctl start -D ${PGDATA} -l /home/highgo/hgdb-v9/logfile
ExecStop=/opt/highgo/hgdb-v9/bin/pg_ctl stop -D ${PGDATA}
ExecReload=/opt/highgo/hgdb-v9/bin/pg_ctl reload -D ${PGDATA}
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable hgdb
systemctl start hgdb
四、安装后初始化配置
4.1 创建业务数据库
-- 连接到数据库
psql -h localhost -p 5866 -U highgo -d highgo
-- 创建业务数据库
CREATE DATABASE appdb
WITH OWNER = highgo
ENCODING = 'UTF8'
LC_COLLATE = 'zh_CN.UTF-8'
LC_CTYPE = 'zh_CN.UTF-8'
TABLESPACE = pg_default
CONNECTION LIMIT = 100;
-- 创建表空间
CREATE TABLESPACE tbs_data
OWNER highgo
LOCATION '/data/hgdb/tbs_data';
-- 创建业务用户
CREATE ROLE appuser WITH LOGIN PASSWORD 'SecurePass123!';
GRANT CONNECT ON DATABASE appdb TO appuser;
4.2 设置 SSL 加密连接
# 生成自签名证书
cd $PGDATA
openssl req -new -x509 -days 3650 -nodes \
-text -out server.crt \
-keyout server.key \
-subj "/CN=hgdb-server"
chmod 600 server.key
chown highgo:highgo server.key
# postgresql.conf 中启用 SSL
ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'
五、日常运维命令
# 查看数据库状态
pg_ctl -D $PGDATA status
# 查看运行的查询
psql -c "SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity WHERE state != 'idle';"
# 查看数据库大小
psql -c "SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname))
FROM pg_database ORDER BY pg_database_size(pg_database.datname) DESC;"
# 查看连接数
psql -c "SELECT count(*) FROM pg_stat_activity;"
# 查看慢查询
psql -c "SELECT query, calls, mean_exec_time
FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10;"
# 备份数据库(逻辑备份)
pg_dump -h localhost -p 5866 -U highgo -F c -f appdb_$(date +%Y%m%d).dump appdb
# 恢复数据库
pg_restore -h localhost -p 5866 -U highgo -d appdb appdb_20260701.dump
六、升级数据库集簇
HGDB V9.0 支持三种升级方式:
| 方式 | 适用场景 | 停机时间 |
|---|---|---|
| pg_dumpall | 小数据量、跨版本 | 较长 |
| pg_upgrade | 大版本升级、就地升级 | 较短 |
| 逻辑复制 | 零停机迁移 | 几乎为零 |
# pg_upgrade 方式(推荐)
pg_upgrade \
-d /home/highgo/hgdb-v9/data \
-D /home/highgo/hgdb-v9-new/data \
-b /opt/highgo/hgdb-v9/bin \
-B /opt/highgo/hgdb-v9-new/bin \
-p 5866 -P 5867 \
--check # 先检查兼容性
# 检查通过后正式升级
pg_upgrade ... --link # 使用硬链接加速
总结
瀚高数据库 V9.0 的安装部署流程与 PostgreSQL 高度相似,对于有 PG 经验的运维人员来说几乎没有学习成本。核心注意点:
- 环境准备要做足:系统参数调优、用户资源限制是性能稳定的基础
- 开启 data-checksums:防止静默数据损坏
- 合理配置内存参数:shared_buffers 一般为物理内存的 25%
- 启用 SSL 和日志审计:满足等保合规要求
- 使用 Systemd 管理服务:便于自动重启和开机启动
实践建议:生产环境建议将数据目录、WAL 目录、归档目录放在不同的物理磁盘上,以提升 I/O 性能和容错能力。