Опитвах се да включа не-CDB в нашата нова мултитенантна среда, докато преминаваме към Multitenant. Ще създам златно изображение на нашето производство, не-CDB, и тогава всички бази данни за разработчици и тестове ще бъдат просто клонинги на златното изображение. Но първо трябва да включа не-CDB. Имам моментна снимка на диска, монтирана към сървърите на база данни на Multitenant. Също така генерирах XML файла и съм готов да включа не-CDB с тази команда:
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;
За съжаление попаднах на следната грешка:
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)
В моето изследване грешката ORA-65139 обикновено се вижда, когато XML файлът е генериран с отворена база данни като READ WRITE. Но знам със сигурност, че моята база данни беше САМО ЧЕТЕНЕ, когато беше генериран XML файл. Освен това всички подобни проблеми, които открих в MOS и в търсенията в Google, имаха „стойност на fcpsb“, докато последният ред на съобщението ми за грешка казва „стойност на rdba“. Е, не съм сигурен какво общо има RDBA с това и нито една от стойностите в съобщението за грешка не се преобразува в списъка с файлове с данни в съобщението. Така че това беше озадачаващо за мен.
След като опитах няколко различни неща, реших да пусна проверка за съвместимост с плъгини.
DECLARE compatible BOOLEAN; BEGIN compatible:=DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file=>'/home/oracle/source_db.xml', pdb_name=>'GOLD180904'); END; /
При заявка PDB_PLUG_IN_VIOLATIONS един ред имаше грешка. Неговото съобщение в този изглед гласи:
Пакет за PSU 180717 (АКТУАЛИЗАЦИЯ НА НАСТРОЙКА НА БАЗА ДАННИ 12.1.0.2.180717):Инсталирана в PDB, но не и в CDB.
Това сега има повече смисъл. Базата данни източник е производствена среда с най-новото захранване. CDB е чисто нов и все още не е виждал никакви пачове. Приложих най-новото захранване към CDB и операцията на приставката работи успешно при следващия опит.
В крайна сметка беше очевидно, че съобщението за грешка няма нищо общо с основната причина за проблема. Поне не за мен.