数据库运维8 min read

瀚高数据库V9.0安装部署与运维入门指南

瀚高数据库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 经验的运维人员来说几乎没有学习成本。核心注意点:

  1. 环境准备要做足:系统参数调优、用户资源限制是性能稳定的基础
  2. 开启 data-checksums:防止静默数据损坏
  3. 合理配置内存参数:shared_buffers 一般为物理内存的 25%
  4. 启用 SSL 和日志审计:满足等保合规要求
  5. 使用 Systemd 管理服务:便于自动重启和开机启动

实践建议:生产环境建议将数据目录、WAL 目录、归档目录放在不同的物理磁盘上,以提升 I/O 性能和容错能力。

分享:

相关文章