postgresql-12安装与异步热备份

若如初见. 提交于 2020-03-07 00:32:06

主备需要数据库版本一致
环境:
192.168.0.21:5432 (主库)
192.168.0.20:15432 ( 备份库)
centos7

1 postgresql 安装

1.1 centOS 安装方式

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

yum install postgresql12 -y

yum install postgresql12-server -y

1.2 ubuntu18.04 安装方式

vim /etc/apt/sources.list.d/pgdg.list

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

保存退出vim
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
apt-get install postgresql-12


以下为 centos7 配置方式,ubuntu 大致相同


1.3 设置数据存放位置

mkdir -p /home/data/master/

sudo chown -R postgres:postgres /home/data/master/

vim /usr/lib/systemd/system/postgresql-12.service
修改 Environment=PGDATA= 为

Environment=PGDATA=//home/data/master/

保存退出 vim
初始化数据
postgresql-12-setup initdb
设置开机自启动
systemctl enable postgresql-12
启动数据库
systemctl start postgresql-12

2 配置主数据库

vim /home/data/master/postgresql.conf

# 监听所有 ip
listen_addresses = '*'
# 端口
port = 5432
# 连接数
max_connections = 200
# 开启密码认证,默认账号密码为 postgres/postgres
password_encryption = md5
# 将事务提交方式改为本地提交,默认为 on,在 on 模式下事务需要等备份数据库一起提交,这里改为 local 让备份数据库不影响主库
synchronous_commit = local

vim /home/data/master/pg_hba.conf

# 允许所有人登录,生产环境需修改为合适的配置
host all all 0.0.0.0/0 md5
# 设置备份数据库连接
host replication postgres 192.168.0.20/32 md5

重启数据库
systemctl restart postgresql-12
如果数据库已经在运行,且没有更改关键信息(postgresql.conf中有提到 change requires restart )则可以使用下面的命令重新加载配置
systemctl reload postgresql-12

3 配置备份数据库

备份数据库安装和上面一致(1),不进行初始化和启动操作,如果有初始化或者启动,则需要删除data 数据目录的所有数据,我这里的数据目录为 /home/data/back/
初始化从库,从主库初始化同步
pg_basebackup -h 192.168.0.21 -p 5432 -U postgres -F p -P -R -D /home/data/back/
输入密码
sudo chown -R postgres:postgres /home/data/back/

vim /home/data/back/postgresql.conf

port = 15432
# 设置主库信息
primary_conninfo = 'application_name=back host=192.168.0.21 port=5432 user=postgres password=postgres'
# 标识这是一个备份库
hot_standby = on
# 同步到最新数据
recovery_target_timeline = 'latest'

自行设置 pg_hba.conf
重启数据库
systemctl restart postgresql-12

4 配置完成自行验证

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!