postgresql安装及主从环境搭建

pgsql安装及主从配置

本次环境:CentOS6.8、pgsql10

主机master:192.168.137.30

主机slave:192.168.137.31

1、安装pgsql

从官网现在pgsql10源码包postgresql-10.4-1-linux-x64-binaries.tar.gz,该包解压后无需安装,初始化数据库后即可直接使用

tar -xzvf postgresql-10.4-1-linux-x64-binaries.tar.gz -C /opt/ #将源码包解压到/opt下,出现pgsql目录

useradd postgres #创建普通用户,pgsql禁止root用户启动

passwd postgres

chown -R postgres.postgres /opt/pgsql/ #更改pgsql目录的所属者

su - postgres #切换到postgres用户

mkdir /opt/pgsql/data #创建data目录,使用该目录来初始化数据库

/opt/pgsql/bin/initdb -D /opt/pgsql/data #初始化数据库

###这时会提醒成功,并且可直接运行./pg_ctl -D /opt/pgsql/data -l logfile start来启动数据库

ls /opt/pgsql/data #查看是否生成数据

###postgresql.conf pgsql配置文件,内容较多,可查阅相关文档进行修改

###pg_hba.conf pgsql用户访问权限配置文件

/opt/pgsql/bin/postgres -D /opt/pgsql/data #启动pgsql

2、pgsql主从搭建

master(192.168.137.30):

/opt/pgsql/bin/psql postgres #登录本地数据库

create role replicator login replication password 'wang123';#创建备份用户及密码

vi /opt/pgsql/data/postgres.conf #修改配置文件,此处仅列出本次必要配置

    wal_level = hot_standby  #这个是设置主为wal的主机

    max_wal_senders = 32 #设置可以最多有几个流复制连接,有几个从,就设置几个

    wal_keep_segments = 256 #设置流复制保留的最多的xlog数目

    wal_sender_timeout = 60s #设置流复制主机发送数据的超时时间

    max_connections = 100 #这个设置要注意下,从库的max_connections必须要大于主库的

vi /opt/pgsql/data/pg_hba.conf #修改控制用户登录权限的文件

    host replication replicator 192.168.137.31/32 md5 #增加允许slave主机的ip地址以replicator用户身份访问

重启pgsql服务

slave(192.168.137.31):

解压pgsql源码包文件至/opt下

mkdir data

/opt/pgsql/bin/pg_basebackup -F p --progress -D /opt/pgsql/data -h 192.168.137.30 -p 5432 -U replicator --password

#执行该命令,slave会去master上拷贝data目录至本地data目录下

vi recovery.conf #编写复制用配置文件

    standby_mode = on  #声明这台机器为从库

    primary_conninfo = 'host=192.168.137.30 port=5432 user=replicator password=wang123' #指定master对应主库的信息

    recovery_target_timeline = 'latest' #指定流复制同步到最新的数据

vi postgres.conf

    max_connections = 1000 #一般查多于写的应用,从库的最大连接数要设置大一些

    hot_standby = on  #说明这台机器不仅仅是用于数据归档,也用于数据查询

    max_standby_streaming_delay = 30s #数据流备份的最大延迟时间

    wal_receiver_status_interval = 10s #从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间

    hot_standby_feedback = on #如果有错误的数据复制,是否向主进行反馈

/opt/pgsql/bin/postgres -D /opt/pgsql/data #启动pgsql

验证主从是否搭建成功

master:

ps -elf|grep postgres

postgres: wal sender process replica #主库出现发送wal的进程

登录数据库

select * from pg_stat_replication; #显示sender进程信息

create database ceshi; #创建一个库,查看从库是否同步

slave:

ps -elf|grep postgres

postgres: wal receiver process #从库出现接受wal进程

登录数据库

\l #查看是否生成ceshi库

你可能感兴趣的:(postgresql安装及主从环境搭建)