Oracle
 sql >> база данни >  >> RDS >> Oracle

Това е в подробностите

Имам Oracle 12.1.0.2 Multitenant база данни, от която се опитвам да премахна PDB. Въпреки това по погрешка премахнах хранилището от сървъра на базата данни и PDB няма достъп до неговите файлове. Когато изключвам PDB, получавам следната грешка:

SQL> alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml';
alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml'
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 50277 - see DBWR trace file
ORA-01110: data file 50277:
'/u01/app/oracle/oradata/mt_golden_2019_08_22_125953/data03/datafile_20.dbf'

Е, това е жалко, но може да се очаква в моя случай. По погрешка извадих хранилището за този PDB, преди да го изключа. По-голямата част от литературата на сайта за поддръжка на Oracle казва за възстановяване на PDB от вашия архив. Но този PDB е клонинг на продукцията и не искам да го архивирам. Той е 25+TB и ако нещо се обърка с него, премахвам PDB и създавам нов клонинг на продукцията. Не е необходимо архивиране, освен може да ме спаси от глупавата ми грешка да премахна хранилището, преди да изключа.

Тъй като не можах да изключа PDB, се опитах просто да пусна PDB, но получавам различна грешка:

SQL> drop pluggable database GOLD2019_08_22_125953 keep datafiles;
drop pluggable database GOLD2019_08_22_125953 keep datafiles
*
ERROR at line 1:
ORA-65179: cannot keep datafiles for a pluggable database that is not unplugged

Сега се чувствам така, сякаш съм в ситуация на Catch-22. Не мога да изключа PDB, нито мога да го пусна.

Виждал съм тази грешка много пъти и винаги съм искал да мога просто да пусна PDB, без да се налага първо да го изключвам. Нямам желание да включа това в друг CDB. Просто искам всичко да си отиде завинаги. И тогава разбрах, че е в детайлите. Когато прочетох това съобщение за грешка ORA-65179, се съсредоточих върху последната част от него. PDB не се изключва първо. Прочетох това съобщение за грешка поне 20 пъти в работата си с Multitenant и пропуснах критичната подробност, която ме спря да пусна PDB, която сега ще подчертая по-долу.

ORA-65179:не може да се запази файлове с данни за включваща се база данни, която не е изключена

Подробността, която продължавам да пропускам, беше, че не можех да ЗАПАЗВАМ файловете с данни. Това означава ли, че мога да пусна PDB, ако премахна и файловете с данни?

SQL> drop pluggable database GOLD2019_08_22_125953 including datafiles;

 Pluggable database dropped. 

Разбира се, лесно мога да пусна PDB. Понякога най-интересните неща се откриват в детайлите, ако просто забавим малко и се уверим, че виждаме всичко пред себе си, вместо да скачаме до края.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LN() Функция в Oracle

  2. Разделена таблица на Oracle

  3. Преместване на данни от SQL Server към Oracle многократно

  4. Бързо разделяне на дялове

  5. Как да активирате регистриране за SQL изрази, когато използвате JDBC