Ao tentar plugar um banco de dados como um PDB dentro de um CDB, recebi o seguinte erro:
SQL> CREATE PLUGGABLE DATABASE DBHML
USING '/tmp/nonCDB_to_PDB.xml' COPY; 2
CREATE PLUGGABLE DATABASE DBHML
*
ERROR at line 1:
ORA-65139: Mismatch between XML metadata file and data file
+DATA/DBPROD_16XY7/DATAFILE/system.266.1069615663 for value of fcpsb (1968053
in the plug XML file, 1969509 in the data file)
Causa:
O banco de dados de origem foi alterado após gerar o arquivo XML com a procedure DBMS_PDB.DESCRIBE.
Solução:
Gerar um novo arquivo XML no banco de dados de origem.
1) Remover o XML antigo:
rm -rf /tmp/nonCDB_to_PDB.xml
2) Abrir o banco de dados em READ ONLY:
SQL> startup open read only;
ORACLE instance started.
Total System Global Area 1979711488 bytes
Fixed Size 2925984 bytes
Variable Size 671091296 bytes
Database Buffers 1291845632 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
3) Gerar um novo arquivo XML:
SQL> EXEC DBMS_PDB.DESCRIBE(pdb_descr_file=>'/tmp/nonCDB_to_PDB.xml');
PL/SQL procedure successfully completed.
4) Baixar banco de dados:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
5) Tentar criar o PDB novamente no CDB:
SQL> CREATE PLUGGABLE DATABASE DBHML USING '/tmp/nonCDB_to_PDB.xml' COPY;
Pluggable database created.