synchronous_commit

指定在命令返回”success”指示给客户端之前,一个事务是否需要等待 WAL 记录被写入磁盘。

合法的值是{local,remote_write,remote_apply,on,off}

默认的并且安全的设置是on。

不同于fsync,将这个参数设置为off不会产生数据库不一致性的风险:一个操作系统或数据库崩溃可能会造成一些最近据说已提交的事务丢失,但数据库状态是一致的,就像这些事务已经被干净地中止。因此,当性能比完全确保事务的持久性更重要时,关闭synchronous_commit可以作为一个有效的代替手段。

这个参数可以随时被修改;任何一个事务的行为由其提交时生效的设置决定。因此,可以同步提交一些事务,同时异步提交其他事务。例如,当默认是相反时,实现一个单一多语句事务的异步提交,在事务中发出SET LOCAL synchronous_commit TO OFF。

单实例环境

on:

当数据库提交事务时,wal先写入 wal buffer 再写入 wal 日志文件,设置成on表示提交事务时需等待本地wal写入wal日志后才向客户端返回成功。on 为默认设置,数据库非常安全,但性能有所损耗。

off:

当数据库提交事务时不需要等待本地 wal buffer 写入 wal 日志,随即向客户端返回成功,设置成off会给数据库带来一点风险:数据库宕机时最新提交的少量事务可能丢失,数据库重启后会认为这些事务异常终止,会rollback。适用对数据库准确性要求不高同时追求数据库性能的的场景。

local:

local含义和on类似,表示提交事务时需要等待本地wal写入后才向客户端返回成功。

流复制环境

on:

表示流复制主库提交事务时,需等待备库接收主库发送的wal日志流并写入wal文件,之后才向客户端返回成功,简单的说on表示本地wal已落盘,备库的wal也已落盘,有两份持久化的wal,但备库此时还没有完成重做。
这个选项带来的事务响应时间较高。

remote_write:

表示流复制主库提交事务时,需等待备库接收主库发送的wal日志流并写入备节点操作系统缓存中,之后向客户端返回成功,这种情况下备库出现异常关闭时不会有已传送的wal日志丢失风险,但备库操作系统异常宕机就有已传送的wal丢失风险了,此时wal可能还没有完全写入备节点wal文件中,简单的说 remote_write 表示本地wal已落盘,备库的wal还在备库操作系统缓存中,也就是说只有一份持久化的wal。
这个选项带来的事务响应时间较低。

remote_apply:

表示流复制主库提交事务时,需等待备库接收主库发送的wal流并写入wal文件,同时备库已经完成重做,之后才向客户端返回成功,简单的说remote_apply 表示本地wal已落盘,备库wal已落盘并且已经完成重做,这个设置保证了拥有两份持久化的wal,同时备库也已经完成了重做。
这个选项带来的事务响应时间最高。

参考:
http://postgres.cn/docs/9.6/runtime-config-wal.html

france 出的一本书,忘记书名了

转载于:https://www.cnblogs.com/ctypyb2002/p/9792880.html

synchronous_commit 参数的再次说明相关推荐

  1. python查看函数参数_python函数参数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最简单的无参数def functionname(): pass function ...

  2. Java中子程序输出到输出文件中_Fortran 90中子例程和函数中的参数/变量的INTENT的含义...

    关于Fortran子程序中的变量 INTENT ,我有几个问题 . 例如,几周前,我发布了一个关于不同Fortran主题的问题(In Fortran 90, what is a good way to ...

  3. 第十四章_超参数调整

    文章目录 14.1 写在前面 14.2 超参数概述 14.2.1 什么是超参数,参数和超参数的区别 14.2.2 神经网络中包含哪些超参数 14.2.3 模型优化寻找最优解和正则项之间的关系 14.2 ...

  4. 在MATLAB中采用M文件实现对Simulink中的S函数程序实现自动调参数

    在做研究的时候我们经常需要对模型的参数就行相应的选择,然而有没有觉得每次更改一个参数都需要运行一次仿真程序觉得很无聊呀,运行完程序还要看效果怎么样,然后再根据效果来调整参数,再次运行程序,如此反复. ...

  5. impdp 并行_impdp hangs,慎用impdp parallel参数

    公司有个项目的数据库有几张大表,每张表都是几亿条数据,之前一直未做分区,随着数据量的不断增大,维护越发困难,为了更好的管理这些表数据,决定为这些大表做分区表,以天为单位进行分区,将原有的数据追加到新的 ...

  6. BCELoss BCEWithLogitsLoss以及参数weight

    在进行pytorch编写程序过程中,会发现loss有两种相对较相似的或是看起来就是一类loss的函数,即BCELoss和BCEWithLogitsLoss,下面简单的描述一下. 首先,BCELoss创 ...

  7. PostgreSQL服务器管理:服务器配置

    https://www.sypopo.com/post/715XYNwNoY/ PostgreSQL服务器管理:服务器配置 本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. ...

  8. python编程问题---第一次

    单引号的输入 字典的key值输入不用加引号 列数不能超过256 In 不能直接用于series 只能用于 list  可以用 isin print(spuFt['序号属性'].isin([61283] ...

  9. centos7 系统下搭建 lnmp 环境

    目录 目录 概述 准备工作 开始编译安装 1. 安装 Nginx 1. 解压 2. 环境准备 3. 编译过程 4. Nginx 服务 2. 安装 MySQL 1. 解压 2. 环境准备 3. 安装 C ...

最新文章

  1. 转载-Android数据库高手秘籍(一)——SQLite命令
  2. Java 编程技巧之数据结构
  3. cwntos新建目录挂载磁盘_centos6修改挂载磁盘目录的方法
  4. 吴晓然:实时通信需要Codec和网络模块结合
  5. oracle命令窗口粘贴,Oracle数据库中的Copy命令
  6. PyTorch框架学习十九——模型加载与保存
  7. python设置excel的格式_python使用xlrd与xlwt对excel的读写和格式设定
  8. 计算机学院班徽在线设计,计算机学院班徽班旗设计大赛通讯稿
  9. 云中台技术架构_为什么开放基础架构在云中很重要
  10. android 模仿微信布局,【Android初学者】框架布局:仿微信页面制作
  11. Hadoop学习总结(2)——Hadoop入门详解
  12. Unity 使用BmFont制作艺术字体
  13. html怎么取消打印空白页,怎么取消打印空白页:如何删除Excel工作表中的空白页...
  14. fastapi之tortoise-orm
  15. java 过滤微信昵称_java过滤微信昵称emoji表情与非emoji的问题解决方法
  16. 51 OCP Oracle数据库认证精品辅导班8期
  17. MySQL国内省市直辖区
  18. 【DirectX 12】在Win10 10074上开启DirectX 12的调试功能
  19. 2022.07.10 第九小组 高小涵 学习笔记
  20. 如何保存meme的网页图片_Meme图片的字体用途是什么(以及如何制作它们?)

热门文章

  1. Unet实现图像分割(四)
  2. 网络推广软文之文章更新对网站排名的影响!
  3. 网络推广软件介绍外链坚持七大原则助力网站排名“蹭蹭上涨”!
  4. 企业网络推广教你如何打造更利于SEO优化的标题?
  5. 网站外链的存在有什么作用呢?
  6. python调用bat有时可以、有时不行_python编程实现对远程执行bat文件时遇到的错误...
  7. python123数字形式转换_【Python系统学习02】数据类型与类型转换
  8. InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了...
  9. php python 函数互相翻译的网站
  10. python3 aes 解密