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 shutdownperintah SQL * Plus yang mencapai ini dalam teori, yang semuanya segera mencegah sesi baru yang terhubung ke instance:
shutdown normalatau 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 shutdownmode 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 shutdownadalah 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 immediatelebih 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 immediateuntuk 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 restrictdanshutdown immediate? Dengan kata lain, adakah fakta yang bisa kita lihat untuk mendukung peringatan mengerikan Oracleshutdown abort?