در مطلب قبلی چگونگی راه اندازی یا startup کردن اوراکل را توضیح دادیم. زمانی که پایگاه داده در حال اجرا شدن باشد ممکن است نیاز داشته باشیم تا پایگاه داده را خاموش (shutdown) کند. به طور مثال مدیر برای گرفتن پشتیبان به صورت دستی از دیتا فایل ها، لازم است تا پایگاه داده را خاموش کند، زیرا نمی توان در زمان اجرای پایگاه داده، نمی توان از دیتا فایل ها کپی ایجاد کرد. در طی متوقف کردن یک پایگاه داده، رخداد هایی بصورت زیر اتفاق می افتد:

۱ – هیچ اتصال جدیدی به پایگاه داده پذیرفته نمی شود.

۲ – تراکنش های در حال اجرا، با بروز رسانی مناسب Redo Log File ها، یا Commit می شوند و یا Roll Back خواهند شد. (توجه داشته باشید، در پایگاه داده ها پیش از نوشتن هر تغییری در Datafile ها،نخست یک نسخه از تغییرات در Redo Log File ها نوشته می شود، که در زمان Recovery پایگاه داده، مورد استفاده قرار می گیرد.)

۳ – جلسات (sessions) کاربران خاتمه می یابند.

۴ – هدر (header) فایل های پایگاه داده بروز می شوند و سپس بسته خواهند شد.

۵ – فضای SGA باز پس گرفته می شود.

۶ – فرایند های پس زمینه خاتمه می یابند.

از دستور shutdown برای خاموش کردن اوراکل استفاده می شود و جلوی دستور shutdown باید نوع خاموش شدن را تعیین کنیم. خاموش شدن اوراکل را می توانیم به چهار دسته زیر تقسیم کنیم. هر یک از انواع خاموش شدن ها یک سری از محدودیت ها را دارند که در شکل زیر (۱) نشان داده شده اند.

۱ – خاموش شدن نوع normal با استفاده از دستور shutdwon normal

۲ – خاموش شدن نوع transactional با استفاده از دستور shutdown transactional

۳ – خاموش شدن نوع immediate با استفاده از دستور shutdown immediate

۴ – خاموش شدن نوع abort با استفاده از دستور shutdown abort

مطابق با شکل بالا می توانیم چهار محدودیت را بیان کنیم که باعث تفاوت در نوع خاموش شدن اوراکل و همچنین اثرات روی پایگاه داده می شوند.

۱ – آیا اجازه اتصال های جدید داده می شود. در حین انجام چهار نوعِ خاموش شدن، اجازه اتصال جدید داده نمی شود.

۲ – آیا خاموش شدن اوراکل تا زمان پایان یافتن جلسه های جاری صبر می کند. منظور از جلسه جاری یعنی اتصال هایی که در حال حاظر وجود دارند. از میان چهار نوع، تنها نوع خاموش شدن normal است که تا پایان یافتن جلسه های جاری صبر می کند.

۳ – آیا خاموش شدن اوراکل تا زمان پایان یافتن تراکنش های جاری صبر می کند. از میان چهار نوع، نوع خاموش شدن normal و transactional هستند که تا پایان یافتن تراکنش های جاری صبر می کند.

۴ – آیا اجبار به chekpoint و بسته شدن فایل ها است. تنها در خاموش شدن shutdown abort است که چنین اتفاقی نمی افتد. checkpoint زمانی رخ می دهد که محتوای buffer cache باید به درون دیتا فایل ها ریخته شود و پس از نوشتن موفقیت آمیز buffer cache به درون دیتا فایل ها یک checkpoint رخ می دهد. در زمان خاموش شدن abort تمامی اثرات تراکنش ها از بین می رود پس نباید اثر آنها به صورت دائمی بر روی دیتا فایل ها نوشته شود، پس نیازی به checkpoint نیست.

 Shutdown Normal

  • هیج اتصال جدیدی به پایگاه داده پذیرفته نمی شود.
  • تراکنش های در حال اجرا بصورت نرمال ادامه پیدا می کنند تا زمانی که یا Commit و یا Roll Back شوند.
  • کاربران خودشنان بصورت نرمال Logout می کنند. یعنی خاموش شدن تا پایان یافتن جلسه ها منتظر می ماند.
  • پس از اینکه آخرین کاربر Logout کرد، هدرِ فایل های پایگاه داده بروز می شوند و سپس بسته خواهند شد.
  • فضای SGA باز پس گرفته می شود.
  • فرایند های پس زمینه خاتمه می یابند.
  • توسط یکی از دستور های زیر انجام می شود

 

Shutdown Transactional

  • هیج اتصال جدیدی به پایگاه داده پذیرفته نمی شود.
  • تراکنش های در حال اجرا بصورت نرمال ادامه پیدا می کنند تا زمانی که یا Commit و یا Roll Back شوند.
  • پس از اینکه یک تراکنش در حال اجرا تکمیل شد، جلسه کاربر خاتمه می یابد. هدرِ فایل های پایگاه داده بروز می شوند و سپس بسته خواهند شد.
  • فضای SGA باز پس گرفته می شود.
  • فرایند های پس زمینه خاتمه می یابند.
  • توسط دستور زیر انجام می شود.

Shutdown Immediate

  • هیج اتصال جدیدی به پایگاه داده پذیرفته نمی شود.
  • تمامی تراکنش های در حال اجرا Roll Back می شوند.
  • جلسات کاربران خاتمه می یابند.
  • هدرِ فایل های پایگاه داده بروز می شوند و سپس بسته خواهند شد.
  • فضای SGA باز پس گرفته می شود.
  • فرایند های پس زمینه خاتمه می یابند.
  • توسط دستور زیر انجام می شود.

Shutdown Abort

  • هیج اتصال جدیدی به پایگاه داده پذیرفته نمی شود.
  • هیچ تراکنش در حال اجرایی Roll Back نخواهد شد.
  • جلسات کاربران خاتمه می یابند.
  • فضای SGA باز پس گرفته می شود.
  • فرایند های پس زمینه خاتمه می یابند. Instance Recovery در زمان راه اندازی (startup) پایگاه داده لازم است.
  • توسط دستور زیر انجام می شود.

لینک های کمکی

http://www.dba-oracle.com/t_oracle_shutdown_immediate_abort.htm https://laurentschneider.com/wordpress/2011/07/the-reasons-why-i-always-avoid-to-shutdown-abort.html