Metoda zamykania Oracle

9

Zamykanie bazy danych przed aktualizacją lub łatką można wykonać na kilka sposobów.

shutdown immediate;

lub

shutdown abort;
startup restrict;
shutdown immediate;

lub

shutdown abort;
startup restrict;
shutdown;

lub

alter system checkpoint;
shutdown abort;
startup restrict;
shutdown immediate;

Oczywiście są też inne opcje. Które powinny być preferowane i dlaczego?

Leigh Riffel
źródło

Odpowiedzi:

12

Podczas zamykania w celu konserwacji (lub zimnej kopii zapasowej) celem jest pozostawienie bazy danych w spójnym stanie bez potrzeby przywracania / odzyskiwania po uruchomieniu.

Istnieją 3 shutdownpolecenia SQL * Plus , które osiągają to teoretycznie, z których wszystkie natychmiast zapobiegają nawiązywaniu nowych sesji z instancją:

  1. shutdown normallub po prostu shutdown: czeka na rozłączenie wszystkich sesji. Ten tryb jest rzadko używany w praktyce, ponieważ polega na dobrze wychowanych klientach, którzy nie pozostawiają otwartych połączeń. Był to jedyny shutdowntryb, który nie anulował uruchomionych transakcji.
  2. shutdown transactional: rozłącza sesje po zakończeniu aktualnie uruchomionych transakcji, uniemożliwiając rozpoczęcie nowych transakcji.
  3. shutdown immediate: natychmiast odłącza wszystkie sesje i wycofuje przerwane transakcje przed zamknięciem. Pamiętaj, że rozłączenia są natychmiastowe, ale zamknięcie może nie nastąpić, ponieważ wycofanie transakcji może zająć trochę czasu.

Czwarty tryb shutdownto shutdown abort. To jest jak pociągnięcie za przewód - instancja zatrzymuje się teraz bez czyszczenia. Zwykle chcesz później ponownie uruchomić bazę danych i natychmiast zamknąć ją natychmiast, tak jak w twoim przykładzie. Przewodnik po koncepcjach mówi :

Ten tryb jest przeznaczony do sytuacji awaryjnych, na przykład gdy żadna inna forma zamknięcia się nie powiedzie.

Wszystkie podane przez Ciebie przykłady wykonują punkt kontrolny w ramach mniej shutdown [normal]lub bardziej shutdown immediatewyraźnego punktu kontrolnego, aby prawdopodobnie skrócić czas potrzebny na odzyskanie .

ogólna rada:

  • Nie używać shutdown normal.
  • Używaj tylko w shutdown transactional przypadku nadzorowanego zamykania , gdy chcesz zminimalizować anulowane transakcje (uczęszczane tylko dlatego, że tego rodzaju zamknięcie nie gwarantuje całkowitego zamknięcia bazy danych w przypadku przekroczenia limitów czasu).
  • Służy shutdown immediatedo nienadzorowanego zamykania systemu lub gdy nie obchodzi Cię aktualnie wykonywane transakcje.
  • Nie używaj shutdown abort(plus uruchomienie / zamknięcie), chyba że musisz - było to bardziej powszechne w znacznie wcześniejszych wersjach Oracle niż obecnie. W innych sytuacjach (bez łatania / aktualizacji), jeśli musisz zminimalizować przestoje, ten tryb może być odpowiedni.
Jack mówi, że spróbuj topanswers.xyz
źródło
Czy możesz podać więcej szczegółów na temat wad shutdown abort? Grając z antagonistą, jeśli możemy ufać, że Oracle wyzdrowieje poprawnie, gdy zostanie pobrana moc, czy nie powinniśmy ufać jej podczas shutdown abort, szczególnie jeśli jest to szybsze i zamierzamy natychmiast wykonać a startup restricti a shutdown immediate? Innymi słowy, czy są fakty, które możemy poprzeć strasznym ostrzeżeniem Oracle shutdown abort?
Leigh Riffel,
@Leigh - jedyne znane mi zagrożenie shutdown abortzwiązane z przypadkową kopią zapasową dzienników online, ale dzieje się tak tylko w przypadku, gdy nie wykonasz czystego zamknięcia. Jeśli wiesz, co robisz, myślę, że shutdown abortmożna to uznać za całkowicie bezpieczne - i nie jestem pewien, czy pozycja Oracle liczy się jako „straszne ostrzeżenie” ;-)
Jack mówi, spróbuj wypróbować topanswers.xyz
3

Wolę metodę zamknięcia systemu , ponieważ jest to najszybszy sposób na wyłączenie bazy danych. istnieją pewne operacje, których nie można wykonać po przerwaniu wyłączania, np

  • ponownie utworzyć plik kontrolny bazy danych, tworząc dzienniki resetowania pliku kontrolnego (aby zmienić nazwę bazy danych, zmienić nazwy plików dziennika lub zmienić nazwy plików danych)
  • zmień dbid za pomocą procedury z dbms_backup_restore (była to jedyna metoda w 8i, aby zmienić dbid)

w obu przypadkach baza danych została uszkodzona i należy ją przywrócić z pełnej kopii zapasowej.

od 9i zmiana nazwy bazy danych lub zmiana dbid może być dokonana za pomocą narzędzia dbnewid . o ile wiem narzędzie sprawdza, czy baza danych została poprawnie zamknięta. zmiana nazw plików danych, plików tymczasowych i plików dziennika może być wykonana przez wykonanie odpowiednich instrukcji SQL bez konieczności odtwarzania pliku kontrolnego.

cud173
źródło