非常重要的synchronous_commit参数
流复制的同步方式,有主库配置文件postgresql.conf,中的synchronous_commit控制着。所以理解该参数的配置十分重要。
单实例环境
流复制环境
查看同步情况
在主库执行以下SQL , sync_state字段为async表示异步同步方式
postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication; usename | application_name | client_addr | sync_state ---------+------------------+----------------+------------ repuser | walreceiver | 192.168.56.102 | async (1 row)
配置同步复制
主库配置postgresql.conf文件
[postgres@pg01 data]$ vi postgresql.conf synchronous_commit = on synchronous_standby_names = 'walreceiver'
synchronous_commit : 开篇提到的那个重要参数!
synchronous_standby_names: 这里的name填写,刚刚查询到的application_name。
重启主库服务
[root@pg01 PG_12_201909212]# service postgresql-12 restart Stopping postgresql-12 service: [ OK ] Starting postgresql-12 service: [ OK ]
再次查看主库字典
postgres=# select usename , application_name , client_addr,sync_state from pg_stat_replication; usename | application_name | client_addr | sync_state ---------+------------------+----------------+------------ repuser | walreceiver | 192.168.56.102 | sync
数据保护测试
关闭备库。模拟备库宕机无法正常接收WAL
[root@pg02 ~]# service postgresql-12 stop Stopping postgresql-12 service: [ OK ]
主库尝试进行DML操作
dong=# insert into t1 select * from t1; Cancel request sent WARNING: canceling wait for synchronous replication due to user request DETAIL: The transaction has already committed locally, but might not have been replicated to the standby. INSERT 0 8
由于备库已关闭,无法接受从主库传来的WAL,根据同步规则,主库需要一直等待主库接收到WAL的消息。
手动进行了cancel, 数据库报错。说明在等待备库reguest相应。
所以,sync同步模式虽然可以很好的保护数据,但同时也带来了性能的影响,需慎重
补充:PostgreSQL 流复制数据同步检查
如何分辨主、备
看进程
主库 – walwriter
[root@pg01 PG_12_201909212]# ps -ef| grep wal postgres 21157 21151 0 15:57 "htmlcode">[root@pg02 ~]# ps -ef | grep wal postgres 13383 13369 0 14:08 "htmlcode">postgres=# select pg_is_in_recovery(); pg_is_in_recovery ------------------- f (1 row)那我这个就是主库喽~
检查流复制同步情况
先确定主库传到哪儿了
在确定备库接收到哪儿了
最后确定备库应用到哪儿了
检查主库传输
确定主库传到什么位置了
postgres=# select pg_current_wal_lsn(); pg_current_wal_lsn -------------------- 0/2A0001C0 (1 row)检查备库恢复
确定备库接收到哪儿了
postgres=# select pg_last_wal_receive_lsn(); pg_last_wal_receive_lsn ------------------------- 0/2A0001C0 (1 row)确定备库应用到哪儿了
postgres=# select pg_last_wal_replay_lsn(); pg_last_wal_replay_lsn ------------------------ 0/2A0001C0 (1 row)最近事务应用的时间
postgres=# select pg_last_xact_replay_timestamp(); pg_last_xact_replay_timestamp ------------------------------- 2020-03-05 15:20:22.125688+08 (1 row)以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]