{"id":5466,"date":"2015-09-04T14:26:30","date_gmt":"2015-09-04T12:26:30","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/"},"modified":"2015-09-04T14:26:30","modified_gmt":"2015-09-04T12:26:30","slug":"performing-an-initial-load-with-goldengate-2-expdpimpdp","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/","title":{"rendered":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp"},"content":{"rendered":"<p>The last post in this series outlined on how to do an initial load of the target database using the &#8220;file to replicat&#8221; method:<\/p>\n<ul>\n<li><a href=\"http:\/\/dbi-services.com\/blog\/installing-and-patching-oracle-goldengate-12c-to-the-latest-release\/\" target=\"_blank\" rel=\"noopener\">Installing and patching Oracle GoldenGate 12c to the latest release<\/a><\/li>\n<li><a href=\"http:\/\/dbi-services.com\/blog\/setting-up-a-sample-replication-with-goldengate\/\" target=\"_blank\" rel=\"noopener\">Setting up a sample replication with GoldenGate<\/a><\/li>\n<li><a href=\"http:\/\/dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-1-file-to-replicat\/\" target=\"_blank\" rel=\"noopener\">Performing an initial load with GoldenGate (1) \u2013 file to replicat<\/a><\/li>\n<\/ul>\n<p>In this post I&#8217;ll show how to do the initial load by exporting a schema from the source database, importing that into the target and then start the re-synchronization in GoldenGate.<\/p>\n<p>The initial setup on the source and the target is almost the same. But first lets delete all objects of &#8220;HR&#8221; in the target database:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndeclare\n  lv_statement varchar2(2000);\nbegin\n  for r in ( select object_name,object_type from dba_objects where owner='HR' )\n  loop\n    case r.object_type\n      when 'TABLE' then lv_statement := 'drop table hr.'||r.object_name||' cascade constraints';\n      when 'VIEW' then lv_statement := 'drop view hr.'||r.object_name;\n      when 'SEQUENCE' then lv_statement := 'drop sequence hr.'||r.object_name;\n      when 'PROCEDURE' then lv_statement := 'drop procedure hr.'||r.object_name;\n      else lv_statement := null;\n    end case;\n    begin\n      dbms_output.put_line(lv_statement);\n      execute immediate lv_statement;\n    exception when others then null;\n    end;\n  end loop;\nend;\n\/\nselect count(*) from dba_objects where owner='HR';\n<\/pre>\n<p>Exactly as in the last post lets setup the initial recording of transactions on the source and target databases. Not much explanation here as all the steps were already covered in the last post.<\/p>\n<p>On the source:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg1.it.dbi-services.com) 1&gt; dblogin useridalias DB1 domain admin\nSuccessfully logged into database.\n\nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 2&gt; add trandata HR.*\nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 2&gt; edit params extrcdc1\n<\/pre>\n<p>The parameters are:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nEXTRACT extrcdc1\nUSERIDALIAS DB1 domain admin\nEXTTRAIL .\/dirdat\/gg\nLOGALLSUPCOLS\nUPDATERECORDFORMAT compact\nTABLE hr.*;\nTABLEEXCLUDE HR.EMP_DETAILS_VIEW;\n<\/pre>\n<p>Next steps (as in the last post):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg1.it.dbi-services.com) 4&gt; dblogin useridalias DB1 domain admin\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 5&gt; register extract extrcdc1 database\nExtract EXTRCDC1 successfully registered with database at SCN 1863433.\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 6&gt; add extract extrcdc1, integrated tranlog, begin now\nEXTRACT added.\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 7&gt; add exttrail .\/dirdat\/gg, extract extrcdc1, megabytes 5\nEXTTRAIL added.\n\nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 10&gt; edit params dppump1\n\n<\/pre>\n<p>Parameters:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nEXTRACT dppump1\nPASSTHRU\nRMTHOST oelgg2, MGRPORT 7809\nRMTTRAIL .\/dirdat\/jj\nTABLE hr.*;\nTABLEEXCLUDE HR.EMP_DETAILS_VIEW;\n<\/pre>\n<p>Next steps (as in the last post)<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 12&gt; add extract dppump1, exttrailsource .\/dirdat\/gg\nEXTRACT added.\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 13&gt; add rmttrail .\/dirdat\/jj, extract dppump1, megabytes 5\nRMTTRAIL added.\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 23&gt; start extract *\n \nSending START request to MANAGER ...\nEXTRACT DPPUMP1 starting\n \nSending START request to MANAGER ...\nEXTRACT EXTRCDC1 starting\n \nGGSCI (oelgg1.it.dbi-services.com as ggadmin@DB1) 24&gt; info all\n \nProgram     Status      Group       Lag at Chkpt  Time Since Chkpt\n \nMANAGER     RUNNING                                           \nEXTRACT     RUNNING     DPPUMP1     00:00:00      00:00:02    \nEXTRACT     RUNNING     EXTRCDC1    00:00:07      00:00:07    \n<\/pre>\n<p>On the target system (as in the last post):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg2.it.dbi-services.com as ggadmin@DB2) 26&gt; edit params rplcdd\n<\/pre>\n<p>Parameters:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nREPLICAT replcdd\nASSUMETARGETDEFS\nDISCARDFILE .\/dirrpt\/replccd.dsc, purge\nUSERIDALIAS DB2 domain admin\nMAP hr.*, TARGET hr.*;\n<\/pre>\n<p>Configure the replicat (as in the last post):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg2.it.dbi-services.com) 1&gt; dblogin useridalias DB2 domain admin\nSuccessfully logged into database.\n \nGGSCI (oelgg2.it.dbi-services.com as ggadmin@DB2) 2&gt; add replicat replcdd, integrated, exttrail .\/dirdat\/jj\n<\/pre>\n<p>Record the SCN of the source database:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; select current_scn from v$database;\n\nCURRENT_SCN\n-----------\n    2040227\n<\/pre>\n<p>Having the scn we can now do an export of the &#8220;HR&#8221; schema on the source:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; create or replace directory gg as '\/var\/tmp';\n\nDirectory created.\n\nSQL&gt; !expdp userid=\"' \/ as sysdba'\" schemas=hr dumpfile=exphr.dmp logfile=exphr.log directory=gg flashback_scn=2040227\n<\/pre>\n<p>Transfer this to the target environment and do the import:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; create or replace directory gg as '\/var\/tmp';\n\nDirectory created.\n\nSQL&gt; !impdp userid=\"' \/ as sysdba'\" schemas=hr dumpfile=exphr.dmp logfile=imphr.log directory=gg\n<\/pre>\n<p>The rest is the same as in the last post. Start the replicat on the target:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nGGSCI (oelgg2.it.dbi-services.com) 6&gt; start replicat REPLCDD, aftercsn 2040227\n\nSending START request to MANAGER ...\nREPLICAT REPLCDD starting\n<\/pre>\n<p>Do some modifications on the source:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; update hr.countries set COUNTRY_NAME = 'Zimbabwe11' where COUNTRY_NAME = 'Zimbabwe10';\n\n1 row updated.\n\nSQL&gt; commit;\n<\/pre>\n<p>And then check the modification on the target:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; select * from hr.countries where country_name like '%Zimba%';\n\nCO COUNTRY_NAME \t\t\t     REGION_ID\n-- ---------------------------------------- ----------\nZW Zimbabwe11\t\t\t\t\t     4\n\nSQL&gt; select instance_name from v$instance;\n\nINSTANCE_NAME\n----------------\nDB2\n\nSQL&gt; \n<\/pre>\n<p>Quite easy if you get the basic steps for configuring the replicat and extracts right.<br \/>\nThe next post will look into how you can suspend replication for end of day processing and restart it afterwards automatically.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The last post in this series outlined on how to do an initial load of the target database using the &#8220;file to replicat&#8221; method: Installing and patching Oracle GoldenGate 12c to the latest release Setting up a sample replication with GoldenGate Performing an initial load with GoldenGate (1) \u2013 file to replicat In this post [&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":[328,96],"type_dbi":[],"class_list":["post-5466","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-goldengate","tag-oracle"],"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>Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp - 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\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp\" \/>\n<meta property=\"og:description\" content=\"The last post in this series outlined on how to do an initial load of the target database using the &#8220;file to replicat&#8221; method: Installing and patching Oracle GoldenGate 12c to the latest release Setting up a sample replication with GoldenGate Performing an initial load with GoldenGate (1) \u2013 file to replicat In this post [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-04T12:26:30+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\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp\",\"datePublished\":\"2015-09-04T12:26:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\"},\"wordCount\":287,\"commentCount\":0,\"keywords\":[\"GoldenGate\",\"Oracle\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\",\"name\":\"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2015-09-04T12:26:30+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp\"}]},{\"@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":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp - 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\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/","og_locale":"en_US","og_type":"article","og_title":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp","og_description":"The last post in this series outlined on how to do an initial load of the target database using the &#8220;file to replicat&#8221; method: Installing and patching Oracle GoldenGate 12c to the latest release Setting up a sample replication with GoldenGate Performing an initial load with GoldenGate (1) \u2013 file to replicat In this post [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/","og_site_name":"dbi Blog","article_published_time":"2015-09-04T12:26:30+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\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp","datePublished":"2015-09-04T12:26:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/"},"wordCount":287,"commentCount":0,"keywords":["GoldenGate","Oracle"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/","url":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/","name":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2015-09-04T12:26:30+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/performing-an-initial-load-with-goldengate-2-expdpimpdp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Performing an initial load with GoldenGate (2) \u2013 expdp\/impdp"}]},{"@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\/5466","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=5466"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/5466\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=5466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=5466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=5466"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=5466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}