一、需求架构图
主从数据一致,用vip进行故障切换,挂了任何一台对客户的访问没有影响,从机只提供读和备份服务。
分析:正常情况cs通过vip访问ms的postgresql服务,ss这时只备份
当mspostgresql服务停止,keepalived检测到后,也stop 自己的服务,让vip浮动到ss上
当ms 服务正常,vip自动浮动到ms上
二、服务器配置
cs客户端
[root@cs ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
[root@cs ~]# ls
anaconda-ks.cfg postgresql-9.6.5.tar.gz
解压postgresql并切换到相应的目录,
检测:要联网,检测缺少依赖包yum一下就好了
编译:这个过程太长了,我通常编译一会就ctrl c终止了,后来使用也没发现有什么不同
安装:一定要看到complete才ok,数据目录在/usr/local/pgsql下
[root@cs postgresql-9.6.5]# ./configure
[root@cs postgresql-9.6.5]# make
[root@cs postgresql-9.6.5]# make install
[root@cs pgsql]# ls
bin include lib share
没有数据目录是因为数据库还没有初始化,我还是自己创建一个数据目录pgdata吧
再指定postgresql的命令路径
[root@cs pgsql]# mkdir pgdata
[root@cs pgsql]# vim /etc/bashrc
#添加
export PATH=$PATH:/usr/local/pgsql/bin
export PGDATA=/usr/local/pgsql/pgdata
只有特定用户postgres才可以使用postgresql数据库
[root@cs pgsql]# useradd postgres
[root@cs pgsql]# cd ..
[root@cs local]# chown postgres:postgres pgsql -R
数据库初始化
[root@cs local]# which initdb
/usr/local/pgsql/bin/initdb
[root@cs local]# su postgres
[postgres@cs local]$ initdb -D $PGDATA
启动数据库
[postgres@cs local]$ cd pgsql/pgdata
[postgres@cs pgdata]$ pwd
/usr/local/pgsql/pgdata
[postgres@cs pgdata]$ pg_ctl start -D $PGDATA -l logfile
进入数据库
[postgres@cs pgdata]$ psql
psql (9.6.5)
Type "help" for help.
postgres=#