Title

PostgreSQL集簇搭建

PostgreSQL集簇搭建

实验目的

  1. 熟悉 postgresql.conf/pg_hba.conf 等核心配置文件
  2. 理解initdbpg_ctlpsql等命令的作用
  3. 理解数据库实例服务端口之间的关系

实验环境

Ubuntu1604

VirtualBox虚拟机软件

实验步骤

安装最新版本 PostgreSQL

添加官方源
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-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

通过官方APT仓库确保安装最新稳定版的PostgeSQL数据库。

安装核心组件
sudo apt install postgresql postgresql-contrib

安装完成后,默认会创建系统用户postgres,并生成一个名为postgres的数据库

配置自定义端口与数据库集簇

停止默认服务
sudo systemctl stop postgresql
初始化自定义数据库集簇
sudo mkdir -p /data/postgresql
sudo chown postgres:postgres /data/postgresql
sudo -u postgres /usr/lib/postgresql/<PostgreSQL-Version>/bin/initdb -D /data/postgresql -E UTF8
参数解释
  • -D指定数据目录(需提前创建并授权)

  • <PostgreSQL-Version>通过ls /usr/lib/postgresql查询

  • Ubuntu1604版本默认下载的最新PostgreSQL版本为9.5

修改配置文件

找到PostgreSQL的配置文件<PG_HOME>/postgresql.conf<PG_HOME>是数据库实例所在的文件目录

修改配置文件,在最下面加入配置:

listen_addresses = '*'   # 允许远程访问
port = 5439              # 修改默认端口为5439
max_connections = 100    # 根据需求调整连接数

(使用sudo -u postgres vim编辑文件,确保权限正确)

手动启动数据库实例

使用pg_ctl启动PostgeSQL数据库

/usr/lib/postgresql/<PostgreSQL-Version>/bin/pg_ctl start -D /data/postgresql

注意<PostgreSQL-Version>版本号

启动自定义实例(自己进阶研究,不做强制要求)

创建Systemd服务文件
sudo vim /etc/systemd/system/postgresql-custom.service

添加以下内容

[Unit]

Description=PostgreSQL Custom Instance

After=network.target



[Service]

Type=forking

User=postgres

Group=postgres

ExecStart=/usr/lib/postgresql/<PostgreSQL-Version>/bin/pg_ctl start -D /data/postgresql

ExecStop=/usr/lib/postgresql/<PostgreSQL-Version>/bin/pg_ctl stop -D /data/postgresql

Restart=on-failure



[Install]

WantedBy=multi-user.target

启动服务
sudo systemctl daemon-reload
sudo systemctl start postgresql-custom

测试端口服务状态

sudo ss -tulnp | grep 5439  # 确认端口监听状态

上述文档适用于搭建端口为5439的数据库集簇1,可以根据上述教程(从initdb开始)自己尝试搭建端口号为5440,数据文件位于/backup/postgresql数据库集簇2。

注意:

要确定数据库集簇2的需求:

端口号5440(是哪个命令,哪条参数?)

数据目录/backup/postgresql(是哪个命令,哪条参数?)

脑图

posted @ 2025-03-13 13:10  是胡某某啊  阅读(116)  评论(0)    收藏  举报