شما می توانید دیتابیس را بصورت دستی shutdown کنید .

این امکان برای همه کاربران دردسترسی نیست و فقط برای کاربرانی که قصد نگه داری maintenance دیتابیس و فعالیت های admisitrative دارند مناسب می باشد. به این منظور در محیط SQL*PLUS  با دستور SHUTDOWN این عملیات را انجام دهید.

شکل زیر مراحل خاموش شدن دیتابیس و از دسترس خارج آن را نمایش می دهد

Shutdown-Stage

اوراکل تغییر وضعیت دیتابیس ازopen database به shutdown را بصورت اتوماتیک و یکپارچه انجام می دهد.

اوراکل در تمامی مراحل shutdown، instance  بصورت immediately فوری قطع و terminate می کند.

Shutdown Modes

یک کاربرAdministrator  با دسترسی SYSDBA و SYSOPER میتواند دیتابیس را در محیط SQL*PLUS و یا Enterprise Manager با دستور SHUTDOWN خاموش و از دسترسی خارج کند.

این دستور SHUTDOWN یک سری option هایی دارد که رفتار shutdown  دیتابیس تغییر می کند.

رفتار دیتابیسABORTIMMEDIATETRANSACTIONALNORMAL
مجوز ارتباط کاربران جدید به دیتابیسNONONONO
دیتابیس تا پایان current session کاربر منتظر می ماندNONONOYES
دیتابیس تا پایان current transaction کاربر منتظر می ماندNONOYESYES
دیتابیس عملیات Checkpoint را انجام می دهد و سپس فایل های باز را می بنددNOYESYESYES

شرحی از رفتار دیتابیس با انواع option دستور SHUTDOWN :

SHUTDOWN ABORT

این حالت برای موقعیت های اورژانسی و حساس مدنظر می باشد مانند زمانی هیچ یک از حالت های shutdown دیتابیس با موفقیت انجام نشود. این حالت از shutdown خیلی سریع اتفاق می افتد اما زمانی که دیتابیس را فعال می کنید و به وضعیت open database می برید زمان زیادی طول می کشد دلیل آن هم این است که ابتدا باید instance recovery اجرا شود برای ساختن data files

دلیل این که shutdown abort سریع می باشد این می باشد که در زمان اتفاق هیج checkpoint روی data file ها باز و instance recovery به فایل هایی برای reopen دیتابیس نیاز دارد بررسی نمی شود. دیگر حالت های shutdown به instance recovery برای reopen دیتابیس نیاز نمی باشد وفقط در این حالت نیاز ضروری می باشد.

Shutdown Immediate

این حالت بعد از حالت Shutdown Abort سریع می باشد در این حالت اوراکل تمامی دستورات درحال اجرا SQL (executing SQL) و ارتباط کاربران با دیتابیس را قطع disconnected می کند .

تمامی تراکنش های فعال Active Transaction از بین می رود Terminated .و تغییرات در داده های دیتابیس uncommit و rollback می شود.

Shutdown Transactional

این حالت از شروع فعالیت و تراکنش New transactions کاربران جدید جلوگیری میکند و مانع از فعالیت جدید کاربران می شود. اما برای تمامی تراکنش های حاضر current transaction تا زمانی که بصورت کامل انجام نشود صبر می کند.

این مد ممکن است با توجه به current transaction مدت زمانی زیادی را برای خاموش شدن دیتابیس بگیرد.

Shutdown Normal

این حالت ، حالت Default پیش فرض اوراکل برای shutdown می باشد. در این حالت دیتابیس برای تمامی کاربرانی که دیتابیس متصل هستند و تمامی فعالیت ها و transations ها تا زمانی قطع کامل برای shutdown منتظر می ماند.

چطور یک دیتابیس وضعیت closed است

عملیاتی که دیتابیس وضعیت close می گیرد بدون شرط در حالتی که دیتابیس shutdown می شود اتفاق می افتد و طبیعتا این عملیات وابسته به این دیتابیس بصورت عادی یا غیر عادی shutdown شود مرتبط می باشد.

چطور دیتابیس وضعیت closed می گیرد زمانی که shutdown بصورت normally انجام می شود

زمانی که دیتابیس وضعیت closed می شود که در واقع قسمتی از عملیات shutdown دیتابیس بصورت normally و غیر Abort می باشد. دراین عملیات اوراکل داده ها و data که در SGA می باشد را در data files و online redo log files کپی می کند و می ریزد. (به جهت حفظ داده ها)

پس از آن، دیتابیس تمام فایل های online data file و online redo log files را می بندد. و همچنین فایل های offline data files که در offline tablespace می باشد بسته می شود. و زمانی که دیتابیس مجدد reopen می شود هر tablespace که offline می باشد offline می باشد.

در این حالت دیتابیس وضعیت CLOSED می گیرد و برای عملیات های عمومی در دیتابیس از دسترس خارج می شود.

زمانی که دیتابیس وضعیت CLOSED دارد control file در اوراکل همچنان باز می ماند و بسته نمی شود.

چطور دیتابیس وضعیت closed می گیرد زمانی که shutdown بصورت AbNormally انجام می شود

زمانی که shutdown abort اتفاق می افتد سپس instance از بین رفته و بعد از آن دیتابیس وضعیت closed می گیرد.

زمانی که دیتابیس اوراکل بصورت غیر نرمالی shutdown شود اوراکل فرصت این را ندارد که داده ها و data را از buffer در SGA کپی کند و در data file و redo log file بنویسد و قرار دهد. (یک سری دیتا ازبین می رود) و زمانی که دیتابیس مجدد reopen می شود باید حتما instance recovery اجرا شود تا بتواند دیتا از بین رفته recovery شود و این عملیات را اوراکل بصورت اتوماتیک و خودکار انجام می دهد.

چطور یک دیتابیس unmounte می شود

بعد از این که دیتابیس وضعیت closed می گیرد اوراکل دیتابیس اصطاحا unmounte می کند از database instance و دیتابیس را از دسترس خارج می شود.

بعد از اینکه دیتابیس unmounted شد اوراکل فایل control file دیتابیس را می بندد. در این حالت database instance در حافظه memory باقی می ماند.

چطور یک instance خاموش shutdown می شود.

در آخرین مرحله از Database Shutdown جایی که database instance خاموش می شود. زمانی که database instance خاموش می شود فضای SGA از مموری از بین می رود و background porcess ها از بین می رود terminated.

در موقعیت های غیرعادی ، ممکن است shutdown شدن database instance به طور کامل اتفاق نیاقند. و ساختار های حافظه ای مموری از بین نرود و یک یا چندین background process ها terminated نشود .

زمانی که بقایا و اثراتی از instance قبلی وجود داشته باشد به دنبال آن راه اندازی مجدد instance ممکن است با شکست روبرو شود و اجرا نشود . در چنین موقعیت هایی می توانید اوراکل را مجبور کنید که یک instance جدید اجرا شود و اقدام به حذف قبلی instance کنید. این اتفاق بیشتر زمانی که از shutdown abort استفاده کنید می افتد.

توضیحات بیشتر در مورد این مطلب :  Database Instance