腾讯云OpenCloudOS 9.2源码编译离线安装PostgreSQL数据库

PostgreSQL是一款功能强大的开源对象关系数据库系统(ORDBMS),以其可靠性、可扩展性和稳定性著称,广泛应用于企业级数据管理场景。本文将详细介绍如何在腾讯云OpenCloudOS 9.2环境中离线安装和配置PostgreSQL 17.4。

1. 准备工作

1.1 下载PostgreSQL源码包

访问PostgreSQL官方网站,获取所需版本的源码包。本文以17.4版本为例:

image-20250309213704204

1wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.gz

image-20250309213605861

1.2 创建专用用户和目录

为PostgreSQL创建独立的系统用户和组,并设置相关目录:

1# 创建用户和组
2groupadd -g 60000 pgsql
3useradd -u 60000 -g pgsql pgsql
4echo "Ar2025(?)" | passwd --stdin pgsql
5
6# 创建目录结构
7mkdir -p /data/{pgdata,archive,scripts,backup,pg17,soft}
8chown -R pgsql:pgsql /data
9chmod -R 775 /data

目录说明:

pgdata:数据库主目录(数据文件、配置)

pg17:二进制程序安装路径

archive:WAL 归档日志

backup:物理备份

scripts:维护脚本

soft:源码包存放位置

image-20250309215125877

2. 安装依赖与编译

2.1 安装依赖包

确保系统已安装必要的依赖包:

1yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib zlib-devel \
2perl python36 tcl openssl ncurses-devel openldap pam perl-IPC-Run libicu-devel

需要确保依赖全部安装上,缺少依赖包时configure会提示

2.2 编译与安装

切换到pgsql用户,解压源码包并编译安装:

1su - pgsql
2cd /data/soft
3tar zxvf postgresql-17.4.tar.gz
4cd postgresql-17.4
5./configure --prefix=/data/pg17
6echo $?  # 检查configure执行结果,0表示成功
7make -j 8 && make install
8make world -j 8 && make install-world

3. 配置环境变量

pgsql用户配置环境变量,确保PostgreSQL正常运行:

 1cat >>  ~/.bash_profile <<"EOF"
 2export LANG=en_US.UTF-8
 3export PS1="[\u@\h \W]\$ "
 4export PGPORT=5432
 5export PGDATA=/data/pgdata
 6export PGHOME=/data/pg17
 7export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
 8export PATH=$PGHOME/bin:$PATH:.
 9export DATE=`date +"%Y%m%d%H%M"`
10export MANPATH=$PGHOME/share/man:$MANPATH
11export PGHOST=$PGDATA
12export PGUSER=postgres
13export PGDATABASE=postgres
14EOF
15source  ~/.bash_profile

4. 初始化数据库

4.1 初始化数据库实例

使用initdb命令初始化数据库:

1/data/pg17/bin/initdb -D /data/pgdata -E UTF8 --locale=en_US.utf8 -U postgres --data-checksums

参数说明:

-D:指定数据目录位置

-E UTF8:设置默认字符集为UTF8

--locale:指定排序规则

--data-checksums:启用数据页校验(建议开启,但可能影响性能)

image-20250309221309041

4.2 调整配置文件

修改postgresql.confpg_hba.conf文件以优化配置:

postgresql.conf:

1cat >> /data/pgdata/postgresql.conf <<"EOF"
2listen_addresses = '*'
3port=5432
4unix_socket_directories='/data/pgdata'
5logging_collector = on
6log_directory = 'pg_log'
7log_filename = 'postgresql-%a.log'
8log_truncate_on_rotation = on
9EOF

参数说明:

listen_addresses = '*':允许远程连接。

logging_collector:启用日志收集。

pg_hba.conf:

1cat >> /data/pgdata/pg_hba.conf <<"EOF"
2local  all       all                    trust
3host   all       all   127.0.0.1/32     trust
4host   all       all   0.0.0.0/0        md5
5host   replication all 0.0.0.0/0        md5
6EOF

参数说明

trust:允许本地无密码连接(仅限测试环境)

md5:远程连接需密码验证。

5. 启动与管理服务

PG数据库管理命令

1pg_ctl start  #启动数据
2pg_ctl status # 查看状态
3pg_ctl stop   #停止数据
4pg_ctl restart  #重启实例。
5pg_ctl reload #重载配置(不重启服务)

5.1 启动数据库

使用pg_ctl命令启动数据库:

image-20250309222137918

5.2 设置管理员密码

postgres用户设置密码:

1psql -c "alter user postgres with password 'Ar2025(?)';"

5.3 配置systemd服务管理

创建systemd服务文件,方便管理PostgreSQL服务:

 1cat > /etc/systemd/system/pg17.service <<"EOF"
 2[Unit]
 3Description=PostgreSQL database server
 4After=network.target
 5
 6[Service]
 7Type=forking
 8User=pgsql
 9Group=pgsql
10Environment=PGPORT=5432
11Environment=PGDATA=/data/pgdata
12ExecStart=/data/pg17/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT}" -w -t 300
13ExecStop=/data/pg17/bin/pg_ctl stop -D ${PGDATA} -s -m fast
14ExecReload=/data/pg17/bin/pg_ctl reload -D ${PGDATA} -s
15
16[Install]
17WantedBy=multi-user.target
18EOF

启用并启动服务:

1systemctl daemon-reload
2systemctl enable pg17.service
3systemctl start pg17.service

6. 验证与测试

通过以下命令检查数据库状态:

1pg_ctl status
2psql -c "SELECT version();"

image-20250309225253380

使用Navicat工具链接PostgreSQL数据

image-20250309225339735

总结

本文详细介绍了在腾讯云OpenCloudOS 9.2环境中离线安装和配置PostgreSQL 17.4的完整流程。通过合理的配置和管理,可以快速搭建一个高性能、高可用的数据库环境。