{"id":29515,"date":"2023-11-21T07:53:35","date_gmt":"2023-11-21T06:53:35","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=29515"},"modified":"2023-11-21T07:53:37","modified_gmt":"2023-11-21T06:53:37","slug":"easy-pdb-migration-with-oda-and-db-systems","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/","title":{"rendered":"Easy PDB migration with ODA and DB Systems"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\">Introduction<\/h2>\n\n\n\n<p>Oracle 23c is not yet available on Oracle Database Appliance (ODA), but it should be ready in 2024. As 23c is the next Long Term release, 19c databases will probably migrate to 23c in the coming years. If you decided to use DB Systems on your ODA, you might think that migration will not be that easy. But it&#8217;s not true: it&#8217;s rather easy and quite straight through. Let&#8217;s try migrating from 19c to 21c, which is probably quite similar to migrating to 23c.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-oda-and-virtualization\">ODA and virtualization<\/h2>\n\n\n\n<p>It&#8217;s been years now that ODA relies on KVM for virtualization. Each ODA, whatever its generation (from X7 to X10), is deployed as a Bare Metal appliance and can run databases on the host itself, but at any time you can create VMs on it, for databases or for other usages. VMs running databases are called DB Systems, and if you already tried or use OCI, the Oracle public cloud, it&#8217;s exactly the same concept. For those who don&#8217;t know what&#8217;s a DB Systems: it&#8217;s basically a VM dedicated to a single database and managed at the system level. On ODA, when you need to increase the resources of a container database, you just configure the DB System with a bigger shape, and the CDB parameters will increase accordingly.<\/p>\n\n\n\n<p>If the database you configure is a container database, your DB System is not really limited to a single database but it will be limited by your Edition and options. Standard Edition 2 and Enterprise Edition without the Multitenant option are limited to 3 pluggable databases in one container. With Enterprise Edition and the Multitenant option, consider the number of pluggable databases nearly unlimited (something like 4096 PDBs).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-multitenant-is-the-key\">Multitenant is the key<\/h2>\n\n\n\n<p>If you&#8217;d like to simplify your future migrations, you will need to use Multitenant. Your pluggable databases are able to move from one container to another without using datapump or RMAN for this. Remember that a pluggable database is basically a set of tablespaces with their metadata inside a local SYSTEM tablespace. Unplugging\/plugging a pluggable database is similar to the concept of transportable tablespaces you may have used on previous versions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuring-your-oda-for-db-systems\">Configuring your ODA for DB Systems<\/h2>\n\n\n\n<p>For creating a first DB System, you will need a VM template from a link you&#8217;ll find in the ODA documentation. It&#8217;s called &#8220;Oracle Database Appliance KVM DB System Template&#8221; and you should download the one corresponding to your ODA patch level. This template is available on MOS as patch 32451228.<\/p>\n\n\n\n<p>Once downloaded, you need to unzip this template and register it in your ODA repository.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/dbi\/\nunzip p32451228_1920000_Linux-x86-64.zip\nodacli update-repository -f \/opt\/dbi\/odacli-dcs-19.20.0.0.0-ODAVM.zip\n\nodacli describe-job -i 3c8c3740-aec1-4a15-96f8-0b2e3f1d34cc\n...\n\nodacli describe-dbsystem-image | grep -v not-available\nDB System Image details\n--------------------------------------------------------------------------------\nComponent Name        Supported Versions    Available Versions\n--------------------  --------------------  --------------------\n\nDBVM                  19.20.0.0.0           19.20.0.0.0\n\nGI                    19.20.0.0.230718      19.20.0.0.230718\n\nDB                    19.20.0.0.230718      19.20.0.0.230718<\/code><\/pre>\n\n\n\n<p>This template is a kind of Linux boot disk without any Oracle database related stuff. You will also need a GI clone and a DB clone in your repository. You probably already have the latest 19c GI clone in your repository, because you created (or patched) your appliance with this clone. The DB clone should also be available if you created a first 19c Bare Metal database. If it&#8217;s not the case, download and register the DB clone in your repository.<\/p>\n\n\n\n<p>You may have noticed that it&#8217;s also possible to create 21c DB Systems, although it&#8217;s not possible using 21c with Bare Metal. This is because 21c is an innovation release: Oracle didn&#8217;t make it available for your Bare Metal setup for stability reasons. But inside a DB System it is OK.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-preparing-the-cpu-pool\">Preparing the CPU pool<\/h2>\n\n\n\n<p>A DB System will need CPU resources, they are configured through CPU pools. There are 3 kinds of CPU pools, bare metal CPU pools, VM (multipurpose) CPU pools and DB System CPU pools. One DB System CPU pool is enough for now (configured for 6 cores):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli create-cpupool -n cpu4dbs -c 6 -dbs\nsleep 30; odacli list-cpupools\nName                  Type                Configured on              Cores  Associated resources            Created                   Updated\n--------------------  ------------------  -------------------------  -----  ------------------------------  ------------------------  ------------------------\ncpu4dbs               DB_SYSTEM_SHARED    dbioda01                   6      NONE                    2023-11-09 13:31:06 CET   2023-11-09 13:31:55 CET\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-a-19c-db-system\">Creating a 19c DB System<\/h2>\n\n\n\n<p>You will need a json file for creating your first DB System. In this file, you will provide:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>hostname and IP of the VM<\/li>\n\n\n\n<li>CPU pool to use<\/li>\n\n\n\n<li>users, groups and their ids on the system (should be the same as your appliance deployment)<\/li>\n\n\n\n<li>Database name and shape (will also define VM&#8217;s shape: CPU numbers and RAM size)<\/li>\n\n\n\n<li>Database&#8217;s specs: regional settings and multitenant features<\/li>\n\n\n\n<li>the network to use<\/li>\n<\/ul>\n\n\n\n<p>Here is an example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat create_dbs19.json\n\n{\n    \"system\": {\n        \"name\": \"dbs19\",\n        \"systemPassword\": \"*******\",\n        \"timeZone\": \"Europe\/Zurich\",\n        \"diskGroup\": \"DATA\",\n        \"cpuPoolName\": \"cpu4dbs\",\n        \"enableRoleSeparation\": true,\n        \"customRoleSeparation\": {\n            \"groups\": &#091;\n                {\n                    \"name\": \"oinstall\",\n                    \"id\": 1001,\n                    \"role\": \"oinstall\"\n                },\n                {\n                    \"name\": \"dbaoper\",\n                    \"id\": 1002,\n                    \"role\": \"dbaoper\"\n                },\n                {\n                    \"name\": \"dba\",\n                    \"id\": 1003,\n                    \"role\": \"dba\"\n                },\n                {\n                    \"name\": \"asmadmin\",\n                    \"id\": 1004,\n                    \"role\": \"asmadmin\"\n                },\n                {\n                    \"name\": \"asmoper\",\n                    \"id\": 1005,\n                    \"role\": \"asmoper\"\n                },\n                {\n                    \"name\": \"asmdba\",\n                    \"id\": 1006,\n                    \"role\": \"asmdba\"\n                }\n            ],\n            \"users\": &#091;\n                {\n                    \"name\": \"grid\",\n                    \"id\": 1000,\n                    \"role\": \"gridUser\"\n                },\n                {\n                    \"name\": \"oracle\",\n                    \"id\": 1001,\n                    \"role\": \"oracleUser\"\n                }\n            ]\n        }\n    },\n    \"database\": {\n        \"name\": \"CDB19\",\n        \"uniqueName\": \"CDB19_S1\",\n        \"domainName\": \"dbi-lab.ch\",\n        \"adminPassword\": \"*********\",\n        \"version\": \"19.20.0.0.230718\",\n        \"edition\": \"EE\",\n        \"type\": \"SI\",\n        \"dbClass\": \"OLTP\",\n        \"shape\": \"odb2\",\n        \"role\": \"PRIMARY\",\n        \"targetNodeNumber\": null,\n        \"enableDbConsole\": false,\n        \"enableFlashStorage\": false,\n        \"redundancy\": null,\n        \"characterSet\": {\n            \"characterSet\": \"AL32UTF8\",\n            \"nlsCharacterset\": \"AL16UTF16\",\n            \"dbTerritory\": \"SWITZERLAND\",\n            \"dbLanguage\": \"FRENCH\"\n        },\n        \"rmanBackupPassword\": null,\n        \"enableTDE\": false,\n        \"isCdb\": true,\n        \"pdbName\": \"pdb19\",\n        \"pdbAdminUser\": \"pdbadmin\",\n        \"tdePassword\": null\n    },\n    \"network\": {\n        \"domainName\": \"dbi-lab.ch\",\n        \"ntpServers\": &#091;\n            \"10.86.0.250\"\n        ],\n        \"dnsServers\": &#091;\n            \"10.86.0.250\"\n        ],\n        \"nodes\": &#091;\n            {\n                \"name\": \"dbs19\",\n                \"ipAddress\": \"10.86.0.242\",\n                \"netmask\": \"255.255.255.0\",\n                \"gateway\": \"10.86.0.1\",\n                \"number\": 0\n            }\n        ],\n        \"publicVNetwork\": \"pubnet\"\n    },\n    \"grid\": {\n        \"language\": \"en\",\n        \"enableAFD\": false\n    }\n}<\/code><\/pre>\n\n\n\n<p>Creating a DB System is quite slow: it will take 30 minutes. But once created, everything is ready to use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli create-dbsystem -p \/opt\/dbi\/create_dbs19.json\nEnter password for system \"dbs19\":\nRetype password for system \"dbs19\":\nEnter administrator password for DB \"CDB19\":\nRetype administrator password for DB \"CDB19\":\n...\n\n\nodacli describe-job -i c42e98e5-6a53-4302-95e7-a067c374df69\n\nJob details\n----------------------------------------------------------------\n                     ID:  c42e98e5-6a53-4302-95e7-a067c374df69\n            Description:  DB System dbs19 creation\n                 Status:  Success\n                Created:  November 13, 2023 3:29:48 PM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nCreate DB System metadata                November 13, 2023 3:29:48 PM CET    November 13, 2023 3:29:49 PM CET    Success\nPersist new DB System                    November 13, 2023 3:29:49 PM CET    November 13, 2023 3:29:49 PM CET    Success\nValidate DB System prerequisites         November 13, 2023 3:29:49 PM CET    November 13, 2023 3:29:52 PM CET    Success\nSetup DB System environment              November 13, 2023 3:29:52 PM CET    November 13, 2023 3:29:52 PM CET    Success\nCreate DB System ASM volume              November 13, 2023 3:29:52 PM CET    November 13, 2023 3:29:58 PM CET    Success\nCreate DB System ACFS mount point        November 13, 2023 3:29:58 PM CET    November 13, 2023 3:29:58 PM CET    Success\nCreate DB System ACFS filesystem         November 13, 2023 3:29:58 PM CET    November 13, 2023 3:30:06 PM CET    Success\nCreate DB System VM ACFS snapshots       November 13, 2023 3:30:06 PM CET    November 13, 2023 3:30:31 PM CET    Success\nCreate temporary SSH key pair            November 13, 2023 3:30:31 PM CET    November 13, 2023 3:30:31 PM CET    Success\nCreate DB System cloud-init config       November 13, 2023 3:30:31 PM CET    November 13, 2023 3:30:32 PM CET    Success\nProvision DB System VM(s)                November 13, 2023 3:30:32 PM CET    November 13, 2023 3:30:35 PM CET    Success\nAttach disks to DB System                November 13, 2023 3:30:35 PM CET    November 13, 2023 3:30:35 PM CET    Success\nAdd DB System to Clusterware             November 13, 2023 3:30:35 PM CET    November 13, 2023 3:30:35 PM CET    Success\nStart DB System                          November 13, 2023 3:30:35 PM CET    November 13, 2023 3:30:37 PM CET    Success\nWait DB System VM first boot             November 13, 2023 3:30:37 PM CET    November 13, 2023 3:31:53 PM CET    Success\nSetup Mutual TLS (mTLS)                  November 13, 2023 3:31:53 PM CET    November 13, 2023 3:32:10 PM CET    Success\nExport clones repository                 November 13, 2023 3:32:10 PM CET    November 13, 2023 3:32:10 PM CET    Success\nSetup ASM client cluster config          November 13, 2023 3:32:10 PM CET    November 13, 2023 3:32:12 PM CET    Success\nCopy ASM client cluster config           November 13, 2023 3:32:12 PM CET    November 13, 2023 3:32:12 PM CET    Success\nInstall DB System                        November 13, 2023 3:32:12 PM CET    November 13, 2023 4:03:36 PM CET    Success\nCleanup temporary SSH key pair           November 13, 2023 4:03:36 PM CET    November 13, 2023 4:03:36 PM CET    Success\nSet DB System as configured              November 13, 2023 4:03:36 PM CET    November 13, 2023 4:03:37 PM CET    Success\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-a-21c-23c-db-system\">Creating a 21c\/23c DB System<\/h2>\n\n\n\n<p>23c is not yet available on ODA, let&#8217;s create a 21c DB System instead.<\/p>\n\n\n\n<p>You will first need to provide 21c GI and DB clones to your ODA repository, previously downloaded from MOS. Patch numbers are 33152235 and 33152237. 21c being no more updated now, you will need to download these files for an older ODA patch release (19.17).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/dbi\/\nunzip p33152235_1917000_Linux-x86-64.zip\nunzip p33152237_1917000_Linux-x86-64.zip\nodacli update-repository -f \/opt\/dbi\/odacli-dcs-19.17.0.0.0-221028-GI-21.8.0.0.zip\nsleep 30 ; odacli update-repository -f \/opt\/dbi\/odacli-dcs-19.17.0.0.0-221028-DB-21.8.0.0.zip\n\n\nsleep 30; odacli describe-dbsystem-image | grep -v not-available\nDB System Image details\n--------------------------------------------------------------------------------\nComponent Name        Supported Versions    Available Versions\n--------------------  --------------------  --------------------\n\nDBVM                  19.20.0.0.0           19.20.0.0.0\n\nGI                    19.20.0.0.230718      19.20.0.0.230718\n                      21.8.0.0.221018       21.8.0.0.221018\n\nDB                    19.20.0.0.230718      19.20.0.0.230718\n                      21.8.0.0.221018       21.8.0.0.221018<\/code><\/pre>\n\n\n\n<p>My json file will be quite similar to the 19c&#8217;s one, let&#8217;s show the differences between the 2 files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>diff create_dbs19.json create_dbs23.json\n3c3\n&lt;         \"name\": \"dbs19\",\n---\n&gt;         \"name\": \"dbs23\",\n57,58c57,58\n&lt;         \"name\": \"CDB19\",\n&lt;         \"uniqueName\": \"CDB19_S1\",\n---\n&gt;         \"name\": \"CDB23\",\n&gt;         \"uniqueName\": \"CDB23_S1\",\n61c61\n&lt;         \"version\": \"19.20.0.0.230718\",\n---\n&gt;         \"version\": \"21.8.0.0.221018\",\n80c80\n&lt;         \"pdbName\": \"pdb19\",\n---\n&gt;         \"pdbName\": \"pdb23\",\n94,95c94,95\n&lt;                 \"name\": \"dbs19\",\n&lt;                 \"ipAddress\": \"10.86.0.242\",\n---\n&gt;                 \"name\": \"dbs23\",\n&gt;                 \"ipAddress\": \"10.86.0.243\",<\/code><\/pre>\n\n\n\n<p>Nothing special here.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Let&#8217;s create this new DB System and wait 30 minutes:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli create-dbsystem -p \/opt\/dbi\/create_dbs23.json\nEnter password for system \"dbs23\":\nRetype password for system \"dbs23\":\nEnter administrator password for DB \"CDB23\":\nRetype administrator password for DB \"CDB23\":\n\n\nodacli describe-job -i f25b1820-f781-4050-8f06-526b2a34a015\n\nJob details\n----------------------------------------------------------------\n                     ID:  f25b1820-f781-4050-8f06-526b2a34a015\n            Description:  DB System dbs23 creation\n                 Status:  Success\n                Created:  November 17, 2023 12:14:05 PM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nCreate DB System metadata                November 17, 2023 12:14:05 PM CET   November 17, 2023 12:14:05 PM CET   Success\nPersist new DB System                    November 17, 2023 12:14:05 PM CET   November 17, 2023 12:14:05 PM CET   Success\nValidate DB System prerequisites         November 17, 2023 12:14:05 PM CET   November 17, 2023 12:14:08 PM CET   Success\nSetup DB System environment              November 17, 2023 12:14:08 PM CET   November 17, 2023 12:14:08 PM CET   Success\nCreate DB System ASM volume              November 17, 2023 12:14:08 PM CET   November 17, 2023 12:14:14 PM CET   Success\nCreate DB System ACFS mount point        November 17, 2023 12:14:14 PM CET   November 17, 2023 12:14:14 PM CET   Success\nCreate DB System ACFS filesystem         November 17, 2023 12:14:14 PM CET   November 17, 2023 12:14:22 PM CET   Success\nCreate DB System VM ACFS snapshots       November 17, 2023 12:14:22 PM CET   November 17, 2023 12:14:47 PM CET   Success\nCreate temporary SSH key pair            November 17, 2023 12:14:47 PM CET   November 17, 2023 12:14:48 PM CET   Success\nCreate DB System cloud-init config       November 17, 2023 12:14:48 PM CET   November 17, 2023 12:14:49 PM CET   Success\nProvision DB System VM(s)                November 17, 2023 12:14:49 PM CET   November 17, 2023 12:14:51 PM CET   Success\nAttach disks to DB System                November 17, 2023 12:14:51 PM CET   November 17, 2023 12:14:51 PM CET   Success\nAdd DB System to Clusterware             November 17, 2023 12:14:51 PM CET   November 17, 2023 12:14:52 PM CET   Success\nStart DB System                          November 17, 2023 12:14:52 PM CET   November 17, 2023 12:14:53 PM CET   Success\nWait DB System VM first boot             November 17, 2023 12:14:53 PM CET   November 17, 2023 12:16:09 PM CET   Success\nSetup Mutual TLS (mTLS)                  November 17, 2023 12:16:09 PM CET   November 17, 2023 12:16:27 PM CET   Success\nExport clones repository                 November 17, 2023 12:16:27 PM CET   November 17, 2023 12:16:27 PM CET   Success\nSetup ASM client cluster config          November 17, 2023 12:16:27 PM CET   November 17, 2023 12:16:29 PM CET   Success\nCopy ASM client cluster config           November 17, 2023 12:16:29 PM CET   November 17, 2023 12:16:29 PM CET   Success\nInstall DB System                        November 17, 2023 12:16:29 PM CET   November 17, 2023 12:45:38 PM CET   Success\nCleanup temporary SSH key pair           November 17, 2023 12:45:38 PM CET   November 17, 2023 12:45:39 PM CET   Success\nSet DB System as configured              November 17, 2023 12:45:39 PM CET   November 17, 2023 12:45:39 PM CET   Success<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-migrating-a-19c-pdb-to-21c-db-system\">Migrating a 19c PDB to 21c DB System<\/h2>\n\n\n\n<p>My 21c\/23c DB System is actually the one that will replace my 19c DB System. Instead of migrating my 19c DB System to a 21c DB System, I will try unplugging my 19c PDB and plugging in into my 21c DB System.<\/p>\n\n\n\n<p>Let&#8217;s locate my files on my 19c PDB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@10.86.0.242\nsu - oracle\n. oraenv &lt;&lt;&lt; CDB19\nsqlplus \/ as sysdba\nalter session set container=PDB19;\nselect file_name from dba_data_files;\nFILE_NAME\n--------------------------------------------------------------------------------\n+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/system.361.1152806347\n+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/sysaux.360.1152806347\n+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/undotbs1.359.1152806347\n+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/users.363.1152806351\nexit\nexit\nexit\n<\/code><\/pre>\n\n\n\n<p>My datafiles reside in ASM, let&#8217;s find out if I can reach them from the 21c DB System:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@10.86.0.243\nsu - grid\nasmcmd ls +DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\nSYSAUX.360.1152806347\nSYSTEM.361.1152806347\nUNDOTBS1.359.1152806347\nUSERS.363.1152806351\n\nexit\nexit<\/code><\/pre>\n\n\n\n<p>I can see the datafiles on my new DB System, let&#8217;s try migrating PDB19 to this new DB System.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@10.86.0.242\nsu - oracle\n. oraenv &lt;&lt;&lt; CDB19\nsqlplus \/ as sysdba\nalter pluggable database PDB19 close immediate;\n\nPluggable database altered.\n\nalter pluggable database PDB19 unplug into '\/tmp\/PDB19.xml';\n\nPluggable database altered.\n\nexit\n\nscp \/tmp\/PDB19.xml oracle@10.86.0.243:\/tmp\/\n\n\nexit\n\nssh root@10.86.0.243\nsu - oracle\n. oraenv &lt;&lt;&lt; CDB23\n\nsqlplus \/ as sysdba\n\nshow pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n\n\ncreate pluggable database PDB19 using '\/tmp\/PDB19.xml' COPY;\n\n\ncreate pluggable database PDB19 using '\/tmp\/PDB19.xml' COPY\n*\nERROR at line 1:\nORA-19505: failed to identify file\n\"+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/system.361.1152806347\"\nORA-17503: ksfdopn:2 Failed to open file\n+DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/system.361.1152806347\nORA-15260: permission denied on ASM disk group\n<\/code><\/pre>\n\n\n\n<p>There is a catch: files are not usable on this DB System. It makes sense, otherwise it could be a security flaw. Let&#8217;s change the permission on these files from the Bare Metal ASM instance:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>exit\nexit\nexit\nsu - grid\n\nasmcmd chmod a+r +DATA\/CDB19_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/*\nexit\n\nssh root@10.86.0.243\nsu - oracle\n. oraenv &lt;&lt;&lt; CDB23\n\nsqlplus \/ as sysdba\ncreate pluggable database PDB19 using '\/tmp\/PDB19.xml' COPY;\n\nPluggable database created.\n\nshow pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n         4 PDB19                          MOUNTED\n\nalter pluggable database pdb19 open;\n\nWarning: PDB altered with errors.\n\n show pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n         4 PDB19                          MIGRATE    YES\nexit<\/code><\/pre>\n\n\n\n<p>The PDB19 is in migrate mode, maybe datapatch should be applied before opening the PDB?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ORACLE_HOME\/OPatch\/datapatch -pdbs PDB19\nSQL Patching tool version 21.8.0.0.0 Production on Fri Nov 17 15:04:19 2023\nCopyright (c) 2012, 2022, Oracle.  All rights reserved.\n\nLog file for this invocation: \/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/sqlpatch_45518_2023_11_17_15_04_19\/sqlpatch_invocation.log\n\nConnecting to database...OK\nGathering database info...done\n\nNote:  Datapatch will only apply or rollback SQL fixes for PDBs\n       that are in an open state, no patches will be applied to closed PDBs.\n       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation\n       (Doc ID 1585822.1)\n\nBootstrapping registry and package to current versions...done\n\nError: prereq checks failed!\nFailure during bootstrap\nPrereq check failed, exiting without installing any patches.\n\nPlease refer to MOS Note 1609718.1 and\/or the invocation log\n\/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/sqlpatch_45518_2023_11_17_15_04_19\/sqlpatch_invocation.log\nfor information on how to resolve the above errors.\n\nSQL Patching tool complete on Fri Nov 17 15:04:21 2023\n<\/code><\/pre>\n\n\n\n<p>Looking into the log file, I can see several errors related to timezone:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;2023-11-17 15:04:21] PDB19: Error in bootstrap log \/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/sqlpatch_45518_2023_11_17_15_04_19\/bootstrap1_CDB23_PDB19.log:\n  -&gt; Error at line 15: script sqlpatch_bootstrap.sql\n     - ORA-01804: failure to initialize timezone information\n  -&gt; Error at line 25: script sqlpatch_bootstrap.sql\n     - SP2-1506: START, @ or @@ command has no arguments\n  -&gt; Error at line 29: script sqlpatch_bootstrap.sql\n     - ORA-01804: failure to initialize timezone information\n  -&gt; Error at line 59: script sqlpatch_bootstrap.sql\n     - ORA-00904: \"DBMS_REGISTRY\".\"SCHEMA_LIST_STRING\": invalid identifier\n  -&gt; Error at line 135: script prvtsqlpatch.plb\n     - ORA-01804: failure to initialize timezone information<\/code><\/pre>\n\n\n\n<p>It makes me think about problems I had in the past where timezone should be migrated. In fact, my 19.20 container is more recent than my 21.8 container, just because Oracle stopped providing updates for this innovation release.<\/p>\n\n\n\n<p>Let&#8217;s check the timezone version on both containers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>19c:\n\nSQL&gt;  select * from v$timezone_file;\n\nFILENAME                VERSION     CON_ID\n-------------------- ---------- ----------\ntimezlrg_42.dat              42          0\n\n\n\n21c:\n\nselect * from v$timezone_file;\n\nFILENAME                VERSION     CON_ID\n-------------------- ---------- ----------\ntimezlrg_39.dat              39          0<\/code><\/pre>\n\n\n\n<p>That&#8217;s it. I will need to copy the timezone file from my 19c DB System to my 21c DB home:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scp \/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\/oracore\/zoneinfo\/timezlrg_42.dat oracle@10.86.0.243:\/u01\/app\/oracle\/product\/21.0.0.0\/dbhome_1\/oracore\/zoneinfo\/\nscp \/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\/oracore\/zoneinfo\/big\/timezlrg_42.dat oracle@10.86.0.243:\/u01\/app\/oracle\/product\/21.0.0.0\/dbhome_1\/oracore\/zoneinfo\/big\/\nscp \/u01\/app\/oracle\/product\/19.0.0.0\/dbhome_1\/oracore\/zoneinfo\/little\/timezlrg_42.dat oracle@10.86.0.243:\/u01\/app\/oracle\/product\/21.0.0.0\/dbhome_1\/oracore\/zoneinfo\/little\/<\/code><\/pre>\n\n\n\n<p>Now let&#8217;s remove the PDB and plug it in another time:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>drop pluggable database PDB19 including datafiles;\n\nPluggable database dropped.\n\ncreate pluggable database PDB19 using '\/tmp\/PDB19.xml' COPY;\n\nPluggable database created.\n\nSQL&gt; show pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n         5 PDB19                          MOUNTED\n\nalter pluggable database pdb19 open;<\/code><\/pre>\n\n\n\n<p>In another session, let&#8217;s look at what&#8217;s happening:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n         5 PDB19                          MIGRATE    YES\n<\/code><\/pre>\n\n\n\n<p>PDB is being migrated automatically. 10 minutes after, my PDB is migrated but there are some errors:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Warning: PDB altered with errors.\n\nselect message, action from PDB_PLUG_IN_VIOLATIONS where status = 'PENDING' and con_id = 5;\n\nMESSAGE\n--------------------------------------------------------------------------------\nACTION\n--------------------------------------------------------------------------------\nInterim patch 34282948\/24963304 (DUPLICATE DATABASE COMMAND FAILS WITH ERROR ORA\n-00907 WHEN ORIGINAL DB IS IN NON STANDARD NLS LANGUA): Installed in the CDB but\n not in the PDB\nCall datapatch to install in the PDB or the CDB\n\n'21.8.0.0.0 Release_Update 2209301729' is installed in the CDB but no release up\ndates are installed in the PDB\nCall datapatch to install in the PDB or the CDB\n\nexit\n<\/code><\/pre>\n\n\n\n<p>OK, let&#8217;s apply the datapatch now:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ORACLE_HOME\/OPatch\/datapatch -pdbs PDB19\nSQL Patching tool version 21.8.0.0.0 Production on Fri Nov 17 15:53:06 2023\nCopyright (c) 2012, 2022, Oracle.  All rights reserved.\n\nLog file for this invocation: \/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/sqlpatch_78019_2023_11_17_15_53_06\/sqlpatch_invocation.log\n\nConnecting to database...OK\nGathering database info...done\n\nNote:  Datapatch will only apply or rollback SQL fixes for PDBs\n       that are in an open state, no patches will be applied to closed PDBs.\n       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation\n       (Doc ID 1585822.1)\n\nBootstrapping registry and package to current versions...done\nDetermining current state...done\n\nCurrent state of interim SQL patches:\nInterim patch 34282948 (DUPLICATE DATABASE COMMAND FAILS WITH ERROR ORA-00907 WHEN ORIGINAL DB IS IN NON STANDARD NLS LANGUA):\n  Binary registry: Installed\n  PDB PDB19: Not installed\n\nCurrent state of release update SQL patches:\n  Binary registry:\n    21.8.0.0.0 Release_Update 220930172918: Installed\n  PDB PDB19:\n    No release update patches installed\n\nAdding patches to installation queue and performing prereq checks...done\nInstallation queue:\n  For the following PDBs: PDB19\n    No interim patches need to be rolled back\n    Patch 34527084 (Database Release Update : 21.8.0.0.221018 (34527084)):\n      Apply from 21.1.0.0.0 Feature Release to 21.8.0.0.0 Release_Update 220930172918\n    The following interim patches will be applied:\n      34282948 (DUPLICATE DATABASE COMMAND FAILS WITH ERROR ORA-00907 WHEN ORIGINAL DB IS IN NON STANDARD NLS LANGUA)\n\nInstalling patches...\n\n\nPatch installation complete.  Total patches installed: 2\n\nValidating logfiles...done\nPatch 34527084 apply (pdb PDB19): SUCCESS\n  logfile: \/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/34527084\/24956767\/34527084_apply_CDB23_PDB19_2023Nov17_15_53_17.log (no errors)\nPatch 34282948 apply (pdb PDB19): SUCCESS\n  logfile: \/u01\/app\/oracle\/homes\/OraDB21000_home1\/cfgtoollogs\/sqlpatch\/34282948\/24963304\/34282948_apply_CDB23_PDB19_2023Nov17_15_54_59.log (no errors)\nSQL Patching tool complete on Fri Nov 17 16:14:42 2023\n<\/code><\/pre>\n\n\n\n<p>It took 20 minutes to complete, but as I already said, 21c is not a production release.<\/p>\n\n\n\n<p>Let&#8217;s check the files belonging to this PDB: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB23                          READ WRITE NO\n         5 PDB19                          READ WRITE YES\n\nalter session set container=pdb19;\n\nSession altered.\n\nselect file_name from dba_data_files;\n\nFILE_NAME\n--------------------------------------------------------------------------------\n+DATA\/CDB23_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/users.385.1153150871\n+DATA\/CDB23_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/undotbs1.386.1153150871\n+DATA\/CDB23_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/sysaux.387.1153150871\n+DATA\/CDB23_S1\/0A0AE962C44E83DBE063F200240A6B97\/DATAFILE\/system.384.1153150871\n<\/code><\/pre>\n\n\n\n<p>The files have been copied as expected. This migrated PDB can now live its life as a 21c PDB.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-remove-pdb19-from-the-source-cdb\">Remove PDB19 from the source CDB<\/h2>\n\n\n\n<p>I can keep my PDB19 on my CDB19 as datafiles have been copied, but I can also remove the PDB from its source container:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@10.86.0.242\n. oraenv &lt;&lt;&lt; CDB19\nsqlplus \/ as sysdba\nshow pdbs\n\n    CON_ID CON_NAME                       OPEN MODE  RESTRICTED\n---------- ------------------------------ ---------- ----------\n         2 PDB$SEED                       READ ONLY  NO\n         3 PDB19                          MOUNTED\n\ndrop pluggable database PDB19 including datafiles;\n\nexit\nexit\nexit<\/code><\/pre>\n\n\n\n<p>I can also remove my DB System later if PDB19 was the last PDB to be migrated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>odacli list-dbsystems\nName                  Shape       Cores  Memory      GI version          DB version          Status           Created                   Updated\n--------------------  ----------  -----  ----------  ------------------  ------------------  ---------------  ------------------------  ------------------------\ndbs23                 odb2        2      16.00 GB    21.8.0.0.221018     21.8.0.0.221018     CONFIGURED       2023-11-17 12:14:05 CET   2023-11-17 12:45:39 CET\ndbs19                 odb2        2      16.00 GB    19.20.0.0.230718    19.20.0.0.230718    CONFIGURED       2023-11-13 15:29:48 CET   2023-11-13 16:03:37 CET\n\nodacli stop-dbsystem -n dbs19\n\nsleep 30 ; odacli delete-dbsystem -n dbs19 --force\n\nsleep 60 ;  odacli list-dbsystems\nName                  Shape       Cores  Memory      GI version          DB version          Status           Created                   Updated\n--------------------  ----------  -----  ----------  ------------------  ------------------  ---------------  ------------------------  ------------------------\ndbs23                 odb2        2      16.00 GB    21.8.0.0.221018     21.8.0.0.221018     CONFIGURED       2023-11-17 12:14:05 CET   2023-11-17 12:45:39 CET<\/code><\/pre>\n\n\n\n<p>The force option will not prompt for any confirmation and will also remove the datafiles belonging to this DB System.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>With DB Systems and Multitenant on ODA, it&#8217;s rather easy migrating to a newer version. Just unplug the PDB you want to migrate from the old container, plug it in into the new one, and apply the datapatch. You shouldn&#8217;t encounter any trouble with timezone if the patch level of your 23c is higher than the one you&#8217;re using on your 19c.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Oracle 23c is not yet available on Oracle Database Appliance (ODA), but it should be ready in 2024. As 23c is the next Long Term release, 19c databases will probably migrate to 23c in the coming years. If you decided to use DB Systems on your ODA, you might think that migration will not [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[62,63,3185,2495,2567,1327,3183,2568,3184,3081,3080,3079,1330,1331,1698,1699,2427,2429],"type_dbi":[],"class_list":["post-29515","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-19c","tag-21c","tag-database-migration-on-oda","tag-db-systems","tag-oda-2","tag-odacli","tag-ora-01804-failure-to-initialize-timezone-information","tag-oracle-database-appliance-2","tag-warning-pdb-altered-with-errors","tag-x10-ha","tag-x10-l","tag-x10-s","tag-x7-2ha","tag-x7-2m","tag-x8-2m","tag-x8-2s","tag-x9-2ha","tag-x9-2s"],"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>Easy PDB migration with ODA and DB Systems - 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\/easy-pdb-migration-with-oda-and-db-systems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Easy PDB migration with ODA and DB Systems\" \/>\n<meta property=\"og:description\" content=\"Introduction Oracle 23c is not yet available on Oracle Database Appliance (ODA), but it should be ready in 2024. As 23c is the next Long Term release, 19c databases will probably migrate to 23c in the coming years. If you decided to use DB Systems on your ODA, you might think that migration will not [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-21T06:53:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-21T06:53:37+00:00\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Dubar\" \/>\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 Dubar\" \/>\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\/easy-pdb-migration-with-oda-and-db-systems\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Dubar\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"headline\":\"Easy PDB migration with ODA and DB Systems\",\"datePublished\":\"2023-11-21T06:53:35+00:00\",\"dateModified\":\"2023-11-21T06:53:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\"},\"wordCount\":1277,\"commentCount\":0,\"keywords\":[\"19c\",\"21c\",\"database migration on ODA\",\"db systems\",\"oda\",\"odacli\",\"ORA-01804: failure to initialize timezone information\",\"oracle database appliance\",\"Warning: PDB altered with errors.\",\"x10-ha\",\"x10-l\",\"x10-s\",\"X7-2HA\",\"X7-2M\",\"x8-2m\",\"x8-2s\",\"X9-2HA\",\"X9-2S\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\",\"name\":\"Easy PDB migration with ODA and DB Systems - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2023-11-21T06:53:35+00:00\",\"dateModified\":\"2023-11-21T06:53:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Easy PDB migration with ODA and DB Systems\"}]},{\"@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\/0fb4bbf128b4cda2f96d662dec2baedd\",\"name\":\"J\u00e9r\u00f4me Dubar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00f4me Dubar\"},\"description\":\"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Easy PDB migration with ODA and DB Systems - 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\/easy-pdb-migration-with-oda-and-db-systems\/","og_locale":"en_US","og_type":"article","og_title":"Easy PDB migration with ODA and DB Systems","og_description":"Introduction Oracle 23c is not yet available on Oracle Database Appliance (ODA), but it should be ready in 2024. As 23c is the next Long Term release, 19c databases will probably migrate to 23c in the coming years. If you decided to use DB Systems on your ODA, you might think that migration will not [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/","og_site_name":"dbi Blog","article_published_time":"2023-11-21T06:53:35+00:00","article_modified_time":"2023-11-21T06:53:37+00:00","author":"J\u00e9r\u00f4me Dubar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"J\u00e9r\u00f4me Dubar","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/"},"author":{"name":"J\u00e9r\u00f4me Dubar","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"headline":"Easy PDB migration with ODA and DB Systems","datePublished":"2023-11-21T06:53:35+00:00","dateModified":"2023-11-21T06:53:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/"},"wordCount":1277,"commentCount":0,"keywords":["19c","21c","database migration on ODA","db systems","oda","odacli","ORA-01804: failure to initialize timezone information","oracle database appliance","Warning: PDB altered with errors.","x10-ha","x10-l","x10-s","X7-2HA","X7-2M","x8-2m","x8-2s","X9-2HA","X9-2S"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/","url":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/","name":"Easy PDB migration with ODA and DB Systems - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2023-11-21T06:53:35+00:00","dateModified":"2023-11-21T06:53:37+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/easy-pdb-migration-with-oda-and-db-systems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Easy PDB migration with ODA and DB Systems"}]},{"@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\/0fb4bbf128b4cda2f96d662dec2baedd","name":"J\u00e9r\u00f4me Dubar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","caption":"J\u00e9r\u00f4me Dubar"},"description":"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.","url":"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/29515","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\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=29515"}],"version-history":[{"count":4,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/29515\/revisions"}],"predecessor-version":[{"id":29519,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/29515\/revisions\/29519"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=29515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=29515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=29515"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=29515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}