{"id":38959,"date":"2025-05-26T22:25:59","date_gmt":"2025-05-26T20:25:59","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=38959"},"modified":"2025-05-26T23:15:09","modified_gmt":"2025-05-26T21:15:09","slug":"optimize-materialization-of-exadata-pdb-sparse-clones","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/","title":{"rendered":"Optimize materialization of Exadata PDB sparse clones"},"content":{"rendered":"\n<p>Well, this blog is unfortunately reserved to DBA folk running Oracle engineered systems #Exadata, #ExaCC, #ExaCS and Oracle Multitenant database (aka. CDB) architecture.<br><br>One of our #ExaCC customer has a strong DevOps focused business and heavily relies on Exadata sparse clones to quickly provision &#8220;lightweight&#8221; database clones for their development teams. <br><br>As part of the move of an mission critical application to #ExaCC we enhanced our spare PDB materialization scripts.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-s-wrong-with-the-materialization\">What&#8217;s wrong with the Materialization?<\/h2>\n\n\n\n<p>At a first look, nothing! it&#8217;s a straightforward command as easy as creating a PDB using &#8220;CREATE PLUGGABLE DATABASE .. FROM &#8230;&#8221;. Except that it takes time&#8230;<br><br>below some &#8220;fun facts&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>PDB size<\/td><td>8TB (about 2500 datafiles)<\/td><\/tr><tr><td>Provisioning of a sparse clone runtime<br>(locally &#8211; same CDB \/\/ DOP = 8)<\/td><td>15mins<\/td><\/tr><tr><td>Provisioning of a full clone runtime<br>(locally &#8211; same CDB \/\/ DOP = 8)<\/td><td>&gt;3.5 hours<\/td><\/tr><tr><td>Materialization of sparse clone runtime<br>(DB_CREATE_FILE_DEST = &lt;sparse diskgroup&gt;)<\/td><td>&gt;20hours<\/td><\/tr><tr><td>Materialization of sparse clone runtime<br>(DB_CREATE_FILE_DEST = &lt;data diskgroup&gt;)<\/td><td>&gt; 6hours<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Indeed, we have set a &#8220;fixed&#8221; degree of parallelism to &#8220;constraint&#8221; the resources (CPU, IO) used by all kind of cloning activities.<br> <br>Nevertheless, the &#8220;ALTER PLUGGABLE DATABASE MATERIALIZE&#8221; is at least 5 times slower compared to the creation of a full PDB clone when copying all database block onto SPARSE diskgroup.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-does-it-take-so-much-time\">Why does it take so much time?<\/h2>\n\n\n\n<p>A simple check in the database alert*log provides some insights:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n2025-05-25T09:02:46.980450+02:00\n\nMoving datafile +SPRC4\/AVQD001T_SITE1\/35F11D075E0FB991E0631A1FA10A6291\/DATAFILE\/data_000014750.2483.1202028085 (2967) to +DATAC4\n<\/pre><\/div>\n\n\n<p>Indeed, we get flooded by &#8220;ALTER DATABASE MOVE DATAFILE&#8221;  commands.  A quick session tracing activity confirmed that Oracle performs sequentially online database move operations. Last one but not least, this operations runs all database server (VMcluster node).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n*** 2025-05-22T21:22:52.961911+02:00 (CDB$ROOT(1))\n\nMoving datafile +SPRC4\/AVQD001T_SITE1\/360EA26B7CE6F135E0631A1FA10A00C8\/DATAFILE\/data_000011575.2664.1202154873 (6656) to +DATAC4\n\nkcffo_mv_prepare: the secondary file +DATAC4\/AVQD001T_SITE1\/360EA26B7CE6F135E0631A1FA10A00C8\/DATAFILE\/data_000011575.2015.1202162415 is created with size 216\n\nkcffo_mv_domove: Blocks copied for file +DATAC4\/AVQD001T_SITE1\/360EA26B7CE6F135E0631A1FA10A00C8\/DATAFILE\/data_000011575.2015.1202162415 size 216\n\nMove operation committed for file +DATAC4\/AVQD001T_SITE1\/360EA26B7CE6F135E0631A1FA10A00C8\/DATAFILE\/data_000011575.2015.1202162415\n\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-are-we-able-to-monitor-the-materialize-process\">Are we able to monitor the &#8220;materialize&#8221; process ?<\/h2>\n\n\n\n<p>Yes, of course as usual operations which last for more than 6 seconds we can query GV$SESSION_LONGOPS:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n&gt; SELECT sid, serial#, opname, sofar, totalwork,\n                 ROUND(sofar\/totalwork*100,2) PCT_COMPLETE\n     FROM   V$SESSION_LONGOPS\n   WHERE TOTALWORK != 0\n        AND    SOFAR != TOTALWORK\n ORDER BY 1\n\n      SID   SERIAL# OPNAME                                               SOFAR     TOTALWORK   PCT_COMPLETE\n------- ---------- ---------------------------- ----------------- ----------------- -----------------\n   2228      30474  Online data file move                  4796186624       8615100416                    55.67\n\n1 row selected.\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-can-we-parallelize-alter-pluggable-database-process\">Can we parallelize &#8220;ALTER PLUGGABLE DATABASE&#8221; process?<\/h2>\n\n\n\n<p>Actually, IMHO Oracle shall provide through any kind of &#8220;magic&#8221; parameters. Unfortunately, researches on <a href=\"https:\/\/oradiff.oracle.com\">https:\/\/oradiff.oracle.com<\/a> as of Oracle 19.27 were unfruitful.<\/p>\n\n\n\n<p>Luckily, we did all scripting with #python using #cx_oracle driver and such quickly develop the necessary function to iterate over all pluggable database datafiles using parallel task execution with <a href=\"https:\/\/docs.python.org\/3\/library\/concurrent.futures.html\">conurrent.futures<\/a> module.<br><\/p>\n\n\n\n<p>The optimized process using 8 database sessions, all moving database files in parallel was worth;  The runtime for materializing the sparse clone is equal (or even less) to the time required to create a full PDB clone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wrap-up\">Wrap-up<\/h2>\n\n\n\n<p>For those, who already are confident with Exadata sparse clone (&amp; Exadata sparse ASM diskgroup) you might have spotted the we moved the database into the DATA diskgroup. This can be achieved by setting DB_CREATE_FILE_DEST parameter at pluggable database level before starting to materialize the datafiles. So, Materializing the PDB sparse cloning into DATA diskgroup is only 2 times slower compared to copying all blocks to SPARSE diskgroup.<\/p>\n\n\n\n<p><br>Oracle Exadata Exascale &amp; Oracle 23ai will definitively bring more flexibility to Exadata PDB sparse clones, at least the known limitations for Oracle19c will be from the past as communicated by Oracle.<br>However, the whole materialization remains uncovered so far.<br><br>At the time of writing this post the Oracle &#8220;Cloud&#8221; support team has been informed.<br><br>Last one but not least, from time to time we need to cleanup some leftovers from ASM sparse diskgroup (subject to another Oracle Service request).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n2025-05-25T09:02:35.623108+02:00\nWARNING: Cannot delete old file +SPRC4\/AVQD001T_SITE1\/35F11D075E0FB991E0631A1FA10A6291\/DATAFILE\/data_000014770.1000.1202028085 left after datafile move\n2025-05-25T09:02:35.623248+02:00\nErrors in file \/u02\/app\/oracle\/diag\/rdbms\/avqd001t_site1\/AVQD001T1\/trace\/AVQD001T1_ora_203496.trc:\n\nORA-15028: Oracle Automatic Storage Management (Oracle ASM) file &#039;+SPRC4\/AVQD001T_SITE1\/35F11D075E0FB991E0631A1FA10A6291\/DATAFILE\/data_000014770.1000.1202028085&#039; not dropped; currently being accessed\n<\/pre><\/div>\n\n\n<p>Keep you posted!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, this blog is unfortunately reserved to DBA folk running Oracle engineered systems #Exadata, #ExaCC, #ExaCS and Oracle Multitenant database (aka. CDB) architecture. One of our #ExaCC customer has a strong DevOps focused business and heavily relies on Exadata sparse clones to quickly provision &#8220;lightweight&#8221; database clones for their development teams. As part of the [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955,198,3624,2966,59],"tags":[3626,2597,64,96,66,1089],"type_dbi":[],"class_list":["post-38959","post","type-post","status-publish","format-standard","hentry","category-cloud","category-database-management","category-exacc-oracle","category-oci","category-oracle","tag-cx_oracle","tag-exacc-2","tag-multitenant","tag-oracle","tag-pdb","tag-python"],"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>Optimize materialization of Exadata PDB sparse clones - 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\/optimize-materialization-of-exadata-pdb-sparse-clones\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimize materialization of Exadata PDB sparse clones\" \/>\n<meta property=\"og:description\" content=\"Well, this blog is unfortunately reserved to DBA folk running Oracle engineered systems #Exadata, #ExaCC, #ExaCS and Oracle Multitenant database (aka. CDB) architecture. One of our #ExaCC customer has a strong DevOps focused business and heavily relies on Exadata sparse clones to quickly provision &#8220;lightweight&#8221; database clones for their development teams. As part of the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-26T20:25:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T21:15:09+00:00\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Witt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00f4me Witt\" \/>\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\/optimize-materialization-of-exadata-pdb-sparse-clones\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Witt\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/a2d3ecddaf732850101a39b9d62c31b7\"},\"headline\":\"Optimize materialization of Exadata PDB sparse clones\",\"datePublished\":\"2025-05-26T20:25:59+00:00\",\"dateModified\":\"2025-05-26T21:15:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\"},\"wordCount\":558,\"commentCount\":0,\"keywords\":[\"cx_oracle\",\"exa@cc\",\"multitenant\",\"Oracle\",\"PDB\",\"Python\"],\"articleSection\":[\"Cloud\",\"Database management\",\"ExaCC\",\"OCI\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\",\"name\":\"Optimize materialization of Exadata PDB sparse clones - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2025-05-26T20:25:59+00:00\",\"dateModified\":\"2025-05-26T21:15:09+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/a2d3ecddaf732850101a39b9d62c31b7\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimize materialization of Exadata PDB sparse clones\"}]},{\"@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\/a2d3ecddaf732850101a39b9d62c31b7\",\"name\":\"J\u00e9r\u00f4me Witt\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00f4me Witt\"},\"description\":\"J\u00e9rome Witt started his Consultant career a few years ago. He is specialized in database and infrastructure management, engineering, and optimization. He is very skilled in Oracle high availability, backup &amp; recovery, and tuning technologies. His expertise also includes the open source field (Linux\/Unix), advanced Perl, Shell, Windows PowerShell programming, and Automation tools (UC4). J\u00e9r\u00f4me Witt is Oracle Certified Professional 11g (OCP 11g), Oracle Certified Expert Tuning (OCE), and ITIL V3 Foundation certified. Prior to joining dbi services, J\u00e9r\u00f4me Witt was Consultant at Trivadis in Basel. He also worked as a Junior Automation specialist at Selmoni AG in Basel. J\u00e9r\u00f4me Witt holds a BTS degree in Information Systems and Industrial Networks from France. His branch-related experience covers Pharma, Health Care, Banking &amp; Financial Services, Energy, Automotive etc.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/jerome-witt\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Optimize materialization of Exadata PDB sparse clones - 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\/optimize-materialization-of-exadata-pdb-sparse-clones\/","og_locale":"en_US","og_type":"article","og_title":"Optimize materialization of Exadata PDB sparse clones","og_description":"Well, this blog is unfortunately reserved to DBA folk running Oracle engineered systems #Exadata, #ExaCC, #ExaCS and Oracle Multitenant database (aka. CDB) architecture. One of our #ExaCC customer has a strong DevOps focused business and heavily relies on Exadata sparse clones to quickly provision &#8220;lightweight&#8221; database clones for their development teams. As part of the [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/","og_site_name":"dbi Blog","article_published_time":"2025-05-26T20:25:59+00:00","article_modified_time":"2025-05-26T21:15:09+00:00","author":"J\u00e9r\u00f4me Witt","twitter_card":"summary_large_image","twitter_misc":{"Written by":"J\u00e9r\u00f4me Witt","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/"},"author":{"name":"J\u00e9r\u00f4me Witt","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/a2d3ecddaf732850101a39b9d62c31b7"},"headline":"Optimize materialization of Exadata PDB sparse clones","datePublished":"2025-05-26T20:25:59+00:00","dateModified":"2025-05-26T21:15:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/"},"wordCount":558,"commentCount":0,"keywords":["cx_oracle","exa@cc","multitenant","Oracle","PDB","Python"],"articleSection":["Cloud","Database management","ExaCC","OCI","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/","url":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/","name":"Optimize materialization of Exadata PDB sparse clones - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2025-05-26T20:25:59+00:00","dateModified":"2025-05-26T21:15:09+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/a2d3ecddaf732850101a39b9d62c31b7"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/optimize-materialization-of-exadata-pdb-sparse-clones\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Optimize materialization of Exadata PDB sparse clones"}]},{"@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\/a2d3ecddaf732850101a39b9d62c31b7","name":"J\u00e9r\u00f4me Witt","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/17095c081578ca53f52ec4030ba2bde72cc18badb325cd2ba1ee2831106507ad?s=96&d=mm&r=g","caption":"J\u00e9r\u00f4me Witt"},"description":"J\u00e9rome Witt started his Consultant career a few years ago. He is specialized in database and infrastructure management, engineering, and optimization. He is very skilled in Oracle high availability, backup &amp; recovery, and tuning technologies. His expertise also includes the open source field (Linux\/Unix), advanced Perl, Shell, Windows PowerShell programming, and Automation tools (UC4). J\u00e9r\u00f4me Witt is Oracle Certified Professional 11g (OCP 11g), Oracle Certified Expert Tuning (OCE), and ITIL V3 Foundation certified. Prior to joining dbi services, J\u00e9r\u00f4me Witt was Consultant at Trivadis in Basel. He also worked as a Junior Automation specialist at Selmoni AG in Basel. J\u00e9r\u00f4me Witt holds a BTS degree in Information Systems and Industrial Networks from France. His branch-related experience covers Pharma, Health Care, Banking &amp; Financial Services, Energy, Automotive etc.","url":"https:\/\/www.dbi-services.com\/blog\/author\/jerome-witt\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/38959","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\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=38959"}],"version-history":[{"count":11,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/38959\/revisions"}],"predecessor-version":[{"id":38971,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/38959\/revisions\/38971"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=38959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=38959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=38959"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=38959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}