准备工作
我部署的服务器是一主一从
1、准备两台服务器系统都是是Debain
主机地址 | 系统环境 | 数据库 | 主从 |
---|---|---|---|
192.168.137.129 | Deabin 11.4 | PostgreSQL 14.5 | 主库 |
192.168.137.137 | Deabin 11.4 | PostgreSQL 14.5 | 从库 |
主服务器
1、安装postgresql
2、修改postgres密码
3、创建流复制账户
4、配置postgres.conf与pg_hba.conf
5、重启PG数据库
一、安装postgresql
官网链接:https://www.postgresql.org/download/linux/debian/
1、 创建文件存储库配置:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
2、 导入存储库签名密钥:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
3、 更新包列表:
sudo apt-get update
4 安装最新版本的 PostgreSQL。
sudo apt-get -y install postgresql
二、修改postgres密码
root@localhost:~# su - postgres (进入postgres用户)
postgres@localhost: psql(进入数据库)|这里只是一种方式,还有其他方式进入数据库|
postgres=# /password(开始输入密码)
如图所示:
三、创建流复制账户
root@localhost:~# su - postgres
postgres@localhost: psql
postgres=# create user replica login replication encryoted password 'replica';(创建replica用户,encryoted:加密的方式登陆)
CREATE ROLE
postgres=# \du (查看用户,)
如图所示:
如果显示与图片相等,就证明创建成功了
四、配置postgres.conf与pg_hba.conf
postgres.conf的配置
我的配置文件安装是默认的在:
/etc/postgresql/14/main
root@localhost: vim /etc/postgresql/14/main/postgres.conf
进入以下页面:
# listen_address ='localhost'
修改成 listen_address='*'
# wal_level= replica
修改成
wal_level = replica
# max_wal_senders = 10
修改成
max_wal_senders = 10 # 这里默认可以不用修改
# synchronous_commit = on
修改成
synchronous_commit = on
pg_hba.conf的配置
我的配置文件安装是默认的在:
/etc/postgresql/14/main
root@localhost: vim /etc/postgresql/14/main/pg_hba.conf
进入以下页面:
修改配置如上图一样
五、重启PG数据库
systemctl restart postgresql
从服务器
1、安装postgresql
2、复制数据库目录
3、删除目录
4、基础备份
从服务器中的数据库配置不需要进行改动,要不然可能出现搭建的主从失败
一、安装
官网链接:https://www.postgresql.org/download/linux/debian/
1、 创建文件存储库配置:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
2、 导入存储库签名密钥:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
3、 更新包列表:
sudo apt-get update
4 安装最新版本的 PostgreSQL。
sudo apt-get -y install postgresql
二、复制数据库目录
root@localhost:~# systemctl stop postgresql (停库)
root@localhost:~# su - postgres
postgres@localhost:~$ cd 14
postgres@root:~/14$ cp -R main /var/lib/postgresql/main.bak (为了防止出现失误可以先备份)
三、删除数据库目录
进入数据库目录的main文件夹使用rm -rf * 删除main文件夹里的所有文件
postgres@root:~/14/main$ rm -rf * (这里只是其中的一种用法)
四、基础备份
一定要进入到postgres用户里面如:
postgres@localhost:~$ pg_backbaseup -h 192.168.137.129 -D /var/lib/postgresql/14/main -U replica -P -v -R -X stream -C -S pgstandby (开始基础备份)
输入密码:replica
-h –指定作为主服务器的主机。
-D –指定数据目录。
-U –指定连接用户。
-P –启用进度报告。
-v –启用详细模式。
-R–启用恢复配置的创建:创建一个standby.signal文件,并将连接设置附加到数据目录下的postgresql.auto.conf。
-X–用于在备份中包括所需的预写日志文件(WAL文件)。流的值表示在创建备份时流式传输WAL。
-C –在开始备份之前,允许创建由-S选项命名的复制插槽。
-S –指定复制插槽名称。
进入数据库目录里查看有没有生成standby.signal。
启动从服务器
systemctl start postgres
搭建成功
查看复制槽
查看主服务器节点信息
查看从节点信息
查看主服务器传输
注意看有IP地址的哪一行,如果有就证明成功了