{"id":14715,"date":"2020-09-14T06:15:46","date_gmt":"2020-09-14T04:15:46","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/"},"modified":"2020-09-14T06:15:46","modified_gmt":"2020-09-14T04:15:46","slug":"postgresql-13-and-patroni-2-0-when-parameters-change","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/","title":{"rendered":"PostgreSQL 13 and Patroni 2.0 &#8211; when parameters change"},"content":{"rendered":"<p>Starting with PostgreSQL 13 there is a name and value change of one of the parameters used for the streaming replication of a replica server. Some may already know which parameter I am talking about. Until Postgres 12 it was called &#8220;wal_keep_segments&#8221; but with PostgreSQL 13 it will become &#8220;wal_keep_size&#8221;.<br \/>\nIn this small post I will explain, what changed and which nice new feature Patroni 2.0 offers us to not get in trouble using old configuration files.<\/p>\n<h3> wal_keep_segments <\/h3>\n<p>If you have ever setup a replica server with PostgreSQL you may have met wal_keep_segments. An integer parameter that defines the minimum number of log files segments that should be kept in the pg_wal directory. In case this parameter is zero (default) or too small, it is possible that there are not enough wal files kept in pg_wal in case of an disconnection of the standby server.<br \/>\nEach segment normally has a size of 16 MB.<br \/>\nIf you want to go a bit deeper into that topic, you can also have a look at the <a href=\"https:\/\/www.postgresql.org\/docs\/current\/runtime-config-replication.html\" target=\"\u201d_blank\u201d\" rel=\"noopener noreferrer\"> PostgreSQL documentation<\/a>.<\/p>\n<h3> wal_keep_size and what changed <\/h3>\n<p>With PostgreSQL 13 things will look a bit different. wal_keep_segments is replaced by wal_keep_size. The parameter has still the same purpose. Define the kept log files segments, but now we define the size of the log files segments instead of the number. If you don&#8217;t specify a unit, MB will be taken as the default. There is a simple formular, that helps you to calculate the value of the wal_keep_size:<\/p>\n<pre class=\"brush: bash;\">\nwal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB)\n<\/pre>\n<h3> New Patroni 2.0 feature <\/h3>\n<p>As this change is quite essential for a Patroni cluster and its setup, the developers of Patroni implemented a really nice feature in the new Patroni 2.0 version. In case you use an old patroni.yml, as I did in my <a href=\"https:\/\/www.dbi-services.com\/blog\/patroni-2-0-new-features-patroni-on-pure-raft\" target=\"\u201d_blank\u201d\" rel=\"noopener noreferrer\"> last blog post<\/a>, Patroni will automatically recognize the old parameter and reset it with the new one and the new value as well.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@partoni1:\/home\/postgres\/ [PG1] cat \/u01\/app\/postgres\/local\/dmk\/etc\/patroni.yml | grep wal_keep\n        wal_keep_segments: 8\npostgres@partoni1:\/home\/postgres\/ [PG1] patronictl edit-config | grep wal_keep\nVim: Warning: Output is not to a terminal\n    wal_keep_segments: 8\n\npostgres@partoni1:\/home\/postgres\/ [PG1] sq\npsql (13beta3 dbi services build)\nType \"help\" for help.\n\npostgres=# show wal_keep_size;\n wal_keep_size\n---------------\n 128MB\n(1 row)\n\npostgres=# show wal_keep_segments;\nERROR:  unrecognized configuration parameter \"wal_keep_segments\"\n<\/pre>\n<p>Compare that values with the above formular, we see that it work. 8 * 16MB = 128MB. It executes the change in the background  <\/p>\n<p>I think this is a quite small new feature, but it&#8217;s very helpful. Of course, there will be many people not thinking about that change in the beginning. So Patroni helps to minimize a human error here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Starting with PostgreSQL 13 there is a name and value change of one of the parameters used for the streaming replication of a replica server. Some may already know which parameter I am talking about. Until Postgres 12 it was called &#8220;wal_keep_segments&#8221; but with PostgreSQL 13 it will become &#8220;wal_keep_size&#8221;. In this small post I&hellip;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[4133],"tags":[],"class_list":["post-14715","post","type-post","status-publish","format-standard","hentry","category-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL 13 and Patroni 2.0 - when parameters change - dbi services | Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL 13 and Patroni 2.0 - when parameters change\" \/>\n<meta property=\"og:description\" content=\"Starting with PostgreSQL 13 there is a name and value change of one of the parameters used for the streaming replication of a replica server. Some may already know which parameter I am talking about. Until Postgres 12 it was called &#8220;wal_keep_segments&#8221; but with PostgreSQL 13 it will become &#8220;wal_keep_size&#8221;. In this small post I&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-14T04:15:46+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"PostgreSQL 13 and Patroni 2.0 &#8211; when parameters change\",\"datePublished\":\"2020-09-14T04:15:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/\"},\"wordCount\":394,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"articleSection\":[\"Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/\",\"name\":\"PostgreSQL 13 and Patroni 2.0 - when parameters change - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2020-09-14T04:15:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-13-and-patroni-2-0-when-parameters-change\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL 13 and Patroni 2.0 &#8211; when parameters change\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"caption\":\"Open source Team\"},\"description\":\"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL 13 and Patroni 2.0 - when parameters change - dbi services | Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL 13 and Patroni 2.0 - when parameters change","og_description":"Starting with PostgreSQL 13 there is a name and value change of one of the parameters used for the streaming replication of a replica server. Some may already know which parameter I am talking about. Until Postgres 12 it was called &#8220;wal_keep_segments&#8221; but with PostgreSQL 13 it will become &#8220;wal_keep_size&#8221;. In this small post I&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2020-09-14T04:15:46+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","twitter_misc":{"Written by":"Open source Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"PostgreSQL 13 and Patroni 2.0 &#8211; when parameters change","datePublished":"2020-09-14T04:15:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/"},"wordCount":394,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"articleSection":["Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/","name":"PostgreSQL 13 and Patroni 2.0 - when parameters change - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2020-09-14T04:15:46+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-13-and-patroni-2-0-when-parameters-change\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL 13 and Patroni 2.0 &#8211; when parameters change"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","caption":"Open source Team"},"description":"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.","url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14715"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14715\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}