{"id":13421,"date":"2019-11-05T14:55:13","date_gmt":"2019-11-05T14:55:13","guid":{"rendered":"https:\/\/dbtut.com\/?p=13421"},"modified":"2021-09-19T11:08:39","modified_gmt":"2021-09-19T11:08:39","slug":"how-to-failover-and-failback-postgresql-replication","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/","title":{"rendered":"How To Failover and Failback PostgreSQL Replication"},"content":{"rendered":"<p>You may want to read the following articles about replication before reading this article.<\/p>\n<p>&#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2018\/06\/11\/how-to-install-postgresql-replication-on-centos\/\" target=\"_blank\" rel=\"noopener noreferrer\">How To Install PostgreSQL Replication By using archive_command On Centos<\/a>&#8220;,<\/p>\n<p>&#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-install-postgresql-replication-with-replication-slots\/\" target=\"_blank\" rel=\"noopener noreferrer\">How To Install PostgreSQL Replication With Replication Slots<\/a>&#8221;<\/p>\n<p>If you want to failover replication you should add trigger file to recovery.conf on secondary server. We have mentioned this in previous articles.<\/p>\n<p>To perform failover we will create a file on specified directory in trigger file.<\/p>\n<h1>Failover PostgreSQL Replication<\/h1>\n<p><strong>On Secondary Server(it will be new primary)<\/strong><\/p>\n<p>Connect to postgresql and execute the below command<\/p>\n<pre class=\"lang:default decode:true \">select pg_create_physical_replication_slot('old primary server name');<\/pre>\n<p id=\"IEfUjgU\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"126\" class=\"size-full wp-image-13423 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc188ffd0e8b.png\" alt=\"\" \/><\/p>\n<p>Then exit from postgresql and perform following steps:<\/p>\n<h3>Stop Postgresql On Primary Server(it will be new secondary)<\/h3>\n<pre class=\"lang:default decode:true\">systemctl stop postgresql-11.service<\/pre>\n<p><strong>Create trigger file on Secondary Server(it will be new primary) To perform Failover<\/strong><\/p>\n<p><strong>With postgres user:<\/strong><\/p>\n<pre class=\"lang:default decode:true\">cd \/dbwhite\/dbtest\/11\/data\r\ntouch promotedbtest.data<\/pre>\n<p>After creating necessary file, failover process have performed. You can control recovery.conf file to understand the process completed succesfuly. If recovery.conf file changed to recovery.done, it means that failover process completed succesfully.<\/p>\n<p id=\"eIvyXXN\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13425 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc189b772e7c.png\" alt=\"\" width=\"907\" height=\"46\" \/><\/p>\n<h3>Check replication status On New Primary Server<\/h3>\n<p style=\"margin: 0in; font-family: Calibri; font-size: 11.0pt;\">As you can see, the reverse replication did not occur automatically.<\/p>\n<p id=\"EZQMRmU\"><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"138\" class=\"size-full wp-image-13427 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc18a059e6e1.png\" alt=\"\" \/><\/p>\n<h3>Create Reverse Replication Again After Failover in PostgreSQL<\/h3>\n<p>Go to old master(new secondary) to install replication again between new master and new secondary server.<\/p>\n<p><strong>On new Primary Server:<\/strong><\/p>\n<pre class=\"lang:default decode:true \">ALTER SYSTEM SET synchronous_commit TO 'remote_write';\r\nALTER SYSTEM SET synchronous_standby_names TO 'newsecondaryservername';\r\nselect pg_reload_conf();<\/pre>\n<p id=\"JNBazzy\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"222\" class=\"size-full wp-image-13429 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc18b112b24b.png\" alt=\"\" \/><\/p>\n<p><strong>On New Secondary<\/strong><\/p>\n<p><strong>Create a recovery.conf file on data directory with below content<\/strong><\/p>\n<pre class=\"lang:default decode:true\">standby_mode = 'on'\r\nprimary_conninfo = 'user=replication passfile=''\/var\/lib\/pgsql\/.pgpass'' host=yournewprimaryserverip port=5432 sslmode=prefer sslcompression=0 krbsrvname=postgres target_session_attrs=any application_name='synchronous_standby_name_you_set_on_new_primary_server'\r\nprimary_slot_name = 'yournewsecondaryservername'\r\ntrigger_file='\/dbwhite\/dbats\/promotdbats.data'\r\nrecovery_target_timeline='latest'<\/pre>\n<p>It makes more sense to copy the recovery.done file in the new master from the new primary server to the new secondary with the following script. But when you copy, some of the above parameters will not be displayed. For example, recovery_target_timeline = &#8216;latest&#8217;<\/p>\n<p>Add these missing parameters to the new recovery.conf file.<\/p>\n<p><strong>On new primary server with postgres<\/strong><\/p>\n<pre class=\"lang:default decode:true \">scp -p \/dbwhite\/dbyeni\/11\/data\/recovery.done newsecondaryip:\/dbwhite\/dbyeni\/11\/data\/recovery.conf<\/pre>\n<p id=\"UmzNIdP\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-13432 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc18bd19fef0.png\" alt=\"\" width=\"880\" height=\"66\" \/><\/p>\n<p><strong>On New Secondary Server:<\/strong><\/p>\n<p>If you copy it instead of creating a new file, remember to change the application_name, host, and primary_slot_name in the recovery.conf file on the new secondary server.<\/p>\n<p>Edit postgresql.conf or postgresql.auto.conf (if you use auto conf) on data directory and remove below lines.<\/p>\n<pre class=\"lang:default decode:true \">vi postgresql.auto.conf<\/pre>\n<p>Delete below lines:<\/p>\n<pre class=\"lang:default decode:true\">synchronous_standby_names = 'yoursecondaryservername'\r\nsynchronous_commit TO 'remote_write';<\/pre>\n<p><strong>On new Primary Server:<\/strong><\/p>\n<p>Then edit\u00a0 pg_hba.conf and check the below line. It should be as follows<\/p>\n<pre class=\"lang:default decode:true\">host\u00a0\u00a0\u00a0 replication\u00a0\u00a0\u00a0\u00a0 replication\u00a0\u00a0\u00a0\u00a0 newsecondaryserverip\/32\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 trust<\/pre>\n<p><strong>On new secondary:<\/strong><\/p>\n<p>Finally start postgresql on new secondary<\/p>\n<pre class=\"lang:default decode:true\">systemctl start postgresql-11<\/pre>\n<h3>Check PostgreSQL Replication Status on New Primary Server<\/h3>\n<p>Connect To PostgreSQL and run below statement.<\/p>\n<pre class=\"lang:default decode:true \">select * from pg_stat_replication;<\/pre>\n<p>If you have done everything in order, you will see a result like the following.<\/p>\n<p id=\"EvuYbyz\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"552\" class=\"size-full wp-image-13434 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/img_5dc18c8a2fbc9.png\" alt=\"\" \/><\/p>\n\n<p style=\"margin: 0in; font-family: Calibri; font-size: 11.0pt;\">\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_13421\" class=\"pvc_stats all  \" data-element-id=\"13421\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>You may want to read the following articles about replication before reading this article. &#8220;How To Install PostgreSQL Replication By using archive_command On Centos&#8220;, &#8220;How To Install PostgreSQL Replication With Replication Slots&#8221; If you want to failover replication you should add trigger file to recovery.conf on secondary server. We have mentioned this in previous articles. &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_13421\" class=\"pvc_stats all  \" data-element-id=\"13421\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":13435,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[5],"tags":[5264,5265,5259,5263,5266,5262,5261,5269,5260,5268,5270,5271,5243,5251,5274,5275,5278,5267,230,5273,5272,5276],"class_list":["post-13421","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-postgres","tag-create-a-recovery-conf","tag-create-a-recovery-conf-file","tag-create-reverse-replication-again-after-failover-in-postgresql","tag-failback-postgresql-replication","tag-failback-replication","tag-failback-replication-in-postgresql","tag-failover-and-failback-postgresql-replication","tag-failover-postgresql","tag-failover-postgresql-replication","tag-failover-replication","tag-manual-failover","tag-manual-failover-postgresql","tag-pg_reload_conf","tag-pg_stat_replication","tag-postgresql-auto-conf","tag-primary_slot_name","tag-recovery_target_timeline","tag-reinstall-postgresql-replication-after-failover","tag-standby_mode","tag-synchronous_commit","tag-synchronous_standby_names","tag-trigger_file"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How To Failover and Failback PostgreSQL Replication - Database Tutorials<\/title>\n<meta name=\"description\" content=\"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To Failover and Failback PostgreSQL Replication - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-05T14:55:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-19T11:08:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"454\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"dbtut\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dbtut\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\"},\"author\":{\"name\":\"dbtut\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408\"},\"headline\":\"How To Failover and Failback PostgreSQL Replication\",\"datePublished\":\"2019-11-05T14:55:13+00:00\",\"dateModified\":\"2021-09-19T11:08:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\"},\"wordCount\":408,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png\",\"keywords\":[\"Create a recovery.conf\",\"Create a recovery.conf file\",\"Create Reverse Replication Again After Failover in PostgreSQL\",\"Failback PostgreSQL Replication\",\"Failback Replication\",\"Failback Replication in PostgreSQL\",\"Failover and Failback PostgreSQL Replication\",\"Failover PostgreSQL\",\"Failover PostgreSQL Replication\",\"Failover Replication\",\"manual failover\",\"manual failover postgresql\",\"pg_reload_conf()\",\"pg_stat_replication\",\"postgresql.auto.conf\",\"primary_slot_name\",\"recovery_target_timeline\",\"Reinstall PostgreSQL Replication After Failover\",\"standby_mode\",\"synchronous_commit\",\"synchronous_standby_names\",\"trigger_file\"],\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\",\"name\":\"How To Failover and Failback PostgreSQL Replication - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png\",\"datePublished\":\"2019-11-05T14:55:13+00:00\",\"dateModified\":\"2021-09-19T11:08:39+00:00\",\"description\":\"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png\",\"width\":454,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To Failover and Failback PostgreSQL Replication\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbtut.com\/#website\",\"url\":\"https:\/\/dbtut.com\/\",\"name\":\"Database Tutorials\",\"description\":\"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux\",\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbtut.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dbtut.com\/#organization\",\"name\":\"dbtut\",\"url\":\"https:\/\/dbtut.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"width\":223,\"height\":36,\"caption\":\"dbtut\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408\",\"name\":\"dbtut\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g\",\"caption\":\"dbtut\"},\"description\":\"We are a team with over 10 years of database management and BI experience. Our Expertises: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.\",\"sameAs\":[\"http:\/\/NurullahCAKIR\"],\"url\":\"https:\/\/dbtut.com\/index.php\/author\/dbtut\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How To Failover and Failback PostgreSQL Replication - Database Tutorials","description":"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.","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:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/","og_locale":"en_US","og_type":"article","og_title":"How To Failover and Failback PostgreSQL Replication - Database Tutorials","og_description":"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.","og_url":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/","og_site_name":"Database Tutorials","article_published_time":"2019-11-05T14:55:13+00:00","article_modified_time":"2021-09-19T11:08:39+00:00","og_image":[{"width":454,"height":300,"url":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png","type":"image\/png"}],"author":"dbtut","twitter_card":"summary_large_image","twitter_misc":{"Written by":"dbtut","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/"},"author":{"name":"dbtut","@id":"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408"},"headline":"How To Failover and Failback PostgreSQL Replication","datePublished":"2019-11-05T14:55:13+00:00","dateModified":"2021-09-19T11:08:39+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/"},"wordCount":408,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png","keywords":["Create a recovery.conf","Create a recovery.conf file","Create Reverse Replication Again After Failover in PostgreSQL","Failback PostgreSQL Replication","Failback Replication","Failback Replication in PostgreSQL","Failover and Failback PostgreSQL Replication","Failover PostgreSQL","Failover PostgreSQL Replication","Failover Replication","manual failover","manual failover postgresql","pg_reload_conf()","pg_stat_replication","postgresql.auto.conf","primary_slot_name","recovery_target_timeline","Reinstall PostgreSQL Replication After Failover","standby_mode","synchronous_commit","synchronous_standby_names","trigger_file"],"articleSection":["PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/","url":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/","name":"How To Failover and Failback PostgreSQL Replication - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png","datePublished":"2019-11-05T14:55:13+00:00","dateModified":"2021-09-19T11:08:39+00:00","description":"If you want to failover postgres replication you should add trigger file to recovery.conf on secondary server.","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#primaryimage","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/11\/Ads\u0131z-4.png","width":454,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2019\/11\/05\/how-to-failover-and-failback-postgresql-replication\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"How To Failover and Failback PostgreSQL Replication"}]},{"@type":"WebSite","@id":"https:\/\/dbtut.com\/#website","url":"https:\/\/dbtut.com\/","name":"Database Tutorials","description":"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux","publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbtut.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dbtut.com\/#organization","name":"dbtut","url":"https:\/\/dbtut.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","width":223,"height":36,"caption":"dbtut"},"image":{"@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dbtut.com\/#\/schema\/person\/fc047c39e1e53dce28fc4253529ea408","name":"dbtut","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322c32021bf651d9e103b183963c479a9c9791ead0715f4348203496c39aa54?s=96&d=mm&r=g","caption":"dbtut"},"description":"We are a team with over 10 years of database management and BI experience. Our Expertises: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.","sameAs":["http:\/\/NurullahCAKIR"],"url":"https:\/\/dbtut.com\/index.php\/author\/dbtut\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/13421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=13421"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/13421\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media\/13435"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=13421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=13421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=13421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}