Tuesday, February 24, 2015

Non-CDB to PDB Migration Job Fails

During our migration testing of a non-CDB to a PDB we found that the deployment procedure fails if a tablespace in the non-CDB has a name with 18 characters or more. Shorter names could also have the problem if you CDB and PDB names are longer.

The issue we found was the ASM alias that is created will be created with the CDB_PDB_<datafile_name>.guid this will exceed the allowed 48 characters on an ASM alias.

SR was open with Oracle and as this writing a bug has been opened.

You can use the following work around so you can complete the job in OEM.

Deploy procedure shows the following error this is due to a tablespace coming from the non-CDB having the name with longer than 18 characters.

ASM alert log shows the following error this is due to the length of the existing datafile with the additional CDB_PDB_ name added to the alias

Work around
 1.  You need to delete any files that were create at the ASM level using ASMCMD. The files would be located in <diskgroup>/<sid>/<pdb_guid>/datafile/<cdb_pdb_*
Example below

 2. In the failed procedure step click the action button and choose retry and update
 3. Then rename the data files to smaller than 18 characters for example my tablespace was called COOL_APP_TABLESPACE.290.872420859 I renamed to COOL_APP.290.872420859
 This is what it looked like after I made the change GO TO THE NEXT STEP BEFORE YOU CLICK OK
Go to the import log file directory you can get the path from the update and retry window. Rename the files to match what you renamed in the update and retry window now click OK.

No comments:

Post a Comment

About Me

My photo

Senior DBA with over 16 years experience, specializing in "Database Performance Tuning" and High Availability (RAC, Data Guard & Oracle Golden Gate).