目录
前言
本篇文章主要针对在Linux_centos7系统中postgresql数据库如何做主备。
postgresql数据库安装
根据上篇文章安装postgresql数据库
链接:【Linux成长之路】CentOS7安装postgresql 9.4.4数据库_源码版编译及run版安装方式
postgresql主库配置
1.进入数据库中data目录下:
1.1修改配置文件pg_hba.conf
vi pg_hba.conf
1.2在文件最下方加入两行:postgres是pg库默认管理员账号,ip改成备库的ip地址
host replication postgres 192.168.32.4/24 trust
host all postgres 192.168.32.4/24 trust
1.3修改配置文件postgresql.conf
vi postgresql.conf
listen_addresses = '*'
wal_level = hot_standby # 这个是设置主为wal的主机
max_wal_senders = 2 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
wal_keep_segments = 7 # 设置流复制保留的最多的xlog数目
wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
max_connections = 100 # 这个设置要注意下,从库的max_connections必须要大于主库的
1.4重启服务
systemctl restart postgresql-9.4
1.5主库配置到此为止,下面进行备库的配置。
postgresql备库配置
1.备库的安装方式和主库一样:
链接:【Linux成长之路】CentOS7安装postgresql 9.4.4数据库_源码版编译及run版安装方式
1.1安装完成后查询备库是否在运行:
ps -ef | grep postgres
1.2如果服务运行中先停掉
systemctl stop postgresql-9.4
1.3重置data目录
1.3.1pg备库安装完成后,删掉已有的data目录
rm -rf data
1.3.2再重新创建一个空的data目录
mkdir data
1.3.3给data赋权,不然权限不够可能会无法启动服务
chmod 700 data
1.3.4用户赋权
chown -R postgres:postgres /opt/PostgreSQL/
1.4同步主库的数据文件(这里需要切换postgres用户执行)
pg_basebackup -F p --progress -D /opt/PostgreSQL/9.4/data -h 192.168.32.1 -p 5432 -U postgres --password
1.4.1输入密码:主库data目录下的所有文件都同步过来了
1.5修改备库data目录下postgresql.conf文件
max_connections = 1000 # 一般查多于写的应用从库的最大连接数要比较大
hot_standby = on # 说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
wal_receiver_status_interval = 1s # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈
1.6创建recovery.conf文件
1.6.1从模板文件拷贝到data目录下
cp /opt/PostgreSQL/9.4/share/postgresql/recovery.conf.sample /opt/PostgreSQL/9.4/data/recovery.conf
1.6.2修改参数如下:
standby_mode = on # 这个说明这台机器为从库
primary_conninfo = 'host=192.168.32.1 port=5432 user=postgres password=Admin123' # 这个说明这台机器对应主库的信息
recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据
1.7启动备库
systemctl start postgresql-9.4
1.8验证是否正常同步
1.8.1主库查看
select client_addr,sync_state from pg_stat_replication;
1.8.2通过查看进程
ps aux | grep postgres
1.8.2.1主节点有如下进程
postgres 74442 0.0 0.2 258652 2424 ? Ss 15:02 0:00 postgres: wal sender process replica 192.168.52.102(58199) streaming 0/30101D0
1.8.2.1从节点有如下进程
postgres 1676 0.0 0.0 113328 748 ? Ss 15:01 0:00 postgres: stats collector process
1.9通过主库增删改查验证
进入数据库命令行输入:
create table t_user(id int primary key,name varchar(30));
postgresql主从搭建完毕。