sql >> Database teknologi >  >> RDS >> Oracle

ORA-65139:Uoverensstemmelse mellem XML-metadatafil og datafil

Jeg prøvede at tilslutte en ikke-CDB til vores nye Multitenant-miljø, da vi gik over til Multitenant. Jeg vil lave et gyldent billede af vores produktion, der ikke er CDB, og så vil alle dev- og testdatabaser bare være kloner fra det gyldne billede. Men først skal jeg få sat ikke-CDB'en i. Jeg har disk-snapshotet monteret på Multitenant-databaseserverne. Jeg genererede også XML-filen, og jeg er klar til at tilslutte ikke-CDB med denne 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;

Desværre løb jeg ind i følgende fejl:

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-fejlen normalt, når XML-filen blev genereret med databasen åben som READ WRITE. Men jeg ved med sikkerhed, at min database var LÆSEKUN, da XML-filen blev genereret. Desuden havde alle de lignende problemer, jeg fandt på MOS og i Google-søgninger, alle "værdien af ​​fcpsb", mens den sidste linje i min fejlmeddelelse siger "værdien af ​​rdba". Nå, jeg er ikke sikker på, hvad RDBA har at gøre med dette, og ingen af ​​værdierne i fejlmeddelelsen er knyttet til datafillisten i meddelelsen. Så dette var et puslespil for mig.

Efter at have prøvet et par forskellige ting, besluttede jeg at køre kontrollen for plugin-kompatibilitet.

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

Ved forespørgsel til PDB_PLUG_IN_VIOLATIONS var der en fejl på én linje. Dens budskab i den visning sagde:

PSU bundle patch 180717 (DATABASE PATCH SET UPDATE 12.1.0.2.180717):Installeret i PDB, men ikke i CDB.

Dette giver nu mere mening. Kildedatabasen er et produktionsmiljø med den nyeste PSU anvendt. CDB er helt ny og har endnu ikke set nogen patches. Jeg anvendte den seneste PSU til CDB'en, og plugin-operationen fungerede med succes ved næste forsøg.

I sidste ende var det indlysende, at fejlmeddelelsen ikke havde noget at gøre med årsagen til problemet. I hvert fald ikke for mig.


  1. Migrering af MySQL til PostgreSQL på AWS RDS, del 3

  2. Deaktiver SA-kontoen i SQL Server (T-SQL-eksempel)

  3. Sådan installeres Haproxy og Keepalved

  4. Introduktion til diagramtyper