Tujuan ketika mematikan untuk pemeliharaan (atau cadangan dingin) adalah bahwa database dibiarkan dalam kondisi yang konsisten tanpa perlu rollback / pemulihan pada saat startup.
Ada 3 shutdown
perintah SQL * Plus yang mencapai ini dalam teori, yang semuanya segera mencegah sesi baru yang terhubung ke instance:
shutdown normal
atau hanya shutdown
: menunggu semua sesi terputus. Mode ini jarang digunakan dalam praktik karena bergantung pada klien yang berperilaku baik dan tidak membiarkan koneksi terbuka. Ini dulunya satu-satunya shutdown
mode yang tidak membatalkan transaksi berjalan.
shutdown transactional
: memutus sesi setelah transaksi berjalan saat ini selesai, mencegah transaksi baru dari awal.
shutdown immediate
: memutus semua sesi dengan segera dan memutar kembali transaksi yang terputus sebelum ditutup. Perhatikan bahwa pemutusan hubungan langsung, tetapi shutdown mungkin tidak terjadi karena setiap transaksi yang terputus mungkin memerlukan waktu untuk mundur.
Mode keempat shutdown
adalah shutdown abort
. Ini seperti menarik kabel listrik - mesin berhenti sekarang tanpa pembersihan. Anda biasanya ingin memunculkan database lagi setelah itu dan mematikannya segera setelahnya seperti pada contoh Anda. Panduan konsep mengatakan :
Mode ini ditujukan untuk situasi darurat, seperti ketika tidak ada bentuk shutdown lain yang berhasil.
Semua contoh yang Anda berikan melakukan pos pemeriksaan sebagai bagian dari pos pemeriksaan eksplisit shutdown [normal]
atau shutdown immediate
lebih mungkin untuk mengurangi waktu yang diperlukan untuk pemulihan .
saran umum:
- Jangan gunakan
shutdown normal
.
- Gunakan hanya
shutdown transactional
untuk shutdown yang dihadiri , ketika Anda ingin meminimalkan transaksi yang dibatalkan (dihadiri hanya karena shutdown semacam ini tidak dijamin untuk menutup database sama sekali jika timeout dilanggar).
- Gunakan
shutdown immediate
untuk mematikan tanpa pengawasan atau ketika Anda tidak peduli tentang transaksi yang sedang berjalan.
- Jangan gunakan
shutdown abort
(plus startup / shutdown) kecuali Anda harus - ini lebih umum di banyak versi Oracle sebelumnya seperti sekarang ini. Dalam situasi lain (bukan tambalan / peningkatan), jika Anda perlu meminimalkan waktu henti , mode ini mungkin sesuai.
shutdown abort
? Bermain antagonis, jika kita bisa memercayai Oracle untuk pulih dengan benar ketika daya ditarik, bukankah seharusnya kita memercayainya selamashutdown abort
, terutama jika lebih cepat dan kita akan segera melakukanstartup restrict
danshutdown immediate
? Dengan kata lain, adakah fakta yang bisa kita lihat untuk mendukung peringatan mengerikan Oracleshutdown abort
?