{"id":11366,"date":"2018-06-22T09:24:54","date_gmt":"2018-06-22T07:24:54","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/"},"modified":"2018-06-22T09:24:54","modified_gmt":"2018-06-22T07:24:54","slug":"whats-new-in-edb-efm-3-1","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/","title":{"rendered":"What&#8217;s new in EDB EFM 3.1?"},"content":{"rendered":"<p>Beginning of this month <a href=\"https:\/\/www.enterprisedb.com\/\" target=\"_blank\" rel=\"noopener\">EnterpriseDB<\/a> announced a new version of its <a href=\"https:\/\/www.enterprisedb.com\/products\/edb-postgres-platform\/edb-postgres-failover-manager\" target=\"_blank\" rel=\"noopener\">Failover Manager<\/a>. Version 2.1 introduced controlled switchover operations, version 3.0 brought support for PostgreSQL 10 and now: What&#8217;s new in version 3.1? It might seem this is just a bugfix release but there is more and especially one enhancement I&#8217;ve waited for a long time. <\/p>\n<p><!--more--><\/p>\n<p>As you might remember: When you stopped EFM (before version 3.1) the nodes.in file was always empty again. What we usually did is to create a backup of that file so we just could copy it back but this is somehow annoying. The current version comes with a new property in the efm.properties file to handle that better:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n# When set to true, EFM will not rewrite the .nodes file whenever new nodes\n# join or leave the cluster. This can help starting a cluster in the cases\n# where it is expected for member addresses to be mostly static, and combined\n# with 'auto.allow.hosts' makes startup easier when learning failover manager.\nstable.nodes.file=true\n<\/pre>\n<p>When set to &#8220;true&#8221; the file will not be touched when you stop\/restart EFM on a node:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@:\/etc\/edb\/efm\/ [] cat efm.nodes\n# List of node address:port combinations separated by whitespace.\n# The list should include at least the membership coordinator's address.\n192.168.22.60:9998 192.168.22.61:9998 \nroot@:\/etc\/edb\/efm\/ [] systemctl stop efm-3.1.service\nroot@:\/etc\/edb\/efm\/ [] cat efm.nodes\n# List of node address:port combinations separated by whitespace.\n# The list should include at least the membership coordinator's address.\n192.168.22.60:9998 192.168.22.61:9998 \nroot@:\/etc\/edb\/efm\/ [] systemctl start efm-3.1.service\nroot@:\/etc\/edb\/efm\/ [] cat efm.nodes\n# List of node address:port combinations separated by whitespace.\n# The list should include at least the membership coordinator's address.\n192.168.22.60:9998 192.168.22.61:9998 \n<\/pre>\n<p>A small, but really nice improvement. At least with our deployments the amount of cluster nodes is rather static so this helps a lot. While this is a new property another property is gone:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@:\/etc\/edb\/efm\/ [] grep efm.license efm.properties\n<\/pre>\n<p>This means you do not anymore need a license key to test EFM for more than 60 days, which is great as well. Another small improvement is that you now can see on which node the VIP is currently running on:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [6,7]\">\nroot@:\/etc\/edb\/efm\/ [] \/usr\/edb\/efm\/bin\/efm cluster-status efm\nCluster Status: efm\n\n\tAgent Type  Address              Agent  DB       VIP\n\t-----------------------------------------------------------------------\n\tMaster      192.168.22.60        UP     UP       192.168.22.63*\n\tStandby     192.168.22.61        UP     UP       192.168.22.63\n\nAllowed node host list:\n\t192.168.22.60 192.168.22.61\n\nMembership coordinator: 192.168.22.61\n\nStandby priority host list:\n\t192.168.22.61\n\nPromote Status:\n\n\tDB Type     Address              XLog Loc         Info\n\t--------------------------------------------------------------\n\tMaster      192.168.22.60        0\/40006F0        \n\tStandby     192.168.22.61        0\/40006F0        \n\n\tStandby database(s) in sync with master. It is safe to promote.\n\n<\/pre>\n<p>When it comes to the VIP there is another enhancement which is controlled by new property:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@:\/etc\/edb\/efm\/ [] grep virtualIp.single efm.properties | tail -1\nvirtualIp.single=true\n<\/pre>\n<p>When this is set to &#8220;true&#8221; EFM will use the same address for the VIP after a failover on the new master. This was the default behavior before EFM 3.1. When you want to use another VIP on a new master you can now do that be switching that to false and provide a different VIP in the properties file on each node.<\/p>\n<p>That&#8217;s the important ones for me. The full list is in <a href=\"https:\/\/www.enterprisedb.com\/docs\/en\/3.1\/edbfm\/EDB_Failover_Manager_Guide.1.03.html#\" target=\"_blank\" rel=\"noopener\">the documentation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beginning of this month EnterpriseDB announced a new version of its Failover Manager. Version 2.1 introduced controlled switchover operations, version 3.0 brought support for PostgreSQL 10 and now: What&#8217;s new in version 3.1? It might seem this is just a bugfix release but there is more and especially one enhancement I&#8217;ve waited for a long [&hellip;]<\/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],"tags":[713,77],"type_dbi":[],"class_list":["post-11366","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-enterprisedb","tag-postgresql"],"acf":[],"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>What&#039;s new in EDB EFM 3.1? - 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\/whats-new-in-edb-efm-3-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What&#039;s new in EDB EFM 3.1?\" \/>\n<meta property=\"og:description\" content=\"Beginning of this month EnterpriseDB announced a new version of its Failover Manager. Version 2.1 introduced controlled switchover operations, version 3.0 brought support for PostgreSQL 10 and now: What&#8217;s new in version 3.1? It might seem this is just a bugfix release but there is more and especially one enhancement I&#8217;ve waited for a long [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-22T07:24:54+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=\"3 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\\\/whats-new-in-edb-efm-3-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"headline\":\"What&#8217;s new in EDB EFM 3.1?\",\"datePublished\":\"2018-06-22T07:24:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/\"},\"wordCount\":303,\"commentCount\":0,\"keywords\":[\"enterprisedb\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/\",\"name\":\"What's new in EDB EFM 3.1? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2018-06-22T07:24:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/whats-new-in-edb-efm-3-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What&#8217;s new in EDB EFM 3.1?\"}]},{\"@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\\\/4bae5e5dd8c7d48edbd948772b49b202\",\"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":"What's new in EDB EFM 3.1? - 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\/whats-new-in-edb-efm-3-1\/","og_locale":"en_US","og_type":"article","og_title":"What's new in EDB EFM 3.1?","og_description":"Beginning of this month EnterpriseDB announced a new version of its Failover Manager. Version 2.1 introduced controlled switchover operations, version 3.0 brought support for PostgreSQL 10 and now: What&#8217;s new in version 3.1? It might seem this is just a bugfix release but there is more and especially one enhancement I&#8217;ve waited for a long [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/","og_site_name":"dbi Blog","article_published_time":"2018-06-22T07:24:54+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"headline":"What&#8217;s new in EDB EFM 3.1?","datePublished":"2018-06-22T07:24:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/"},"wordCount":303,"commentCount":0,"keywords":["enterprisedb","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/","url":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/","name":"What's new in EDB EFM 3.1? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-06-22T07:24:54+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/whats-new-in-edb-efm-3-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What&#8217;s new in EDB EFM 3.1?"}]},{"@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\/4bae5e5dd8c7d48edbd948772b49b202","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\/11366","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=11366"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11366\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11366"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}