Мета при відключенні для обслуговування (або холодного резервного копіювання) полягає в тому, щоб база даних залишалася в послідовному стані, не потребуючи відкату / відновлення при запуску.
Існують 3 shutdown
команди SQL * Plus, які теоретично досягають цього, і всі вони негайно перешкоджають підключенню до сеансу нових сеансів:
shutdown normal
або просто shutdown
: чекає відключення всіх сеансів. Цей режим дуже рідко використовується на практиці, оскільки він покладається на доброзичливих клієнтів, не залишаючи з'єднання відкритими. Це був єдиний shutdown
режим, який не скасовував запущені транзакції.
shutdown transactional
: відключає сеанси після завершення поточних транзакцій, запобігаючи початку нових транзакцій.
shutdown immediate
: негайно відключає всі сеанси та скасовує перервані транзакції перед тим, як вимкнутись. Зауважте, що відключення негайні, але відключення може не бути, оскільки будь-які перервані транзакції можуть зайняти час, щоб повернути їх назад.
Четвертий режим shutdown
є shutdown abort
. Це як витягнути шнур живлення - екземпляр зупиняється зараз без будь-якого очищення. Зазвичай ви хочете після цього знову відновити базу даних та одразу після цього чисто закрити, як у вашому прикладі. Посібник з понять говорить :
Цей режим призначений для надзвичайних ситуацій, наприклад, коли жодна інша форма відключення не вдається.
Усі приклади, які ви наводите, виконують контрольну точку як частину shutdown [normal]
або shutdown immediate
так явної контрольної точки, імовірно, для скорочення часу, необхідного для відновлення .
загальна порада:
- Не використовуйте
shutdown normal
.
- Використовуйте лише
shutdown transactional
для відключеного відвідування , якщо ви хочете мінімізувати скасовані транзакції (відвідувались лише тому, що подібне відключення не гарантовано взагалі закривати базу даних, якщо порушуються тайм-аути).
- Використовуйте
shutdown immediate
для автоматичного відключення або коли вам не байдуже поточні операції.
- Не використовуйте
shutdown abort
(плюс запуск / вимкнення), якщо вам не доведеться - це було більш часто зустрічається в набагато більш ранніх версіях Oracle, ніж сьогодні. В інших ситуаціях (не виправлення / оновлення), якщо у вас є необхідність мінімізувати час простою, цей режим може виявитися доречним.
shutdown abort
? Граючи в антагоніста, якщо ми можемо довіряти Oracle, щоб він відновився правильно, коли енергія витягнута, чи не слід йому довіряти під часshutdown abort
, особливо якщо це швидше, і ми збираємось негайно робити «startup restrict
a»shutdown immediate
? Іншими словами, чи є факти, які ми можемо бачити, щоб підкріпити жорстоке попередження Oracleshutdown abort
?