{"id":14386,"date":"2020-07-02T15:41:55","date_gmt":"2020-07-02T13:41:55","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/"},"modified":"2020-07-02T15:41:55","modified_gmt":"2020-07-02T13:41:55","slug":"poug-2020-workshop-day-1","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/","title":{"rendered":"POUG 2020 Workshop Day 1"},"content":{"rendered":"<p>I had the opportunity to participate to POUG day 1 and wanted through this blog to share some of my feedback on the interesting sessions I could follow.<\/p>\n<p>First of all, I would like to mention the great introduction done by the staff team and the great organization. POUG staff team could adapt to the coronavirus situation and organized excellent POUG virtual days. Well done!<\/p>\n<p><!--more--><\/p>\n<p>I had the chance today to follow a few sessions :<\/p>\n<ul>\n<li>Developing Clusterware agents by Michal Wesolowski for which I will provide a few feedback and interesting stuff to know, later in this blog.<\/li>\n<li>The Heart of Oracle &#8211; how the core RDBMS engine works by Martin Widlake. Martin presented how the heart of oracle works from the instance to the database files going through the redo logs, archive logs. He addressed how blocks are handled, how SQL statements are parsed and optimized. By the way, did you know that during a transaction a single block goes to the SGA (buffer cache) and multiple blocks goes to the PGA, so not shared between other sessions? Same for full table scan. I did not, I was always thinking that all blocks went from the data files to the buffer cache. Also it is good to know that oracle use hashing algorithm to find a block in the SGA.<\/li>\n<li>The foundations of understanding Execution Plans by Jonathan Lewis. Great subject! Using concrete examples, Jonathan covered a complex subject : how does an execution plans work.<\/li>\n<li>Wait Events and DB time by Franck Pachot. My collegue Franck gave a very interesting session explaining wait events and DB time for which I will provide some of the information provided later in this blog.<\/li>\n<li>Analysis of a Couple AWR Reports by Toon Koppelaars. This presentation was a good follow up of Franck&#8217;s session. Toon explained how to interpret AWR Report.<\/li>\n<\/ul>\n<h3>Developing Clusterware agents<\/h3>\n<p>Michal did a great interactive presentation and demo, having the demos refreshing diagrams displayed in the presentation using webservices development.  If you have the opportunity to follow one day one of Michal&#8217;s presentation, I would really encourage you to do so. You will enjoy and have fun!<\/p>\n<p>We got a great introduction and explanation on how Clusters are working. From the free solution (clusterware) to payable solution (veritas cluster).<\/p>\n<p>Comparison on some solutions can be found on the next picture :<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\" alt=\"\" width=\"300\" height=\"162\" class=\"alignleft size-medium wp-image-41377\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<p>Grid infrastructure is composed of :<\/p>\n<ul>\n<li>Clusterware \/ Oracle restart<\/li>\n<li>ASM<\/li>\n<\/ul>\n<p>The cluster architecture looks like :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-1.jpg\" alt=\"\" width=\"300\" height=\"182\" class=\"alignleft size-medium wp-image-41378\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<h4>Oracle clusterware : database and clustering<\/h4>\n<p>We can use oracle clusterware to make high available application with built-in agents.<\/p>\n<p>The command <code>crsctl status type<\/code> will provide the configuration information of one or more particular resource types. All prefixes ora are Oracle objects.<\/p>\n<p>To create HA applications, cluster_resource or local_resource should be used.<\/p>\n<p>Oracle tools to deal with clusterware : <\/p>\n<ul>\n<li>srvctl : dedicated to ora. resources, to be used form oracle_home and not GI home<\/li>\n<li>crsctl : to be used for custom resources, for monitoring all resources, managing OHAS resources, managing CRS itself (crsctl stop\/start crs)<\/li>\n<\/ul>\n<p>Oracle Grid Infrastructures standalone Agents :<br \/>\nHA agents for oracle applications like GoldenGate, peoplesoft, weblogic, mysql, &#8230;. Written in Perl, easy to install and manage.<\/p>\n<p>Standard Edition HA :<\/p>\n<ul>\n<li>Available from GI 19.7 and DB SE2 19.7<\/li>\n<li>No HA\/GI for SE2 from 19.3 to 19.6<\/li>\n<li>Need ASM or ACFS<\/li>\n<\/ul>\n<p>As seen in the next picture, we can understand that clusterware is more complex that we could imagine :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-4.jpg\" alt=\"\" width=\"300\" height=\"169\" class=\"alignleft size-medium wp-image-41379\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-5.jpg\" alt=\"\" width=\"300\" height=\"160\" class=\"alignleft size-medium wp-image-41382\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<p>Dependencies between ressources (node 1 -&gt; RES A -&gt; RESB):<br \/>\nTo display dependency tree we will use <code>crsctl stat res -dependency [-stop | -pullup]<\/code>.<br \/>\nTo force to stop resource and all dependencies : <code>crsctl stop res resA -f<\/code>.<br \/>\nTo start resB and automatically resA first : <code>crsctl start res resB<\/code>.<br \/>\nTo relocate the whole chain on new node : <code>crsctl relocate res resA -n node3 -f<\/code>.<br \/>\nWith hard dependency : both resources should be started on same node.<br \/>\nPullup dependency is very important and needs to be used when having hard dependency : If resource B depends on resource A and resource A fails and then recovers, then resource B is restarted.<\/p>\n<p>Resource states \/ return codes are displayed on next picture : <\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-6.jpg\" alt=\"\" width=\"300\" height=\"154\" class=\"alignleft size-medium wp-image-41384\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<h3>Wait Events and DB time<\/h3>\n<p>Wait events have been implemented since 1992 to see where the time is spent when DB is busy, to verify resource utilization, to know load profile, to see which wait can scale or not. Otherwise, without wait events tuning might be done with blinded eyes.<\/p>\n<p>System calls are wait events.<\/p>\n<p>Wait events can be seen in sql_trace, v$ views, statspatck, ASH, AWR, or any other tool like tkprof&#8230;<\/p>\n<p>Between the fetch() and resultset, database needs to do some work : CPU work, read blocks,&#8230; Between CPU work the server process is just waiting (idle, I\/O,&#8230;). Idea is then to instrument this time and do profiling.<\/p>\n<p>Idle is a system call as well, waiting for network. Between fetch() and resultset it is user response time. Tuning will try to reduce this response time.<\/p>\n<p>DB time (session is active) =  user response time = cpu and\/or wait events<\/p>\n<p>Wait events can be SQL net message to client or from client, PL\/SQL lock timer.<\/p>\n<p>cpu time = parse queries, read blocks or sort rows. <\/p>\n<ul>\n<li>Tuning idea, investigate execution plans.<\/li>\n<li>Reduce parse queries : use bind variables for similar queries.<\/li>\n<li>Reduce read blocks : Use indexes for better selectivity for the predicates or use hash join to join many rows.<\/li>\n<li>Reduce sort row : Do not selet all columns (select *) if not needed.<\/li>\n<\/ul>\n<p>wait events :<br \/>\nOnly count wait events for DB time on foreground sessions. Other processes wait event can be troubleshoot further if needed.<\/p>\n<p>I\/O from user session process to shared buffer cache are named db file and the one to PGA are named direct path :<\/p>\n<ul>\n<li>db file read<\/li>\n<ul>\n<li>read one block to buffer cache : db file sequential read<\/li>\n<li>read multiple blocks to buffer cache : db file scattered read, db file parallel read<\/li>\n<\/ul>\n<li>db file sequential read<\/li>\n<ul>\n<li>single block read. waits is the throughtput of single block reads (divided by elapsed time for IOPS). wait average time is the latency to read 8k.<\/li>\n<li>physical reads si the number of blocks, physical IO request is the number of IO calls<\/li>\n<\/ul>\n<\/ul>\n<p>For average time : look at the storage, get faster disk nvme, &#8230;<br \/>\nIf count is too high : better execution plan, larger buffer cache or PGA, &#8230;<\/p>\n<p>ASH viewer can be downloaded if no diagnostic license.<\/p>\n<p>application wait class : locks<\/p>\n<p>log file sync = commit wait<\/p>\n<ul>\n<li>average time is too high : reduce queue length, get faster disks<\/li>\n<li>count is too high : avoid row by row commit, use no logging operation, look at nowait<\/li>\n<\/ul>\n<p>system I\/O comes in major cases from background processes, backups running, contention on control file write (due to multiplexing), too many log switches<\/p>\n<p>Tools :\tSQL trace, tkprof, v$ views<\/p>\n<p>Following picture is a nice conclusion to summary wait events. I like it&#8230; \ud83d\ude09<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Wait-events_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Wait-events_1.jpg\" alt=\"\" width=\"300\" height=\"161\" class=\"alignleft size-medium wp-image-41388\" \/><\/a><\/p>\n<p><\/br><\/br><\/br><\/br><\/br><\/br><\/p>\n<h3>Conclusion<\/h3>\n<p>This POUG event was a really great event and I would encourage anybody to participate to the next one. Sessions were really interesting with high technical level. Been busy tomorrow I will unfortunately not be able to participate to day 2. Thanks POUG staff team to organize this event! Well done!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had the opportunity to participate to POUG day 1 and wanted through this blog to share some of my feedback on the interesting sessions I could follow. First of all, I would like to mention the great introduction done by the staff team and the great organization. POUG staff team could adapt to the [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":14387,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[96,2018],"type_dbi":[],"class_list":["post-14386","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-oracle","tag-poug"],"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>POUG 2020 Workshop Day 1 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"POUG 2020 Workshop Day 1\" \/>\n<meta property=\"og:description\" content=\"I had the opportunity to participate to POUG day 1 and wanted through this blog to share some of my feedback on the interesting sessions I could follow. First of all, I would like to mention the great introduction done by the staff team and the great organization. POUG staff team could adapt to the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-02T13:41:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1106\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marc Wagner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Wagner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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\/poug-2020-workshop-day-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\"},\"author\":{\"name\":\"Marc Wagner\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"headline\":\"POUG 2020 Workshop Day 1\",\"datePublished\":\"2020-07-02T13:41:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\"},\"wordCount\":1158,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\",\"keywords\":[\"Oracle\",\"POUG\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\",\"name\":\"POUG 2020 Workshop Day 1 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\",\"datePublished\":\"2020-07-02T13:41:55+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg\",\"width\":2048,\"height\":1106},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"POUG 2020 Workshop Day 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\",\"name\":\"Marc Wagner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"caption\":\"Marc Wagner\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"POUG 2020 Workshop Day 1 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/","og_locale":"en_US","og_type":"article","og_title":"POUG 2020 Workshop Day 1","og_description":"I had the opportunity to participate to POUG day 1 and wanted through this blog to share some of my feedback on the interesting sessions I could follow. First of all, I would like to mention the great introduction done by the staff team and the great organization. POUG staff team could adapt to the [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/","og_site_name":"dbi Blog","article_published_time":"2020-07-02T13:41:55+00:00","og_image":[{"width":2048,"height":1106,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg","type":"image\/jpeg"}],"author":"Marc Wagner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Wagner","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/"},"author":{"name":"Marc Wagner","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"headline":"POUG 2020 Workshop Day 1","datePublished":"2020-07-02T13:41:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/"},"wordCount":1158,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg","keywords":["Oracle","POUG"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/","url":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/","name":"POUG 2020 Workshop Day 1 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg","datePublished":"2020-07-02T13:41:55+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Cluster-2.jpg","width":2048,"height":1106},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/poug-2020-workshop-day-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"POUG 2020 Workshop Day 1"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628","name":"Marc Wagner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","caption":"Marc Wagner"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14386","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\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14386"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/14387"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14386"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=14386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}