Eu estava tentando conectar um não-CDB em nosso novo ambiente Multitenant enquanto mudamos para Multitenant. Eu vou criar uma imagem dourada de nossa produção não-CDB e então todos os bancos de dados de desenvolvimento e teste serão apenas clones da imagem dourada. Mas primeiro, preciso conectar o não-CDB. Tenho o instantâneo de disco montado nos servidores de banco de dados Multitenant. Também gerei o arquivo XML e estou pronto para conectar o não-CDB com este comando:
CREATE PLUGGABLE DATABASE gold180904 USING '/home/oracle/source_db.xml' NOCOPY SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/data01', '/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data01', '/u01/app/oracle/oradata/data02','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data02', '/u01/app/oracle/oradata/data03','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03', '/u01/app/oracle/oradata/data04','/u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data04') TEMPFILE REUSE;
Infelizmente, me deparei com o seguinte erro:
CREATE PLUGGABLE DATABASE gold180904 * ERROR at line 1: ORA-65139: Mismatch between XML metadata file and data file /u01/app/oracle/oradata/mt_golden_2018_09_06_095555/data03/datafile12.dbf for value of rdba (4194824 in the plug XML file, 4458552 in the data file)
Na minha pesquisa, o erro ORA-65139 normalmente é visto quando o arquivo XML foi gerado com o banco de dados aberto como READ WRITE. Mas eu sei de fato que meu banco de dados foi READ ONLY quando o arquivo XML foi gerado. Além disso, todos os problemas semelhantes que encontrei no MOS e nas pesquisas do Google tinham “valor de fcpsb”, enquanto a última linha da minha mensagem de erro diz “valor de rdba”. Bem, não tenho certeza do que o RDBA tem a ver com isso e nenhum dos valores no mapa da mensagem de erro para a listagem do arquivo de dados na mensagem. Então isso foi um quebra-cabeças para mim.
Depois de tentar algumas coisas diferentes, decidi executar a verificação da compatibilidade do plugin.
DECLARE compatible BOOLEAN; BEGIN compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file=>'/home/oracle/source_db.xml', pdb_name=>'GOLD180904'); END; /
Ao consultar PDB_PLUG_IN_VIOLATIONS, houve um erro em uma linha. Sua mensagem nessa visão dizia:
Patch do pacote PSU 180717 (DATABASE PATCH SET UPDATE 12.1.0.2.180717):Instalado no PDB, mas não no CDB.
Isso agora faz mais sentido. O banco de dados de origem é um ambiente de produção com a PSU mais recente aplicada. O CDB é novo e ainda não viu nenhum patch. Apliquei a PSU mais recente ao CDB e a operação do plug-in funcionou com sucesso na próxima tentativa.
No final, ficou óbvio que a mensagem de erro não tinha nada a ver com a causa raiz do problema. Pelo menos não para mim.