操作系统:Centos 7.6
数据库版本:Postgresql 11.4
主机ip:10.12.132.121
备机ip:10.12.132.122
数据库虚拟ip:10.12.132.123
步骤1 主备机分别上传数据库安装包
用MobaXterm工具把pg安装包传到主备机的/opt目录下
图2-1
图2-2
注意:
该步骤主备机都要操作一遍
步骤2 主备机分别在服务器中解压pg压缩包
分别在主备机的/opt目录下输入命令unzip pg11.zip
图2-3
注意:
该步骤主备机都要操作一遍
步骤3 主备机分别关闭防火墙
主备机分别输入命令systemctl stop firewalld.service和systemctl disable firewalld.service
图2-4
注意:
该步骤主备机都要操作一遍
步骤4 主备机分别添加主机名称
输入命令vim /etc/hosts在配置文件最下方添加图2-5所示的红框里的两行
图2-5
注意:
该步骤主备机都要操作一遍
步骤5 主备机分别设置环境变量
输入命令vim /etc/profile在配置文件最下放添加图2-6中红框部分
图2-6
再输入命令source /etc/profile生效
图2-7
注意:
该步骤主备机都要操作一遍
步骤1 主备机分别安装数据库服务
输入命令cd /opt/postgres/script/postgresql进入到安装脚本目录
再输入命令chmod +x * 给当前目录下所有文件执行权限
再输入命令./install.sh运行安装脚本
图3-1
注意:
该步骤主备机都要操作一遍
步骤2 主机进入到数据库目录下
输入命令cd /opt/postgres/bin/postgresql/bin/
图3-2
步骤3 切换到数据库用户
输入命令su postgres切换到数据库用户下
图3-3
注意:
该步骤只需主机操作
步骤4 启动数据库服务
输入命令pg_ctl start
图3-4
注意:
该步骤只需主机操作
步骤5 备机上删除data文件夹,把主机的data复制到备机
输入命令rm -rf /opt/postgres/data删除备机的data文件夹
图3-5
再输入命令cd /opt/postgres/bin/postgresql/bin/切换到备份脚本目录下
再输入命令su postgres切换到数据库用户
再输入命令pg_basebackup -D $PGDATA -Fp -Xs -v -P -h node1 -U postgres -p 2345复制主机的data文件夹到备机
图3-6
注意:
该步骤只需备机操作
步骤6 备机修改配置文件并启动数据库服务
输入命令su postgres切到数据库用户
再输入命令cp /opt/postgres/script/postgresql/etc/recovery_s.conf /opt/postgres/data/recovery.conf
再输入命令cd /opt/postgres/bin/postgresql/bin/进去到启动脚本目录下
再输入命令pg_ctl start启动数据库服务
图3-7
在输入命令ps -ef | grep receiver查看备机数据库进程状态是否正确
图3-8
注意:
该步骤只需备机操作
步骤7 主机复制配置文件并初始化数据库用户
输入命令su postgres切换到数据库用户
再输入命令cp /opt/postgres/script/postgresql/etc/recovery_m.conf /opt/postgres/data/recovery.done复制配置文件
图3-9
输入命令cp /opt/postgres/script/postgresql/init.txt /opt/postgres/bin/postgresql/bin/复制配置文件
再输入命令cd /opt/postgres/bin/postgresql/bin/进去脚本目录下
再输入命令psql -p 2345 -f init.txt -U postgres -h 127.0.0.1创建数据库用户
图3-10
注意:
该步骤只需主机操作
注意:
该章节只需要主机操作,当主机服务器down机后需要在备机上操作步骤1添加虚拟ip到备机网卡上
步骤1 主机添加虚拟ip
添加虚拟IP的命令是ip addr add $VIP/24 dev $NICNAME
注意:
其中$VIP是虚拟ip地址;/24是虚拟ip的子网掩码;$NICNAME是虚拟ip要挂在哪张网卡上的网卡名称,根据实际填写,一般是服务器的业务网卡。
图4-1
如图4-1,我主机本地业务网卡名称是ens192,虚拟ip 是10.12.132.123,挂上虚拟ip后的效果如图4-2
图4-2
步骤2 删除虚拟ip
删除虚拟IP的命令是ip addr del $VIP/24 dev $NICNAME
注意:
其中$VIP是虚拟ip地址;/24是虚拟ip的子网掩码;$NICNAME是虚拟ip当前挂在哪张网卡上的网卡名称,根据实际填写。
图4-3