{"id":31520,"date":"2024-03-01T08:19:34","date_gmt":"2024-03-01T07:19:34","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=31520"},"modified":"2024-03-01T08:19:37","modified_gmt":"2024-03-01T07:19:37","slug":"getting-started-with-greenplum-3-behind-the-scenes","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/","title":{"rendered":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes"},"content":{"rendered":"\n<p>If you followed <a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-1-installation\/\" target=\"_blank\" rel=\"noreferrer noopener\">part 1<\/a> and <a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-2-initializing-and-bringing-up-the-cluster\/\" target=\"_blank\" rel=\"noreferrer noopener\">part 2<\/a> of this little blog series you now have a running Greenplum system. There is one coordinator host and there are two segment hosts. In this post we&#8217;ll look at what really was initialized, how that looks on disk and how the PostgreSQL instances communicate with each other.<\/p>\n\n\n\n<p>Lets start with a simple overview of what we have now:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\n                               |-------------------|\n                               |                   |\n                               |     Segment 1     |\n                               |                   |\n                               |-------------------|\n                                        \/\n   |-------------------|               \/\n   |                   |              \/\n   |   Coordinator     |--------------\n   |                   |              \\\n   |-------------------|               \\\n                                        \\\n                               |-------------------|\n                               |                   |\n                               |     Segment 2     |\n                               |                   |\n                               |-------------------|\n<\/pre><\/div>\n\n\n<p>We have the coordinator node on the left, somehow connected to the two segment nodes on the right. As Greenplum is based on PostgreSQL we should easily be able to find out on which port the coordinator instance is listening:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\n&#x5B;gpadmin@cdw ~]$ psql -c &quot;show port&quot; postgres\n port \n------\n 5432\n(1 row)\n<\/pre><\/div>\n\n\n<p>Another bit of information we can get out of the Greenplum catalog is, how the instances are connected between the nodes:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres=# select * from gp_segment_configuration order by dbid;\n dbid | content | role | preferred_role | mode | status | port | hostname | address |          datadir          \n------+---------+------+----------------+------+--------+------+----------+---------+---------------------------\n    1 |      -1 | p    | p              | n    | u      | 5432 | cdw      | cdw     | \/data\/coordinator\/gpseg-1\n    2 |       0 | p    | p              | s    | u      | 6000 | sdw1     | sdw1    | \/data\/primary\/gpseg0\n    3 |       1 | p    | p              | s    | u      | 6000 | sdw2     | sdw2    | \/data\/primary\/gpseg1\n    4 |       0 | m    | m              | s    | u      | 7000 | sdw2     | sdw2    | \/data\/mirror\/gpseg0\n    5 |       1 | m    | m              | s    | u      | 7000 | sdw1     | sdw1    | \/data\/mirror\/gpseg1\n(5 rows)\n<\/pre><\/div>\n\n\n<p>(All the cluster views are documented <a href=\"https:\/\/docs.vmware.com\/en\/VMware-Greenplum\/7\/greenplum-database\/ref_guide-system_catalogs-catalog_ref-views.html#summary-views\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>)<\/p>\n\n\n\n<p>Putting this information into the picture from above, gives us this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\n                                        |-------------------|\n                                    6000|primary            |\n                                        |     Segment 1     |\n                                    7000|mirror             |\n                                        |-------------------|\n                                                 \/\n            |-------------------|               \/\n            |                   |              \/\n        5432|   Coordinator     |--------------\n            |                   |              \\\n            |-------------------|               \\\n                                                 \\\n                                        |-------------------|\n                                    6000|primary            |\n                                        |     Segment 2     |\n                                    7000|mirror             |\n                                        |-------------------|\n<\/pre><\/div>\n\n\n<p>Looking at the PostgreSQL configuration of the the two mirror instances we can see that the mirror on segment 1 is replicating from the primary from segment 2. The mirror on segment 2 is replicating from the primary on segment 1:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,3,5,9,11,13]; title: ; notranslate\" title=\"\">\n&#x5B;gpadmin@sdw1 gpseg1]$ hostname\nsdw1\n&#x5B;gpadmin@sdw1 gpseg1]$ pwd\n\/data\/mirror\/gpseg1\n&#x5B;gpadmin@sdw1 gpseg1]$ grep conninfo postgresql.*conf\npostgresql.auto.conf:primary_conninfo = &#039;user=gpadmin passfile=&#039;&#039;\/home\/gpadmin\/.pgpass&#039;&#039; host=sdw2 port=6000 sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any application_name=gp_walreceiver&#039;\npostgresql.conf:#primary_conninfo = &#039;&#039;                  # connection string to sending server\n\n&#x5B;gpadmin@sdw2 gpseg0]$ hostname\nsdw2\n&#x5B;gpadmin@sdw2 gpseg0]$ pwd\n\/data\/mirror\/gpseg0\n&#x5B;gpadmin@sdw2 gpseg0]$ grep conninfo postgresql.*conf\npostgresql.auto.conf:primary_conninfo = &#039;user=gpadmin passfile=&#039;&#039;\/home\/gpadmin\/.pgpass&#039;&#039; host=sdw1 port=6000 sslmode=prefer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs=any application_name=gp_walreceiver&#039;\npostgresql.conf:#primary_conninfo = &#039;&#039;                  # connection string to sending server\n<\/pre><\/div>\n\n\n<p>This means that the mirror instances are just normal PostgreSQL replicas:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n                                        |-------------------|\n                             |------6000|primary---------   |\n                             |          |     Segment 1 |   |\n                             |      7000|mirror&amp;lt;------| |   |\n                             |          |-------------------|\n                             |                        | |\n            |-------------------|                     | |\n            |                   |                     | |\n        5432|   Coordinator     |                     | |\n            |                   |                     | |\n            |-------------------|                     | |\n                             |                        | |\n                             |          |-------------------|\n                             |------6000|primary ------ |   |\n                                        |     Segment 2 |   |\n                                    7000|mirror&amp;lt;--------|   |\n                                        |-------------------|\n<\/pre><\/div>\n\n\n<p>Both replicas run in synchronous mode, which can be seen in gp_stat_replication:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1]; title: ; notranslate\" title=\"\">\npostgres=# select * from gp_stat_replication ;\n gp_segment_id | pid  | usesysid | usename | application_name |   client_addr   | client_hostname | client_port |         backend_start         | backend_xmin |   state   | sent_lsn  | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state |          reply_time           | sync_error \n---------------+------+----------+---------+------------------+-----------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-----------+------------+-----------+-----------+------------+---------------+------------+-------------------------------+------------\n             1 | 6156 |       10 | gpadmin | gp_walreceiver   | 192.168.122.201 |                 |       18462 | 2024-02-29 12:51:32.070682+01 |              | streaming | 0\/C000158 | 0\/C000158 | 0\/C000158 | 0\/C000158  |           |           |            |             1 | sync       | 2024-02-29 14:04:45.448297+01 | none\n             0 | 6599 |       10 | gpadmin | gp_walreceiver   | 192.168.122.202 |                 |       58176 | 2024-02-29 12:51:32.612645+01 |              | streaming | 0\/C000158 | 0\/C000158 | 0\/C000158 | 0\/C000158  |           |           |            |             1 | sync       | 2024-02-29 14:04:44.243651+01 | none\n\n<\/pre><\/div>\n\n\n<p>When one of the primary segments fails, the attached mirror segment (which is a replica) will take over.<\/p>\n\n\n\n<p>By default direct connections to either a primary or a mirror segment are not allowed \/ possible:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,5]; title: ; notranslate\" title=\"\">\n&#x5B;gpadmin@sdw1 gpseg1]$ psql -p 7000\npsql: error: FATAL:  the database system is in recovery mode\nDETAIL:  last replayed record at 0\/C000158\n- VERSION: PostgreSQL 12.12 (Greenplum Database 7.1.0 build commit:e7c2b1f14bb42a1018ac57d14f4436880e0a0515 Open Source) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), 64-bit compiled on Jan 19 2024 06:51:45 Bhuvnesh C.\n&#x5B;gpadmin@sdw1 gpseg1]$ psql -p 6000 postgres\npsql: error: FATAL:  connections to primary segments are not allowed\nDETAIL:  This database instance is running as a primary segment in a Greenplum cluster and does not permit direct connections.\nHINT:  To force a connection anyway (dangerous!), use utility mode.\n\n<\/pre><\/div>\n\n\n<p>The consequence is, that the coordinator node is the only entry point into the Greenplum system. Nothing is supposed to happen directly on any of the segments. <\/p>\n\n\n\n<p>Lets create a new database on the coordinator host and then retrieve the OID this database got:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; highlight: [1,3,15]; title: ; notranslate\" title=\"\">\npostgres=# create database d;\nCREATE DATABASE\npostgres=# \\l\n                                List of databases\n   Name    |  Owner  | Encoding |   Collate   |    Ctype    |  Access privileges  \n-----------+---------+----------+-------------+-------------+---------------------\n d         | gpadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | \n postgres  | gpadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | \n template0 | gpadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c\/gpadmin         +\n           |         |          |             |             | gpadmin=CTc\/gpadmin\n template1 | gpadmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c\/gpadmin         +\n           |         |          |             |             | gpadmin=CTc\/gpadmin\n(4 rows)\n\npostgres=# select oid,datname from pg_database;\n  oid  |  datname  \n-------+-----------\n 13720 | postgres\n     1 | template1\n 17121 | d\n 13719 | template0\n(4 rows)\n<\/pre><\/div>\n\n\n<p>We can&#8217;t directly connect to the primary and mirror segments, but we can verify if the database got replicated on the file system on one of the segment nodes:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,8,9,16]; title: ; notranslate\" title=\"\">\n&#x5B;gpadmin@sdw2 data]$ ls -la mirror\/gpseg0\/base\/\ntotal 52\ndrwx------  6 gpadmin gpadmin   54 Feb 29 14:26 .\ndrwx------ 21 gpadmin gpadmin 4096 Feb 29 13:01 ..\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 1\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 13719\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 13720\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 14:26 17121\n&#x5B;gpadmin@sdw2 data]$ ls -la primary\/gpseg1\/base\/\ntotal 52\ndrwx------  6 gpadmin gpadmin   54 Feb 29 14:26 .\ndrwx------ 21 gpadmin gpadmin 4096 Feb 29 13:01 ..\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 1\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 13719\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 12:51 13720\ndrwx------  2 gpadmin gpadmin 8192 Feb 29 14:26 17121\n\n<\/pre><\/div>\n\n\n<p>Not a big surprise, the new database is of course there on the segment, otherwise the whole setup would not make much sense.<\/p>\n\n\n\n<p>In the next post we&#8217;ll look at backup and recovery of such a system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you followed part 1 and part 2 of this little blog series you now have a running Greenplum system. There is one coordinator host and there are two segment hosts. In this post we&#8217;ll look at what really was initialized, how that looks on disk and how the PostgreSQL instances communicate with each other. [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198],"tags":[3276,77],"type_dbi":[],"class_list":["post-31520","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","tag-greenplum","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Getting started with Greenplum \u2013 3 \u2013 Behind the scenes - 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\/getting-started-with-greenplum-3-behind-the-scenes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes\" \/>\n<meta property=\"og:description\" content=\"If you followed part 1 and part 2 of this little blog series you now have a running Greenplum system. There is one coordinator host and there are two segment hosts. In this post we&#8217;ll look at what really was initialized, how that looks on disk and how the PostgreSQL instances communicate with each other. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-01T07:19:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-01T07:19:37+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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes\",\"datePublished\":\"2024-03-01T07:19:34+00:00\",\"dateModified\":\"2024-03-01T07:19:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\"},\"wordCount\":359,\"commentCount\":0,\"keywords\":[\"Greenplum\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\",\"name\":\"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2024-03-01T07:19:34+00:00\",\"dateModified\":\"2024-03-01T07:19:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes\"}]},{\"@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":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes - 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\/getting-started-with-greenplum-3-behind-the-scenes\/","og_locale":"en_US","og_type":"article","og_title":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes","og_description":"If you followed part 1 and part 2 of this little blog series you now have a running Greenplum system. There is one coordinator host and there are two segment hosts. In this post we&#8217;ll look at what really was initialized, how that looks on disk and how the PostgreSQL instances communicate with each other. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/","og_site_name":"dbi Blog","article_published_time":"2024-03-01T07:19:34+00:00","article_modified_time":"2024-03-01T07:19:37+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes","datePublished":"2024-03-01T07:19:34+00:00","dateModified":"2024-03-01T07:19:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/"},"wordCount":359,"commentCount":0,"keywords":["Greenplum","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring","Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/","url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/","name":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2024-03-01T07:19:34+00:00","dateModified":"2024-03-01T07:19:37+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-greenplum-3-behind-the-scenes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with Greenplum \u2013 3 \u2013 Behind the scenes"}]},{"@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\/31520","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=31520"}],"version-history":[{"count":18,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/31520\/revisions"}],"predecessor-version":[{"id":31540,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/31520\/revisions\/31540"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=31520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=31520"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=31520"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=31520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}