sql >> Databasteknik >  >> RDS >> Oracle

ORA-65139:Missmatch mellan XML-metadatafil och datafil

Jag försökte koppla in en icke-CDB till vår nya Multitenant-miljö när vi flyttade till Multitenant. Jag ska skapa en gyllene bild av vår produktion som inte är CDB och sedan kommer alla dev- och testdatabaser bara att klonas av den gyllene bilden. Men först måste jag koppla in icke-CDB:n. Jag har skivans ögonblicksbild monterad på Multitenant-databasservrarna. Jag genererade också XML-filen och jag är redo att koppla in icke-CDB med detta kommando:

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;

Tyvärr stötte jag på följande fel:

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)

I min forskning ses ORA-65139-felet normalt när XML-filen genererades med databasen öppen som READ WRITE. Men jag vet med säkerhet att min databas var LÄS ENDAST när XML-filen genererades. Dessutom hade alla liknande problem jag hittade på MOS och i Google-sökningar alla "värdet av fcpsb" medan den sista raden i mitt felmeddelande säger "värdet på rdba". Jag är inte säker på vad RDBA har att göra med detta och inget av värdena i felmeddelandet mappar till datafillistan i meddelandet. Så det här var ett pussel för mig.

Efter att ha provat några olika saker bestämde jag mig för att köra kontrollen för kompatibilitet med plugin.

DECLARE
compatible BOOLEAN;
BEGIN
compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
     pdb_descr_file=>'/home/oracle/source_db.xml',
     pdb_name=>'GOLD180904');
END;
/

När du frågade PDB_PLUG_IN_VIOLATIONS hade en rad ett fel. Dess meddelande i den uppfattningen sa:

PSU-paketpatch 180717 (UPPDATERING AV DATABAS PATCH SET UPDATE 12.1.0.2.180717):Installerad i PDB men inte i CDB.

Detta är nu mer meningsfullt. Källdatabasen är en produktionsmiljö med den senaste PSU tillämpad. CDB är helt ny och har ännu inte sett några patchar. Jag använde den senaste PSU:n på CDB:n och plugin-operationen fungerade framgångsrikt vid nästa försök.

Till slut var det uppenbart att felmeddelandet inte hade något att göra med grundorsaken till problemet. Åtminstone inte för mig.


  1. MySQL my.ini-plats

  2. Första offentliga förhandsvisning av SQL Server 2019:CTP 2.0

  3. Ska jag ta bort eller inaktivera en rad i en relationsdatabas?

  4. Hur inaktiverar jag tillfälligt triggers i PostgreSQL?