{"id":16316,"date":"2021-05-05T09:32:25","date_gmt":"2021-05-05T07:32:25","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/"},"modified":"2021-05-05T09:32:25","modified_gmt":"2021-05-05T07:32:25","slug":"delphix-and-upgrading-the-clones","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/","title":{"rendered":"Delphix and upgrading the clones (Oracle)"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nDelphix is a tool for easy cloning of databases. The idea is that all is automated: the user can create a clone, rewind or refresh it with one click. However, I was suprised that the following common scenario is not managed by the Delphix engine:<\/p>\n<ul>\n<li>You clone from production, say Oracle 12c<\/li>\n<li>You upgrade the clone, say Oracle 19c<\/li>\n<li>You test there<\/li>\n<li>You refresh the clone from production, obviously being back to Oracle 12c<\/li>\n<\/ul>\n<p>This is very common. You use clones to test the application, and testing on upgraded database version is probably the most common clone usage.<\/p>\n<p>So, there&#8217;s an &#8216;Upgrade&#8217; button, just near the refresh one, but this is a false-friend. It doesn&#8217;t upgrade anything but just sets the Oracle Home known by Delphix to the new one after you upgraded yourself. Because Delphix does not detect this change automatically. But Delphix requires it in order to run the toolkit actions. No problem, the upgrade of Oracle is easy with Oracle AutoUpgrade, and that&#8217;s just one additional manual action. So why is it called &#8216;Upgrade&#8217; and not &#8216;Change Oracle Home&#8217;? That&#8217;s the problem: you can change only to a newer version Oracle Home. Then&#8230; how do you revert back to the previous version in order to refresh the clone? You can&#8217;t.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-49725\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\" alt=\"\" width=\"300\" height=\"162\" \/><\/a>The only solution provided by the support (without additional consulting charges) is a manual action on the console. Not the Web console, but the telnet one.<\/p>\n<p>That&#8217;s not exactly what I call a &#8216;CLI&#8217; &#8211; Command Line Interface is supposed to accept actions and parameters other than stdin and return codes. But let&#8217;s try to automate that.<\/p>\n<p>Here I&#8217;m showing a template for a Do-It-Yourself solution. Please don&#8217;t use it as-is. Test it. Because having access to the tty console rather than a clean CLI or API doesn&#8217;t allow for professional error handling.<\/p>\n<h3>SSH key<\/h3>\n<p>This console is accessible through ssh with the admin user. Or an admin user that you have defined in the management console. This is not the setup console.<br \/>\nI&#8217;ve written a glossary about this: <a href=\"https:\/\/www.dbi-services.com\/blog\/delphix-a-glossary-to-get-started\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.dbi-services.com\/blog\/delphix-a-glossary-to-get-started\/<\/a><\/p>\n<p>You don&#8217;t want to have hardcoded passwords, so better use passwordless authentication. I&#8217;ll do all that from the database server as root. so I check my public key that I&#8217;ve generated with `ssh-keygen`:<\/p>\n<pre><code>\n# cat ~\/.ssh\/id_rsa.pub\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRIw5638wyewN716iARPTKpaeCP+HtNOEa5TSKfI8Eh3h3EUwb+H3qzrWtv\/b0k147QC0ET93kf2Y4AgvoaFKvo3ms3U6pI5BtCBN3h49KCcj4k1sPKmytJap6G6C79BMZKoGbG6hOSQ7PbbHHPoSgSYiXrxaO3Rh8OqWl+EqSQ45TSLE5Nb6+YuASEeILSUv3fezE21\/kZ4dxsYJeE+6pfaUHCm\/sCTFKM7JZJsviQ\/3usq+7m8w+AreedQXAYERq9tDdCcrCUkmrj3OhiLh3YoYre8XkZ0QiBT1bwhkPlxGO5aN5bkihqm2ETF3y9sbdf2d\/xXpKTnx3tTWZo6tr root@dbserver\n<\/code><\/pre>\n<p>This can be put once in the Delphix console.<\/p>\n<p>This only time I&#8217;ll connect with the password I defined when creating the user from the GUI<\/p>\n<pre><code>\n\n:~$ ssh admin@10.0.1.10\nPassword: \n\nip-10-0-1-10&gt; ls\n\n...\nuser\n...\n\nip-10-0-1-10&gt; user\nip-10-0-1-10 user&gt; ls\n\nObjects\nNAME      EMAILADDRESS       \ndev       dev@nomail.com\nqa        qa@nomail.com\nlabadmin  labadmin@nomail.com\nadmin     admin@nomail.com\n\nip-10-0-1-10 user&gt; current\n\nip-10-0-1-10 user 'admin'&gt; ls\nProperties\n    type: User\n    name: admin\n...\n  \nip-10-0-1-10 user 'admin'&gt; update\nip-10-0-1-10 user 'admin' update *&gt; ls\nProperties\n    type: User\n    name: admin\n ...\n\nip-10-0-1-10 user 'admin' update *&gt; set publicKey=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRIw5638wyewN716iARPTKpaeCP+HtNOEa5TSKfI8Eh3h3EUwb+H3qzrWtv\/b0k147QC0ET93kf2Y4AgvoaFKvo3ms3U6pI5BtCBN3h49KCcj4k1sPKmytJap6G6C79BMZKoGbG6hOSQ7PbbHHPoSgSYiXrxaO3Rh8OqWl+EqSQ45TSLE5Nb6+YuASEeILSUv3fezE21\/kZ4dxsYJeE+6pfaUHCm\/sCTFKM7JZJsviQ\/3usq+7m8w+AreedQXAYERq9tDdCcrCUkmrj3OhiLh3YoYre8XkZ0QiBT1bwhkPlxGO5aN5bkihqm2ETF3y9sbdf2d\/xXpKTnx3tTWZo6tr delphix@labserver\"\nip-10-0-1-10 user 'admin' update *&gt; commit;\nip-10-0-1-10 user 'admin'&gt; exit\nConnection to 10.0.1.10 closed.\n<\/code><\/pre>\n<p>this is all, now I can ssh without providing the password<\/p>\n<h3>(re)set the Oracle Home<\/h3>\n<p>Let&#8217;s see how to automate the manual actions given by the support engineer. Here is my script and I explain later:<\/p>\n<pre><code>\nmanagement=admin@10.0.1.10 \n\nfor source in $({\nssh \"$management\" &lt;&lt;SSH\nsource\nls\nSSH\n} | awk '\/ true \/{ print $1}'\n) ; do\necho \"# looking if source=$source is on this server and finding oracle home\"\n{\nssh \"$management\" &lt;&lt;SSH\nsourceconfig\nselect $source\nls\nSSH\n} | awk '\/repository\/{sub(\"^ *repository: \",\"\");repo=$0; print source,sid,$0}\/ instanceName\/{sid=$NF}' source=$source |\nwhile read source sid repository ; do\n # this should run as root to see the current directory from\/proc\n dbs=$(readlink \/proc\/$(pgrep -f _pmon_$sid\\$)\/cwd)\n # process it only if home is found (this source is on this host\n if [ -n \"$dbs\" ] ; then\n  home=$(dirname \"$dbs\")\n  new=\"${repository%%\\'\/*}'${home}'\"\n  if [ \"$repository\" != \"$new\" ] ; then\n   echo \"## setting new repository source=$source (sid=$sid home=$home) to repository=$new (previous was $repository)\"\n   ssh \"$management\" &lt;&lt;SSH\nsourceconfig\nselect $source\nupdate\nset repository=\"$new\"\ncommit\nls\nSSH\n  fi\n fi\ndone\n\ndone\n<\/code><\/pre>\n<p>First, I define the ssh connection as I&#8217;ll have to ssh many times to read the answer and continue.<br \/>\nThe first block will list all sources (VDBs) known by Delphix, with ssh output processed by awk.<br \/>\nThe second block, for each source, will look at the configuration to get the &#8220;instanceName&#8221; which is the ORACLE_SID.<br \/>\nWith this, I&#8217;ll get the Oracle home with:<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"500\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\"># as root (to see \/proc\/*\/cwd) here is how to get the ORACLE_HOME from an ORACLE_SID for a running instance:<br \/>ORACLE_HOME=$( dirname $(readlink \/proc\/$(pgrep -f _pmon_$ORACLE_SID$)\/cwd) )<\/p>\n<p>&mdash; Franck Pachot (@FranckPachot) <a href=\"https:\/\/twitter.com\/FranckPachot\/status\/1389870297071882241?ref_src=twsrc%5Etfw\">May 5, 2021<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\nbut of course you can read \/etc\/oratab<\/p>\n<p>Now, this is set in Delphix &#8220;repository&#8221; property where a prefix identifies the host (&#8220;environment&#8221; in Delphix terms) so I just replace the last part.<\/p>\n<p>Here is the output when I run it on the Delphix Labs sandbox:<\/p>\n<pre><code>\n## setting new repository source=devdb (sid=devdb home=\/u01\/app\/oracle\/product\/11.2.0\/xe) to repository=TargetA\/'\/u01\/app\/oracle\/product\/18.0.0\/xe' (previous was TargetA\/'\/u01\/app\/oracle\/product\/11.2.0\/xe')\nProperties\n    type: OracleSIConfig\n    name: devdb\n    cdbType: NON_CDB\n    credentials:\n        type: PasswordCredential\n        password: ********\n    databaseName: devdb\n    discovered: true\n    environmentUser: TargetA\/delphix\n    instance:\n        type: OracleInstance\n        instanceName: devdb\n        instanceNumber: 1\n    linkingEnabled: false\n    nonSysCredentials: (unset)\n    nonSysUser: (unset)\n    reference: ORACLE_SINGLE_CONFIG-2\n    repository: TargetA\/'\/u01\/app\/oracle\/product\/18.0.0\/xe'\n    services:\n        0:\n            type: OracleService\n            discovered: true\n            jdbcConnectionString: jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=broken)(ADDRESS=(PROTOCOL=tcp)(HOST=10.0.1.30)(PORT=1521))(CONNECT_DATA=(UR=A)(SERVICE_NAME=devdb)))\n    tdeKeystorePassword: (unset)\n    uniqueName: devdb\n    user: delphixdb\n\nOperations\ndelete\nupdate\nvalidateCredentials\n[root@linuxtarget ~]# \n<\/code><\/pre>\n<p>But please, test and adapt it. The idea here is that it can run to sync the Delphix information to the currently running databases, which is probably never a bad idea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . Delphix is a tool for easy cloning of databases. The idea is that all is automated: the user can create a clone, rewind or refresh it with one click. However, I was suprised that the following common scenario is not managed by the Delphix engine: You clone from production, say Oracle [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":16317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[83],"tags":[494,96],"type_dbi":[],"class_list":["post-16316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-postgresql","tag-delphix","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>Delphix and upgrading the clones (Oracle) - 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\/delphix-and-upgrading-the-clones\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Delphix and upgrading the clones (Oracle)\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . Delphix is a tool for easy cloning of databases. The idea is that all is automated: the user can create a clone, rewind or refresh it with one click. However, I was suprised that the following common scenario is not managed by the Delphix engine: You clone from production, say Oracle [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-05T07:32:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"845\" \/>\n\t<meta property=\"og:image:height\" content=\"456\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"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\/delphix-and-upgrading-the-clones\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Delphix and upgrading the clones (Oracle)\",\"datePublished\":\"2021-05-05T07:32:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\"},\"wordCount\":618,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\",\"keywords\":[\"delphix\",\"Oracle\"],\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\",\"name\":\"Delphix and upgrading the clones (Oracle) - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\",\"datePublished\":\"2021-05-05T07:32:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg\",\"width\":845,\"height\":456},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Delphix and upgrading the clones (Oracle)\"}]},{\"@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":"Delphix and upgrading the clones (Oracle) - 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\/delphix-and-upgrading-the-clones\/","og_locale":"en_US","og_type":"article","og_title":"Delphix and upgrading the clones (Oracle)","og_description":"By Franck Pachot . Delphix is a tool for easy cloning of databases. The idea is that all is automated: the user can create a clone, rewind or refresh it with one click. However, I was suprised that the following common scenario is not managed by the Delphix engine: You clone from production, say Oracle [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/","og_site_name":"dbi Blog","article_published_time":"2021-05-05T07:32:25+00:00","og_image":[{"width":845,"height":456,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg","type":"image\/jpeg"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Delphix and upgrading the clones (Oracle)","datePublished":"2021-05-05T07:32:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/"},"wordCount":618,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg","keywords":["delphix","Oracle"],"articleSection":["PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/","url":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/","name":"Delphix and upgrading the clones (Oracle) - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg","datePublished":"2021-05-05T07:32:25+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2021-05-05-110130.jpg","width":845,"height":456},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/delphix-and-upgrading-the-clones\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Delphix and upgrading the clones (Oracle)"}]},{"@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\/16316","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=16316"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/16316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/16317"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=16316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=16316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=16316"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=16316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}