{"id":2853,"date":"2013-01-21T08:37:00","date_gmt":"2013-01-21T07:37:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/"},"modified":"2013-01-21T08:37:00","modified_gmt":"2013-01-21T07:37:00","slug":"resource-failover-dans-grid-infrastructure","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/","title":{"rendered":"Resource FAILOVER dans Grid Infrastructure"},"content":{"rendered":"<p>Dans le cadre d&#8217;un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j&#8217;ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l&#8217;algorithme de basculement d&#8217;une ressource et des param\u00e8tres le r\u00e9gissant.<\/p>\n<p>On trouve dans la documentation Oracle des informations sur les cinq param\u00e8tres intervenant dans la prise de d\u00e9cision, \u00e0 savoir:<\/p>\n<ul>\n<li>CHECK_INTERVAL: L&#8217;Intervalle de temps entre deux ex\u00e9cutions d&#8217;une action de v\u00e9rification.<\/li>\n<li>RESTART_ATTEMPTS: Le nombre de tentatives de red\u00e9marrage d&#8217;une ressource sur le serveur local avant une tentative de d\u00e9placement.<\/li>\n<li>UPTIME_THRESHOLD: Le temps n\u00e9cessaire pour que la ressource soit consid\u00e9r\u00e9e comme stable par Oracle Clusterware.<\/li>\n<li>FAILURE_THRESHOLD: Le nombre de d\u00e9faillances d\u00e9tect\u00e9es pendant l&#8217;intervalle FAILURE_INTERVAL pour que la ressource soit consid\u00e9r\u00e9e comme indisponible.<\/li>\n<li>FAILURE_INTERVAL: L&#8217;intervalle en secondes, pendant lequel Oracle Clusterware prend en compte la valeur de FAILURE_THRESHOLD.<\/li>\n<\/ul>\n<p>Robert Bialek, dans un article intitul\u00e9 &#8220;Oracle Database Failover Cluster with Grid Infrastructure 11g R2&#8221;, nous donne une explication claire de l&#8217;algorithme de gestion de la ressource bien qu&#8217;il omette la prise en compte de l&#8217;heure du dernier FAILOVER.<\/p>\n<p>Je voudrais dans cet article apporter quelques pr\u00e9cisions sur l&#8217;arbre de d\u00e9cisions. Rappelons-nous qu&#8217;\u00e0 chaque intervalle de temps CHECK_INTERVAL, la ressource est test\u00e9e. Nous pouvons d\u00e9crire le pseudo algorithme suivant:<\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">Tantque ressource_active faire <\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">attendre CHECK_INTERVAL\u00a0;<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">si ( Check ( ressource) 0 ) alors<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">si (RESTART_COUNT &lt; RESTART_ATTEMPTS ) alors<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\"><strong>restart <\/strong><\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">RESTART_COUNT ++<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">sinon<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">si ( FAILURE_COUNT &lt; FAILURE_THRESHOLD -1 ) alors<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\"><strong>failover<\/strong><\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">RESTART_COUNT = 0\u00a0<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">FAILURE_COUNT ++<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">FAILURE_HISTORY = date+hostname<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">sinon<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">si ( interval(dernieredate(FAILURE_HISTORY), DateCourante ) &gt; FAILURE_INTERVAL ) alors<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\"><strong>failover<\/strong><\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">RESTART_COUNT = 0\u00a0<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">FAILURE_COUNT ++<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">FAILURE_HISTORY = date+hostname<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">sinon <\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\"><strong>stop<\/strong><strong> de la resource<\/strong> <\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">message CRS-2771:Maximum restart attempts reached for resource ; <\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">finsi<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">finsi<\/span><\/span><\/p>\n<p style=\"margin-bottom: 0in; background: none repeat scroll 0% 0% #e6e6ff;\"><span style=\"font-family: Courier New,monospace;\"><span style=\"font-size: x-small;\">finsi<\/span><\/span><\/p>\n<p>Le param\u00e9trage suivant&#8230;<\/p>\n<p style=\"padding-left: 30px;\">FAILURE_INTERVAL=3600<br \/>\nFAILURE_THRESHOLD=2<br \/>\nPLACEMENT=restricted<br \/>\nRESTART_ATTEMPTS=2<br \/>\nUPTIME_THRESHOLD=4h<\/p>\n<p>&#8230;autorisera deux red\u00e9marrages locaux (param\u00e8tre RESTART_ATTEMPTS=2), un basculement vers un autre n\u0153ud (FAILURE_THRESHOLD=2) puis deux red\u00e9marrages locaux au second n\u0153ud ( RESTART_ATTEMPTS=2).<\/p>\n<p>Un cinqui\u00e8me incident entra\u00eenera un arr\u00eat de la ressource s&#8217;il intervient moins d&#8217;une heure apr\u00e8s le premier FAILOVER (FAILURE_INTERVAL=3600 ). \u00c0 partir de cet instant, c&#8217;est la fr\u00e9quence de l&#8217;incident (temps entre deux FAILOVER &gt; FAILURE_INTERVAL=3600) qui conditionnera la relocalisation d&#8217;un n\u0153ud vers un autre.<\/p>\n<p>Pour une ressource de type base de donn\u00e9es, 5 incidents (crash) dans 1 heure de temps, c&#8217;est beaucoup.<br \/>\nLa mise \u00e0 1 du param\u00e8tre RESTART_ATTEMPTS peut \u00eatre envisag\u00e9 pour que l&#8217;on analyse plus rapidement les causes de ces red\u00e9marrages fr\u00e9quents.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre d&#8217;un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j&#8217;ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l&#8217;algorithme de basculement d&#8217;une ressource et des param\u00e8tres le r\u00e9gissant. On trouve dans la documentation Oracle des informations sur les cinq param\u00e8tres intervenant dans la prise de d\u00e9cision, [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[38,17,216],"type_dbi":[],"class_list":["post-2853","post","type-post","status-publish","format-standard","hentry","category-hardware-storage","tag-cluster","tag-oracle-11g","tag-oracle-rac"],"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>Resource FAILOVER dans Grid Infrastructure - dbi Blog<\/title>\n<meta name=\"description\" content=\"Dans le cadre d&#039;un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j&#039;ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l&#039;algorithme de basculement d&#039;une ressource et des param\u00e8tres le r\u00e9gissant.\" \/>\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\/resource-failover-dans-grid-infrastructure\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Resource FAILOVER dans Grid Infrastructure\" \/>\n<meta property=\"og:description\" content=\"Dans le cadre d&#039;un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j&#039;ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l&#039;algorithme de basculement d&#039;une ressource et des param\u00e8tres le r\u00e9gissant.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-01-21T07:37:00+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\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\/resource-failover-dans-grid-infrastructure\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Resource FAILOVER dans Grid Infrastructure\",\"datePublished\":\"2013-01-21T07:37:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\"},\"wordCount\":466,\"commentCount\":0,\"keywords\":[\"Cluster\",\"Oracle 11g\",\"Oracle RAC\"],\"articleSection\":[\"Hardware &amp; Storage\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\",\"name\":\"Resource FAILOVER dans Grid Infrastructure - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2013-01-21T07:37:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"Dans le cadre d'un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j'ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l'algorithme de basculement d'une ressource et des param\u00e8tres le r\u00e9gissant.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resource FAILOVER dans Grid Infrastructure\"}]},{\"@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\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Resource FAILOVER dans Grid Infrastructure - dbi Blog","description":"Dans le cadre d'un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j'ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l'algorithme de basculement d'une ressource et des param\u00e8tres le r\u00e9gissant.","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\/resource-failover-dans-grid-infrastructure\/","og_locale":"en_US","og_type":"article","og_title":"Resource FAILOVER dans Grid Infrastructure","og_description":"Dans le cadre d'un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j'ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l'algorithme de basculement d'une ressource et des param\u00e8tres le r\u00e9gissant.","og_url":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/","og_site_name":"dbi Blog","article_published_time":"2013-01-21T07:37:00+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Resource FAILOVER dans Grid Infrastructure","datePublished":"2013-01-21T07:37:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/"},"wordCount":466,"commentCount":0,"keywords":["Cluster","Oracle 11g","Oracle RAC"],"articleSection":["Hardware &amp; Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/","url":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/","name":"Resource FAILOVER dans Grid Infrastructure - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2013-01-21T07:37:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"Dans le cadre d'un cluster Oracle Grid Infrastructure 11g R2 utilis\u00e9 pour g\u00e9rer des bases de donn\u00e9es en mode FAILOVER, j'ai \u00e9t\u00e9 amen\u00e9 \u00e0 me pencher sur l'algorithme de basculement d'une ressource et des param\u00e8tres le r\u00e9gissant.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/resource-failover-dans-grid-infrastructure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Resource FAILOVER dans Grid Infrastructure"}]},{"@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\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2853","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\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2853"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2853\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2853"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}