PostgreSQL集簇搭建
实验目的
- 熟悉
postgresql.conf
/pg_hba.conf
等核心配置文件 - 理解
initdb
、pg_ctl
、psql
等命令的作用 - 理解数据库实例与服务端口之间的关系
实验环境
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 InstanceAfter=network.target[Service]Type=forkingUser=postgresGroup=postgresExecStart=/usr/lib/postgresql/<PostgreSQL-Version>/bin/pg_ctl start -D /data/postgresqlExecStop=/usr/lib/postgresql/<PostgreSQL-Version>/bin/pg_ctl stop -D /data/postgresqlRestart=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
(是哪个命令,哪条参数?)