{"id":11287,"date":"2018-05-28T17:47:17","date_gmt":"2018-05-28T15:47:17","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/"},"modified":"2018-05-28T17:47:17","modified_gmt":"2018-05-28T15:47:17","slug":"edb-failover-manager-in-ebd-containers-in-minishiftopenshift","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/","title":{"rendered":"EDB Failover Manager in EDB containers in Minishift\/OpenShift"},"content":{"rendered":"<p><b>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available.<\/b><\/p>\n<p>In the last three posts <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">we deployed an EDB database container and two pgpool instances<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/scaling-the-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">scaled that up to include a read only replica<\/a> and finally <a href=\"https:\/\/www.dbi-services.com\/blog\/customizing-postgresql-parameters-in-edb-containers-in-minishiftopenshift\/\" target=\"_blank\" rel=\"noopener noreferrer\">customized the PostgreSQL instance with ConfigMaps<\/a>. In this post will we look at how the EDB Failover Manager is configured in the database containers.<\/p>\n<p><!--more--><\/p>\n<p>This are the pods currently running in my environment, two pgpool containers and two PostgreSQL containers:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc get pods\nNAME                 READY     STATUS    RESTARTS   AGE\nedb-as10-0-1-gk8dt   1\/1       Running   1          9d\nedb-as10-0-1-n5z4w   1\/1       Running   0          3m\nedb-pgpool-1-h5psk   1\/1       Running   1          9d\nedb-pgpool-1-tq95s   1\/1       Running   1          9d\n<\/pre>\n<p>The first one (edb-as10-0-1-gk8dt) is the primary instance and EFM should be running there as well:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~$ oc rsh edb-as10-0-1-gk8dt\nsh-4.2$ psql -c \"select pg_is_in_recovery()\" postgres\n pg_is_in_recovery \n-------------------\n f\n(1 row)\n\nsh-4.2$ ps -ef | grep efm\nedbuser    202     1  0 08:45 ?        00:00:04 \/usr\/lib\/jvm\/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64\/jre\/bin\/java -cp \/usr\/edb\/efm-3.0\/lib\/EFM-3.0.0.jar -Xmx32m com.enterprisedb.efm.main.ServiceCommand __int_start \/etc\/edb\/efm-3.0\/edb.properties\nsh-4.2$ \n<\/pre>\n<p>Looking at the configuration there are some interesting points:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ cat \/etc\/edb\/efm-3.0\/edb.properties | egrep -v \"^$|^#\"\ndb.user=edbuser\ndb.password.encrypted=ca78865e0f85d15edc6c51b2e5c0a58f\ndb.port=5444\ndb.database=edb\ndb.service.owner=edbuser\ndb.service.name=\ndb.bin=\/usr\/edb\/as10\/bin\ndb.recovery.conf.dir=\/edbvolume\/edb\/edb-as10-0-1-gk8dt\/pgdata\njdbc.sslmode=disable\nuser.email=none@none.com\nscript.notification=\nbind.address=172.17.0.6:5430\nadmin.port=5431\nis.witness=false\nlocal.period=10\nlocal.timeout=60\nlocal.timeout.final=10\nremote.timeout=10\nnode.timeout=10\nstop.isolated.master=false\npingServerIp=8.8.8.8\npingServerCommand=\/bin\/ping -q -c3 -w5\nauto.allow.hosts=false\ndb.reuse.connection.count=0\nauto.failover=true\nauto.reconfigure=true\npromotable=true\nminimum.standbys=0\nrecovery.check.period=2\nauto.resume.period=0\nvirtualIp=\nvirtualIp.interface=\nvirtualIp.prefix=\nscript.fence=\nscript.post.promotion=\/var\/efm\/post_promotion_steps.sh %f\nscript.resumed=\nscript.db.failure=\/var\/efm\/stopEFM\nscript.master.isolated=\nscript.remote.pre.promotion=\nscript.remote.post.promotion=\nscript.custom.monitor=\ncustom.monitor.interval=\ncustom.monitor.timeout=\ncustom.monitor.safe.mode=\nsudo.command=sudo\nsudo.user.command=sudo -u %u\nlog.dir=\/var\/log\/efm-3.0\njgroups.loglevel=\nefm.loglevel=\njvm.options=-Xmx32m\nkubernetes.port.range=1\nkubernetes.namespace=myproject\nkubernetes.pod.labels=cluster=edb\nkubernetes.master.host=172.30.0.1\nkubernetes.master.httpsPort=443\ncreate.database.master=\/var\/lib\/edb\/bin\/createmasterdb.sh\ncreate.database.standby=\/var\/lib\/edb\/bin\/createstandbydb.sh\nkubernetes.is.init.master=true\n<\/pre>\n<p>The last 8 lines are not there when you do a manual EFM installation so this is something specific in the container deployment. Apparently it is EFM that creates the master and the replica instance(s). The rest is more or less the default setup. The cluster status should be fine then:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ \/usr\/edb\/efm-3.0\/bin\/efm cluster-status edb\nCluster Status: edb\nVIP: \n\n\tAgent Type  Address              Agent  DB       Info\n\t--------------------------------------------------------------\n\tMaster      172.17.0.6           UP     UP        \n\tStandby     172.17.0.8           UP     UP        \n\nAllowed node host list:\n\t172.17.0.6\n\nMembership coordinator: 172.17.0.6\n\nStandby priority host list:\n\t172.17.0.8\n\nPromote Status:\n\n\tDB Type     Address              XLog Loc         Info\n\t--------------------------------------------------------------\n\tMaster      172.17.0.6           0\/5000140        \n\tStandby     172.17.0.8           0\/5000140        \n\n\tStandby database(s) in sync with master. It is safe to promote.\n<\/pre>\n<p>We should be able to do a switchover:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ \/usr\/edb\/efm-3.0\/bin\/efm promote edb -switchover    \nPromote\/switchover command accepted by local agent. Proceeding with promotion and will reconfigure original master. Run the 'cluster-status' command for information about the new cluster state.\nsh-4.2$ \/usr\/edb\/efm-3.0\/bin\/efm cluster-status edb\nCluster Status: edb\nVIP: \n\n\tAgent Type  Address              Agent  DB       Info\n\t--------------------------------------------------------------\n\tStandby     172.17.0.6           UP     UP        \n\tMaster      172.17.0.8           UP     UP        \n\nAllowed node host list:\n\t172.17.0.6\n\nMembership coordinator: 172.17.0.6\n\nStandby priority host list:\n\t172.17.0.6\n\nPromote Status:\n\n\tDB Type     Address              XLog Loc         Info\n\t--------------------------------------------------------------\n\tMaster      172.17.0.8           0\/60001A8        \n\tStandby     172.17.0.6           0\/60001A8        \n\n\tStandby database(s) in sync with master. It is safe to promote.\n<\/pre>\n<p>Seems it worked so the instances should have switched the roles and the current instance must be in recovery:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nsh-4.2$ psql -c \"select pg_is_in_recovery()\" postgres\n pg_is_in_recovery \n-------------------\n t\n(1 row)\n<\/pre>\n<p>Fine. This works as expected. So far for the first look at EFM inside the containers. It is not the same setup you&#8217;ll find when you install EFM on your own and EFM is doing more here than it does usually. A lot of stuff happens in the scripts provided by EDB here:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nsh-4.2$ ls -la \/var\/lib\/edb\/bin\/\ntotal 72\ndrwxrwx---  2 enterprisedb root  4096 May 11 20:40 .\ndrwxrwx--- 24 enterprisedb root  4096 May 28 18:03 ..\n-rwxrwx---  1 enterprisedb root  1907 Feb 17 17:14 cleanup.sh\n-rwxrwx---  1 enterprisedb root  4219 May 10 22:11 createmasterdb.sh\n-rwxrwx---  1 enterprisedb root  2582 May 11 03:30 createstandbydb.sh\n-rwxrwx---  1 enterprisedb root  1491 May 10 22:12 dbcommon.sh\n-rwxrwx---  1 enterprisedb root 10187 May 10 22:28 dbfunctions.sh\n-rwxrwx---  1 enterprisedb root   621 May 10 22:15 dbsettings.sh\n-rwxrwx---  1 enterprisedb root  5778 Apr 26 22:55 helperfunctions.sh\n-rwxrwx---  1 enterprisedb root    33 Feb 18 03:43 killPgAgent\n-rwxrwx---  1 enterprisedb root  5431 May 10 22:29 launcher.sh\n-rwxrwx---  1 enterprisedb root   179 May 10 22:12 startPgAgent\n-rwxrwx---  1 enterprisedb root   504 May 11 12:32 startPgPool\n<\/pre>\n<p>These scripts are referenced in the EFM configuration in several places and contain all the logic for initializing the cluster, starting it up, stopping and restarting the cluster, setting up replication and so on. To understand what really is going on one needs to understand the scripts (which is out of scope of this post).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last three posts we deployed an EDB database container and two pgpool instances, scaled that up to include a read only replica and finally customized the PostgreSQL instance with ConfigMaps. In this post will we [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[713,1343,1344,77],"type_dbi":[],"class_list":["post-11287","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-enterprisedb","tag-minishift","tag-openshift","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>EDB Failover Manager in EDB containers in Minishift\/OpenShift - 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\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EDB Failover Manager in EDB containers in Minishift\/OpenShift\" \/>\n<meta property=\"og:description\" content=\"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last three posts we deployed an EDB database container and two pgpool instances, scaled that up to include a read only replica and finally customized the PostgreSQL instance with ConfigMaps. In this post will we [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-28T15:47:17+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 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\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"EDB Failover Manager in EDB containers in Minishift\\\/OpenShift\",\"datePublished\":\"2018-05-28T15:47:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/\"},\"wordCount\":310,\"commentCount\":0,\"keywords\":[\"enterprisedb\",\"MiniShift\",\"OpenShift\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/\",\"name\":\"EDB Failover Manager in EDB containers in Minishift\\\/OpenShift - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2018-05-28T15:47:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EDB Failover Manager in EDB containers in Minishift\\\/OpenShift\"}]},{\"@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\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"EDB Failover Manager in EDB containers in Minishift\/OpenShift - 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\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/","og_locale":"en_US","og_type":"article","og_title":"EDB Failover Manager in EDB containers in Minishift\/OpenShift","og_description":"This blog refers to an older version of EDB&#8217;s Postgres on Kubernetes offering that is no longer available. In the last three posts we deployed an EDB database container and two pgpool instances, scaled that up to include a read only replica and finally customized the PostgreSQL instance with ConfigMaps. In this post will we [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/","og_site_name":"dbi Blog","article_published_time":"2018-05-28T15:47:17+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"EDB Failover Manager in EDB containers in Minishift\/OpenShift","datePublished":"2018-05-28T15:47:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/"},"wordCount":310,"commentCount":0,"keywords":["enterprisedb","MiniShift","OpenShift","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/","url":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/","name":"EDB Failover Manager in EDB containers in Minishift\/OpenShift - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-05-28T15:47:17+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/edb-failover-manager-in-ebd-containers-in-minishiftopenshift\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"EDB Failover Manager in EDB containers in Minishift\/OpenShift"}]},{"@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\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11287","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\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11287"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11287\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11287"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}