{"id":7397,"date":"2016-03-17T16:43:36","date_gmt":"2016-03-17T15:43:36","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/"},"modified":"2016-03-17T16:43:36","modified_gmt":"2016-03-17T15:43:36","slug":"rman-12c-push-and-pull-duplicate-explained","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/","title":{"rendered":"RMAN 12c Push and Pull duplicate explained"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nOracle Database 12<em>c<\/em> introduced the &#8216;restore from service&#8217; where you can restore and recover by requesting backupsets from the source. With that feature, the duplicate from active can work in the opposite way: instead of asking the source (target) to send the files to the destination (auxiliary) now the destination can do all the job. Let&#8217;s see how it works by comparing the RMAN log of the two methods.<br \/>\n<!--more--><\/p>\n<h3>Pull Based Duplicate<\/h3>\n<p>In 12c the pull method is the default. Here there are two additional reasons for it: I allocate more channels in auxiliary than in target, and I specify &#8216;from backupset&#8217;<\/p>\n<pre><code>\nRMAN&gt;\necho set on\n run {\n  allocate channel c1 device type disk;\n  allocate auxiliary channel a1 device type disk;\n  allocate auxiliary channel a2 device type disk;\n  duplicate database for standby from active database using backupset nofilenamecheck;\n}\n<\/code><\/pre>\n<p>In pull based duplicate, the auxiliary channels will connect to the target. This means that the credentials and connection string you used to connect target must be available (tnsnames, etc.) from the auxiliary.<\/p>\n<p>I allocated 2 channels a1 and a2 in auxiliary and only one c1 in target.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull.png\" alt=\"CapturePull\" width=\"954\" height=\"652\" class=\"alignnone size-full wp-image-7592\" \/><\/a><\/p>\n<h3>Push Based Duplicate<\/h3>\n<p>In order to force a push based duplicate, I can mention &#8216;using copy&#8217; instead of &#8216;using backupset&#8217;. Here I do not mention anything but  I allocate more channels in target than in auxiliary and push-based is then used:<\/p>\n<pre><code>\nRMAN&gt;\necho set on\n run {\n  allocate channel c1 device type disk;\n  allocate channel c2 device type disk;\n  allocate auxiliary channel a1 device type disk;\n  duplicate database for standby from active database nofilenamecheck;\n}\n<\/code><\/pre>\n<p>I allocated 2 channels c1 and c2 in target and only one a1 in auxiliary.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePush.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePush.png\" alt=\"CapturePush\" width=\"951\" height=\"626\" class=\"alignnone size-full wp-image-7593\" \/><\/a><\/p>\n<p>In push based duplicate the target will connect to the auxiliary. So SQL*Net connection must be ok for that. You probably need to define a static entry for the auxiliary in its listener so that the target can connect to the nomount instance.<\/p>\n<p>In order to compare, I&#8217;ve diff&#8217;ed the rman logs so the pull based are prefixed by &#8216;&lt;&#8216; and the push based by &#8216;&gt;&#8217; in the following.<\/p>\n<h3>Control File<\/h3>\n<p>The first step is to restore the control file. Here is the difference:<\/p>\n<p>Pull based duplicate do a restore from service (VM117 is the target)<\/p>\n<pre><code>&lt;    restore clone from service  &#039;\/\/VM117\/CDB&#039; standby controlfile;\n<\/code><\/pre>\n<p>Whereas push based do a backup as copy to the auxiliary. Why as copy? Because all the intelligence here is on the target. The auxiliary will not read a backupset.<\/p>\n<pre><code>&gt;    backup as copy current controlfile for standby auxiliary format  '\/u02\/fast_recovery_area\/CDB_SBY\/controlfile\/crontrol.ctl';\n<\/code><\/pre>\n<p>In pull based, the auxiliary channels are doing all the job:<\/p>\n<pre><code>\n&lt; channel a1: starting datafile backup set restore\n&lt; channel a1: using network backup set from service \/\/VM117\/CDB\n&lt; channel a1: restoring control file\n&lt; channel a1: restore complete, elapsed time: 00:00:02\n&lt; output file name=\/u02\/fast_recovery_area\/CDB_SBY\/controlfile\/crontrol.ctl<\/code><\/pre>\n<p>Whereas in push based, it&#8217;s the target that do the work:<\/p>\n<pre><code>&gt; channel c1: starting datafile copy\n&gt; copying standby control file\n&gt; output file name=\/u01\/app\/oracle\/product\/12R2EE\/dbs\/snapcf_CDB.f tag=TAG20160317T152842\n&gt; channel c1: datafile copy complete, elapsed time: 00:00:03\n<\/code><\/pre>\n<h3>Datafiles<\/h3>\n<p>Now the datafiles. The pull based is the auxiliary restoring from service:<\/p>\n<pre><code>\n&lt;    restore\n&lt;    from  nonsparse   from service\n&lt;  &#039;\/\/VM117\/CDB&#039;   clone database\n&lt;    ;\n<\/code><\/pre>\n<p>On the opposite, the push based is the target sending copies to the auxiliary:<\/p>\n<pre><code>\n&gt;    backup as copy reuse\n&gt;    datafile  1 auxiliary format\n&gt;  \"\/u02\/oradata\/CDB\/system01.dbf\"   datafile\n&gt;  3 auxiliary format\n&gt;  \"\/u02\/oradata\/CDB\/sysaux01.dbf\"   datafile\n&gt;  4 auxiliary format\n&gt;  \"\/u02\/oradata\/CDB\/undotbs01.dbf\"   datafile\n...\n<\/code><\/pre>\n<p>Channels are working. For the pull based, I&#8217;ve two auxiliary channels:<\/p>\n<pre><code>\n&lt; channel a1: starting datafile backup set restore\n&lt; channel a1: using network backup set from service \/\/VM117\/CDB\n&lt; channel a1: specifying datafile(s) to restore from backup set\n&lt; channel a1: restoring datafile 00001 to \/u02\/oradata\/CDB\/system01.dbf\n&lt; channel a2: starting datafile backup set restore\n&lt; channel a2: using network backup set from service \/\/VM117\/CDB\n&lt; channel a2: specifying datafile(s) to restore from backup set\n&lt; channel a2: restoring datafile 00003 to \/u02\/oradata\/CDB\/sysaux01.dbf\n<\/code><\/pre>\n<p>for the push based it&#8217;s the two channels in target:<\/p>\n<pre><code>\n&gt; channel c1: starting datafile copy\n&gt; input datafile file number=00001 name=\/u02\/oradata\/CDB\/system01.dbf\n&gt; channel c2: starting datafile copy\n&gt; input datafile file number=00003 name=\/u02\/oradata\/CDB\/sysaux01.dbf\n&gt; output file name=\/u02\/oradata\/CDB\/system01.dbf tag=TAG20160317T152850\n&gt; channel c1: datafile copy complete, elapsed time: 00:00:46\n&gt; channel c1: starting datafile copy\n&gt; input datafile file number=00009 name=\/u02\/oradata\/CDB\/pdb\/sysaux01.dbf\n&gt; output file name=\/u02\/oradata\/CDB\/sysaux01.dbf tag=TAG20160317T152850\n<\/code><\/pre>\n<h3>Conclusion<\/h3>\n<p>Hope it helps to remember how it works:<\/p>\n<ul>\n<li>Pull: The auxiliary restores from target. All &#8216;backup as backupset&#8217; optimizations are available: compression, section size,&#8230; Non formatted blocks and unnecessary undo is not transfered.<\/li>\n<li>Push: Use it if you want the target to do all the job. More data will be transferred because it&#8217;s full datafiles. Target must be able to connect to auxiliary.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . Oracle Database 12c introduced the &#8216;restore from service&#8217; where you can restore and recover by requesting backupsets from the source. With that feature, the duplicate from active can work in the opposite way: instead of asking the source (target) to send the files to the destination (auxiliary) now the destination can [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":7400,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[311,209,270],"type_dbi":[],"class_list":["post-7397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-duplicate","tag-oracle-12c","tag-rman"],"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>RMAN 12c Push and Pull duplicate explained - 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\/rman-12c-push-and-pull-duplicate-explained\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RMAN 12c Push and Pull duplicate explained\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . Oracle Database 12c introduced the &#8216;restore from service&#8217; where you can restore and recover by requesting backupsets from the source. With that feature, the duplicate from active can work in the opposite way: instead of asking the source (target) to send the files to the destination (auxiliary) now the destination can [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-17T15:43:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"954\" \/>\n\t<meta property=\"og:image:height\" content=\"652\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"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\/rman-12c-push-and-pull-duplicate-explained\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"RMAN 12c Push and Pull duplicate explained\",\"datePublished\":\"2016-03-17T15:43:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\"},\"wordCount\":482,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png\",\"keywords\":[\"duplicate\",\"Oracle 12c\",\"RMAN\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\",\"name\":\"RMAN 12c Push and Pull duplicate explained - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png\",\"datePublished\":\"2016-03-17T15:43:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png\",\"width\":954,\"height\":652},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RMAN 12c Push and Pull duplicate explained\"}]},{\"@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":"RMAN 12c Push and Pull duplicate explained - 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\/rman-12c-push-and-pull-duplicate-explained\/","og_locale":"en_US","og_type":"article","og_title":"RMAN 12c Push and Pull duplicate explained","og_description":"By Franck Pachot . Oracle Database 12c introduced the &#8216;restore from service&#8217; where you can restore and recover by requesting backupsets from the source. With that feature, the duplicate from active can work in the opposite way: instead of asking the source (target) to send the files to the destination (auxiliary) now the destination can [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/","og_site_name":"dbi Blog","article_published_time":"2016-03-17T15:43:36+00:00","og_image":[{"width":954,"height":652,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"RMAN 12c Push and Pull duplicate explained","datePublished":"2016-03-17T15:43:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/"},"wordCount":482,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png","keywords":["duplicate","Oracle 12c","RMAN"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/","url":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/","name":"RMAN 12c Push and Pull duplicate explained - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png","datePublished":"2016-03-17T15:43:36+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CapturePull-1.png","width":954,"height":652},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/rman-12c-push-and-pull-duplicate-explained\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"RMAN 12c Push and Pull duplicate explained"}]},{"@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\/7397","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=7397"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/7397\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/7400"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=7397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=7397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=7397"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=7397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}