Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORA-1114 Uruchamianie łaty danych

Mam bazę danych Oracle 19.3 Multitenant, którą próbuję zastosować aktualizację wydania 19.7. RU został zainstalowany przez opatch w porządku. Ale datapatch spowoduje błąd ORA-1114. W jednym z dzienników pojawiają się następujące błędy:

SQL> zmień podłączaną bazę danych GOLD2020_06_18_123653 otwórz odczyt zapisu instancje=wszystkie;
zmień podłączaną bazę danych GOLD2020_06_18_123653 otwórz odczyt zapisu instancje=wszystkie
*
BŁĄD w wierszu 1:
ORA-65107:Wystąpił błąd podczas przetwarzania bieżącego zadania na instancji:1
ORA-17500:Błąd ODM:Nieprawidłowy argument
ORA-01114:Błąd IO zapisu bloku do pliku 12346 (blok nr 1)
ORA-17500:Błąd ODM:Nieprawidłowy argument
ORA-01114:Błąd IO zapisu bloku do pliku 12345 (blok nr 1)
ORA-17500:Błąd ODM:nieprawidłowy argument

Zanim wyjaśnię, na czym polega problem, omówię, w jaki sposób korzystamy z Multitenant w moim środowisku. Raz w tygodniu mamy zadanie cron, które tworzy kopię naszej produkcyjnej bazy danych (przy użyciu migawek sprzętowych na dyskach). Tę kopię produkcji nazywamy naszym „złotym wizerunkiem”. Ten złoty obraz jest podłączony do naszej bazy danych jako jeden z naszych plików PDB. Nazwa pliku PDB ma format ZŁOTYrrrr_mm_dd_hhmiss abyśmy wiedzieli, kiedy ten plik PDB został utworzony.

Wszystkie nasze bazy danych deweloperskich i testowych są następnie tworzone z tego złotego pliku PDB. Kiedy potrzebuję odświeżyć DEV1 lub TEST, po prostu zamykamy PDB dla DEV1 lub TEST i usuwamy go. Następnie tworzymy migawkowy klon najnowszego złotego obrazu. Złoty plik PDB jest w trybie TYLKO DO ODCZYTU, aby ułatwić klonowanie migawki.

Jak pisałem tutaj, gdy plik PDB zostanie użyty jako źródło klonu migawki, Oracle zmieni uprawnienia do pliku na 220. To Oracle chroni nas przed nami. Nie powinniśmy mieć możliwości modyfikowania źródła klonu migawki, więc Oracle sprawia, że ​​pliki danych są tylko do odczytu. Ktokolwiek w Oracle, który zdecydował, że zmiana uprawnień do plików była dobrym pomysłem, nie rozmawiał o tym z twórcami datapatch.

Datapatch widzi plik PDB TYLKO DO ODCZYTU i chce go otworzyć jako ZAPIS DO ODCZYTU, załatać wnętrze pliku PDB, a następnie ustawić go z powrotem na TYLKO DO ODCZYTU. Jednak datapatch nie może otworzyć pliku PDB w trybie odczytu i zapisu, ponieważ uprawnienia do pliku na to nie pozwalają. Stąd błędy, które otrzymuję.

Oracle zrobiło mi to… wymusili uprawnienia do plików w jedną stronę, a następnie datapatch nie może zrobić tego, co teraz chcą.

Nie otrzymałem jeszcze oficjalnej wiadomości z moim zgłoszeniem serwisowym, ale spodziewam się, że stanie się to błędem. Moim zdaniem Datapatch powinien pomijać wszelkie pliki PDB, które są źródłem klonów migawek.

W międzyczasie możesz przez to przejść brutalnie. Próbowałem użyć parametru -exclude_pdbs do łaty danych, ale to nie zadziałało. Najwyraźniej istnieje znany błąd, w którym ten parametr nie działa, jeśli twoja lista plików PDB zawiera przecinek. Musiałem więc uruchomić łatkę danych w następujący sposób:\

./datapatch -verbose -pdbs cdb\$root
./datapatch -verbose -pdbs pdb\$seed
./datapatch -verbose -pdbs dev1,dev2

Najpierw uruchomiłem łatkę danych, aby załatać CDB$ROOT. Potem załatałem PDB$SEED. Potem załatałem moje dev PDB. Po prostu nie załatałem moich plików PDB ze złotym obrazem.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać klucza obcego w Oracle

  2. Jak zadeklarować wyjątek zdefiniowany przez użytkownika przy użyciu zmiennej wyjątku w bazie danych Oracle

  3. ORA-12704:niezgodność zestawu znaków

  4. Rekurencja w zapytaniu do bazy danych w celu uzyskania wyniku hierarchicznego za pomocą Hibernate - Java

  5. Metoda gromadzenia:funkcja ISTNIEJE w bazie danych Oracle