{"id":12869,"date":"2019-10-11T14:22:21","date_gmt":"2019-10-11T12:22:21","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/"},"modified":"2024-09-10T17:37:47","modified_gmt":"2024-09-10T15:37:47","slug":"patroni-operations-switchover-and-failover","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/","title":{"rendered":"Patroni Operations &#8211; switchover and failover"},"content":{"rendered":"<p>In this post we will have a look at switchover and failover of a Patroni cluster. As well as a look at the maintenance mode Patroni offers, which gives the opportunity to prevent from an automatic failover.<br \/>\n<!--more--><\/p>\n<h3>Switchover<\/h3>\n<p>There are two possibilities to run a switchover, either in scheduled mode or immediately.<\/p>\n<h4>1. Scheduled Switchover<\/h4>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">postgres@patroni1:\/home\/postgres\/ [PG1] patronictl switchover\nMaster [patroni1]:\nCandidate ['patroni2', 'patroni3'] []: patroni2\nWhen should the switchover take place (e.g. 2019-10-08T11:31 )  [now]: 2019-10-08T10:32\nCurrent cluster topology\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  2 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 |        | running |  2 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  2 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\nAre you sure you want to schedule switchover of cluster PG1 at 2019-10-08T10:32:00+02:00, demoting current master patroni1? [y\/N]: y\n2019-10-08 10:31:14.89236 Switchover scheduled\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  2 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 |        | running |  2 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  2 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\n Switchover scheduled at: 2019-10-08T10:32:00+02:00\n                    from: patroni1\n                      to: patroni2\npostgres@patroni1:\/home\/postgres\/ [PG1]\n<\/pre>\n<p>That&#8217;s it. At the given time, the switchover will take place. All you see in the logfile is an entry like this<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [3]\">Oct  8 10:32:00 patroni1 patroni: 2019-10-08 10:32:00,006 INFO: Manual scheduled failover at 2019-10-08T10:32:00+02:00\nOct  8 10:32:00 patroni1 patroni: 2019-10-08 10:32:00,016 INFO: Got response from patroni2 http:\/\/192.168.22.112:8008\/patroni: {\"database_system_identifier\": \"6745341072751547355\", \"postmaster_start_time\": \"2019-10-08 10:09:40.217 CEST\", \"timeline\": 2, \"cluster_unlocked\": false, \"patroni\": {\"scope\": \"PG1\", \"version\": \"1.6.0\"}, \"state\": \"running\", \"role\": \"replica\", \"xlog\": {\"received_location\": 83886560, \"replayed_timestamp\": null, \"paused\": false, \"replayed_location\": 83886560}, \"server_version\": 110005}\nOct  8 10:32:00 patroni1 patroni: 2019-10-08 10:32:00,113 INFO: manual failover: demoting myself\nOct  8 10:32:01 patroni1 patroni: 2019-10-08 10:32:01,256 INFO: Leader key released\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03,271 INFO: Local timeline=2 lsn=0\/6000028\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03,279 INFO: master_timeline=3\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03,281 INFO: master: history=1#0110\/5000098#011no recovery target specified\nOct  8 10:32:03 patroni1 patroni: 2#0110\/6000098#011no recovery target specified\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03,282 INFO: closed patroni connection to the postgresql cluster\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03,312 INFO: postmaster pid=11537\nOct  8 10:32:03 patroni1 patroni: 192.168.22.111:5432 - no response\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03.325 CEST - 1 - 11537 -  - @ - 0LOG:  listening on IPv4 address \"192.168.22.111\", port 5432\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03.328 CEST - 2 - 11537 -  - @ - 0LOG:  listening on Unix socket \"\/tmp\/.s.PGSQL.5432\"\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03.339 CEST - 3 - 11537 -  - @ - 0LOG:  redirecting log output to logging collector process\nOct  8 10:32:03 patroni1 patroni: 2019-10-08 10:32:03.339 CEST - 4 - 11537 -  - @ - 0HINT:  Future log output will appear in directory \"pg_log\".\nOct  8 10:32:04 patroni1 patroni: 192.168.22.111:5432 - accepting connections\nOct  8 10:32:04 patroni1 patroni: 192.168.22.111:5432 - accepting connections\nOct  8 10:32:04 patroni1 patroni: 2019-10-08 10:32:04,895 INFO: Lock owner: patroni2; I am patroni1\nOct  8 10:32:04 patroni1 patroni: 2019-10-08 10:32:04,895 INFO: does not have lock\nOct  8 10:32:04 patroni1 patroni: 2019-10-08 10:32:04,896 INFO: establishing a new patroni connection to the postgres cluster\n<\/pre>\n<h4>2. Immediate switchover<\/h4>\n<p>Here you start the same way as for planned switchover, but the switchover will take place immediatelly.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">postgres@patroni1:\/home\/postgres\/ [PG1] patronictl list\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 |        | running |  1 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 | Leader | running |  1 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  1 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\npostgres@patroni1:\/home\/postgres\/ [PG1] patronictl switchover\nMaster [patroni2]:\nCandidate ['patroni1', 'patroni3'] []: patroni1\nWhen should the switchover take place (e.g. 2019-10-08T11:09 )  [now]:\nCurrent cluster topology\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 |        | running |  1 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 | Leader | running |  1 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  1 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\nAre you sure you want to switchover cluster PG1, demoting current master patroni2? [y\/N]: y\n2019-10-08 10:09:38.88046 Successfully switched over to \"patroni1\"\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  1 |           |\n|   PG1   | patroni2 | 192.168.22.112 |        | stopped |    |   unknown |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  1 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\npostgres@patroni1:\/home\/postgres\/ [PG1] patronictl list\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  2 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 |        | running |  2 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  2 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\npostgres@patroni1:\/home\/postgres\/ [PG1]\n<\/pre>\n<h3>Failover<\/h3>\n<p>In difference to the switchover, the failover is executed automatically, when the Leader node is getting unavailable for unplanned reason.<br \/>\nYou can only adjust some database parameter to affect the failover.<\/p>\n<p>The parameters for failover arre also managed using patronictl. But they are not in the parameter section, they are above. so let&#8217;s say, we adjust one parameter and add one paramter to not use the default anymore.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">postgres@patroni1:\/u01\/app\/postgres\/local\/dmk\/etc\/ [PG1] patronictl edit-config\npostgres@patroni1:\/u01\/app\/postgres\/local\/dmk\/etc\/ [PG1] patronictl edit-config\n---\n+++\n@@ -1,5 +1,6 @@\n-loop_wait: 7\n+loop_wait: 10\n maximum_lag_on_failover: 1048576\n+master_start_timeout: 240\n postgresql:\n   parameters:\n     archive_command: \/bin\/true\n\nApply these changes? [y\/N]: y\nConfiguration changed\n<\/pre>\n<p>Afterwards there is no need to restart the database. Changes take affect immediately. So the failover can be configured according to every special need. A list of all possible parameter changes can be found <a href=\"https:\/\/patroni.readthedocs.io\/en\/latest\/SETTINGS.html#bootstrap-configuration\" target=\"\u201d_blank\u201d\" rel=\"noopener noreferrer\"> here <\/a>.<\/p>\n<h3>Maintenance mode<\/h3>\n<p>In some cases it is necessary to do maintenance on a single node and you do not want Patroni to manage the cluster. This can be needed for e.g. release updates.<br \/>\nWhen Patroni paused, it won&#8217;t change the state of PostgeSQL. For example it will not try to start the cluster when it is stopped.<\/p>\n<p>So let&#8217;s do an example. We will pause the cluster, stop the replica, upgrade from 9.6.8 to 9.6.13 and afterwards start the replica again. In case we do not pause the replica, the database will be started automatically by Patroni. <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [12];\">\npostgres@patroni1:\/home\/postgres\/ [PG1] patronictl pause\nSuccess: cluster management is paused\nYou have new mail in \/var\/spool\/mail\/opendb\npostgres@patroni1:\/home\/postgres\/ [PG1] patronictl list\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  2 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 |        | running |  2 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  2 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\n Maintenance mode: on\n<\/pre>\n<p>On the replica<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\npostgres@patroni2:\/home\/postgres\/ [PG1] pg_ctl stop -D \/u02\/pgdata\/96\/PG1\/ -m fast\n\npostgres@patroni2:\/home\/postgres\/ [PG1] export PATH= \/u01\/app\/postgres\/product\/PG96\/db_13\/bin:$PATH\npostgres@patroni2:\/home\/postgres\/ [PG1] export PORT=5432\npostgres@patroni2:\/home\/postgres\/ [PG1] which pg_ctl\n\/u01\/app\/opendb\/product\/PG96\/db_13\/bin\/pg_ctl\n\npostgres@patroni2:\/home\/postgres\/ [PG1] pg_ctl -D \/u02\/pgdata\/96\/PG1 start\nserver starting\npostgres@patroni2:\/home\/postgres\/ [PG1] 2019-10-08 17:25:28.358 CEST - 1 - 23192 -  - @ - 0LOG:  redirecting log output to logging collector process\n2019-10-08 17:25:28.358 CEST - 2 - 23192 -  - @ - 0HINT:  Future log output will appear in directory \"pg_log\".\n\npostgres@patroni2:\/home\/postgres\/ [PG1] psql -c \"select version()\" postgres\n                                                           version\n------------------------------------------------------------------------------------------------------------------------------\n PostgreSQL 9.6.13 dbi services build on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit\n(1 row)\n\npostgres@patroni2:\/home\/postgres\/ [PG1] patronictl resume\nSuccess: cluster management is resumed\n\npostgres@patroni2:\/home\/postgres\/ [PG1] patronictl list\n+---------+----------+----------------+--------+---------+----+-----------+\n| Cluster |  Member  |      Host      |  Role  |  State  | TL | Lag in MB |\n+---------+----------+----------------+--------+---------+----+-----------+\n|   PG1   | patroni1 | 192.168.22.111 | Leader | running |  5 |       0.0 |\n|   PG1   | patroni2 | 192.168.22.112 |        | running |  5 |       0.0 |\n|   PG1   | patroni3 | 192.168.22.113 |        | running |  5 |       0.0 |\n+---------+----------+----------------+--------+---------+----+-----------+\n<\/pre>\n<p>You can do this on the other nodes as well.<\/p>\n<h3> Conclusion<\/h3>\n<p>Switchover is quite easy and for all the test I did so far it was really reliable. As well as the failover, here you just have to think about adjusting the parameters to your needs. Not in every case it is the best solution to wait 5 min for a failover.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post we will have a look at switchover and failover of a Patroni cluster. As well as a look at the maintenance mode Patroni offers, which gives the opportunity to prevent from an automatic failover.<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,83],"tags":[84,1543,857],"type_dbi":[],"class_list":["post-12869","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-postgresql","tag-high-availability","tag-patroni","tag-switchover"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Patroni Operations - switchover and failover - dbi 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\/patroni-operations-switchover-and-failover\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Patroni Operations - switchover and failover\" \/>\n<meta property=\"og:description\" content=\"In this post we will have a look at switchover and failover of a Patroni cluster. As well as a look at the maintenance mode Patroni offers, which gives the opportunity to prevent from an automatic failover.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-11T12:22:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-10T15:37:47+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\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=\"7 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\\\/patroni-operations-switchover-and-failover\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"Patroni Operations &#8211; switchover and failover\",\"datePublished\":\"2019-10-11T12:22:21+00:00\",\"dateModified\":\"2024-09-10T15:37:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/\"},\"wordCount\":369,\"commentCount\":0,\"keywords\":[\"High availability\",\"Patroni\",\"switchover\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/\",\"name\":\"Patroni Operations - switchover and failover - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-10-11T12:22:21+00:00\",\"dateModified\":\"2024-09-10T15:37:47+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/patroni-operations-switchover-and-failover\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Patroni Operations &#8211; switchover and failover\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"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\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Patroni Operations - switchover and failover - dbi 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\/patroni-operations-switchover-and-failover\/","og_locale":"en_US","og_type":"article","og_title":"Patroni Operations - switchover and failover","og_description":"In this post we will have a look at switchover and failover of a Patroni cluster. As well as a look at the maintenance mode Patroni offers, which gives the opportunity to prevent from an automatic failover.","og_url":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/","og_site_name":"dbi Blog","article_published_time":"2019-10-11T12:22:21+00:00","article_modified_time":"2024-09-10T15:37:47+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"Patroni Operations &#8211; switchover and failover","datePublished":"2019-10-11T12:22:21+00:00","dateModified":"2024-09-10T15:37:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/"},"wordCount":369,"commentCount":0,"keywords":["High availability","Patroni","switchover"],"articleSection":["Database Administration &amp; Monitoring","PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/","url":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/","name":"Patroni Operations - switchover and failover - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-10-11T12:22:21+00:00","dateModified":"2024-09-10T15:37:47+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/patroni-operations-switchover-and-failover\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Patroni Operations &#8211; switchover and failover"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","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":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"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\/12869","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=12869"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12869\/revisions"}],"predecessor-version":[{"id":34704,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12869\/revisions\/34704"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12869"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}