یک پایگاه داده، مجموعه ای از دیتا فایل ها (data files)، کنترل فایل (control file)، پارامتر فایل (parameter file) و فایل های online redo log و فایل های archive redo است. instance مجموعه ای از فرایند های پس زمینه مانند : DBWR و LGWR، به همراه ناحیه ای از حافظه اصلی که SGA نامیده می شود.

instance بخشی از اوراکل است که پایگاه داده را کنترل می کند، بنابراین دستورها و گام هایی که در ادامه گفته می شود برای راه اندازی instance ای است که پایگاه داده را کنترل می کند. پیش از این بارها توضیح داده ایم که instance ابتدا باید یکی از پارامتر فایل ها را بخواند تا محل قرار گیری کنترل فایل را بدست آورد. پس از آنکه محل کنترل فایل را پیدا کرد، آنرا می خواند تا محل دیتا فایل ها را پیدا کند. در صورتی که توانست دیتا فایل ها را پیدا کند، ابتدا آنها را mount و در نهایت پایگاه داده را open می کند.

مطابق شکل زیر یک پایگاه داده می تواند در ۴ حالت زیر باشد و در صورتی تمامی کاربران می توانند به داده ها دسترسی داشته باشند که، آن پایگاه داده در حالت open باشد. بنابراین در طول راه اندازی، پایگاه داده گام به گام و مطابق شکل زیر باید در حالت های زیر قرار بگیرد.

  • shutdown
  • nomount
  • mount
  • open

تنها کاربر با مجوز sysdba، می تواند حالت های پایگاه داده ( shutdown و nomount و mount و open ) را تغییر دهد. توسط دستور shutdown می توانیم پایگاه داده را خاموش کنیم که خود حالت shutdown دارای ۴ نوع است. همچنین توسط دستور startup می توانیم پایگاه داده را به حالت های nomount و mount و open قرار دهیم.

در مورد مجوزهای sysdba و sysoper در مطالب بعدی صحبت خواهیم کرد.

راه اندازی در حالت nomount

۱ –  instance در دایرکتوری ORACLE_HOME/dbs در لینوکس و ORACLE_HOME/databases به ترتیب به دنبال یکی از پارامتر فایل های زیر می گردد :

  • اول به دنبال فایل spfileORACLE_SID.ora می گردد.
  • اگر فایل spfileORACLE_SID پیدا نشد، به دنبال فایل spfile.ora می گردد.
  • اگر فایل spfile.ora پیدا نشد، پس به دنبال فایل initORACLE_SID.ora می گردد.
  • اگر فایل initORACLE_SID.ora پیدا نشد، پس به دنبال فایل init.ora می گردد.

همانطور که پیش از این توضیح داده ایم، فایل initORACLE_SID.ora یا init.ora شامل initialization parameters برای راه اندازی instance اوراکل هستند. دستور startup برای را اندازی instance استفاده می شود. زمانی که دستور startup را اجرا می کنید، instance به دنبال یکی از چهار فایل بالا می گردد و اگر هیچ کدام را پیدا نکند، پایگاه داده کار نخواهد کرد.

۲ – حافظه SGA HD ایجاد می شود.

۳ – فرایند های پس زمینه ایجاد می شوند.

۴ – فایل alert_ORACLE_SID.log باز (open) می شود.

توجه کنید که یک instance پایگاه داده تنها در زمان ایجاد پایگاه داده (create database)، ایجاد مجدد کنترل فایل ها (re-create control files)، در طول انجام برخی از سناریوهای پشتیبان گیری و ریکاوری توسط ‌RMAN در حالت nomount قرار می گیرد.

در مطالب بعدی در مورد ایجاد مجدد کنترل فایل صحبت شده است.

از دستور زیر برای راه اندازی instance پایگاه داده در حالت nomount استفاده می شود.

اوراکل اجازه می دهد تا بتوانید توسط عبارت pfile در دستور startup مسیر یک pfile را مشخص کنید تا پایگاه داده با آن راه اندازی شود. این کار برای دو هدف انجام می شود، اول اینکه می خواهید پایگاه داده را با پارامترهای دلخواه خودتان راه اندازی کنید و یا اینکه pfile اصلی وجود ندارد، پس باید از pfile دیگری استفاده کنید.

حداقل پارامتری که در pfile وجود دارد، db_name است که نام پایگاه داده را تعیین می کند.

راه اندازی instance پایگاه داده در حالت mount

در این حالت instance در حال اجرا شدن است و باید کنترل فایل را بخواند تا محل دیتا فایل ها را پیدا کند. بنابراین گام های زیر در حالت mount رخ می دهند.

۱ – instance که در مرحله قبلی، یعنی nomount ایجاد شده بود، به پایگاه داده اختصاص داده می شود تا instance پایگاه داده را اداره کند. instance از پارامتر db_name فهمیده بود که نام پایگاه داده چیست.

۲ – پیدا کردن محل کنترل فایل.

۳ – خواندن کنترل فایل برای پیدا کردن محل دیتا فایل ها و فایل های online redo log و پیدا کردن وضعیت هر یک از این فایل ها. کنترل فایل (control file) فایلی است که وضعیت پایگاه داده و فایل های آن و محل قرار گیری پشتیبان ها را در خود نگه می دارد.

پایگاه داده در حالت mount برای انجام برخی امور رفع مشکل و ریکاوری و بازیابی پایگاه داده استفاده می شود. در این حالت instance وجود دارد و فرایندهای پس زمینه نیز در حال اجرا شدن هستند ولی کاربر نمی تواند به داده های پایگاه را تغییر دهید.

به بیان ساده، حالت mount برای انجام  ریکاوری ها اوراکل باید بتواند محتوای فایل های online redo log ها را بخواند و همچنین باید بتواند روی بلاک های دیتا فایل ها بنویسد ولی کاربران به هیچ عنوان نمی توانند روی دیتا فایل ها بنویسند، بلکه فقط می توانند از روی آن بخوانند.

راه اندازی instance پایگاه داده در حالت open

زمانی پایگاه داده اوراکل به صورت نرمال عمل می کند که در حالت open قرار داشته باشد. در حالت open تمامی دیتا فایل ها باز (open) هستند و تمامی کاربران بر اساس سطح دسترسی و مجوزهای اختصاص داده شده به آنها، می توانند داده های ذخیره شده بر روی دیتا فایل ها را بخوانند یا داده های جدیدی را بنویسند و یا داده های قبلی را تغییر دهند.

زمانی که دستور startup را به تنهایی اجرا می کنید، به ترتیب گام های nomount و mount دنبال می شود تا اینکه پایگاه داده در حالت open قرار می گیرد. زمانی که پایگاه داده در حالت open قرار می گیرد، دو اتفاق رخ می دهد:

۱ – دیتا فایل ها باز یا open می شوند.

۲ – online redo log ها باز یا open می شوند.

نام و مسیر دیتا فایل ها و online redo log ها درون کنترل فایل قرار دارند و instance با خواندن کنترل فایل محل این فایل ها را پیدا می کند. به هر حال اگر instance نتواند این فایل ها را باز کند، پس پایگاه داده با مشکل روبرو می شود. فرض کنید یکی از دیتا فایل ها پاک شده باشد یا حداقل در محلی نباشد که در کنترل فایل تعیین شده است، در این حالت ممکن است پایگاه داده اجرا شود ولی دیگر کاربرها نمی توانند داده های درون آن دیتا فایل را بدست آورند. برای رفع چنین مشکل هایی باید از پشتیبان ها استفاده شود تا کل یک دیتا فایل را در محل تعیین شده در کنترل فایل بازیابی یا ریکاوری کنیم.

در حالت open سرور اوراکل باید بررسی می کند که آیا تمامی دیتا فایل ها و online redo log ها می توانند باز شوند و همواره بررسی می شود که آیا سازگاری (consistency) پایگاه داده حفظ خواهد شد. سازگاری پایگاه داده به این معنی است که اجرای یک تراکنش، پایگاه داده را از یک حالت درست و سازگار به حالت درست و سازگار دیگر ببرد.

در مورد سازگاری و اجرای همروند تراکنش ها در دوره همروندی در پایگاه داده ها صحبت شده است.

خلاصه و جمع بندی

 

۱ – با اجرای دستور startup nomount

  • instance (فرایندهای پس زمینه و فضای SGA) ایجاد می شوند.
  • ابتدا فایل alert_ORACLE_SID.log باز می شود.
  • سپس پارامتر فایل باز و خوانده می شود تا محل کنترل فایل پیدا شود.
  • پایگاه داده در حالت nomount قرار می گیرد.

۲ – با اجرای دستور startup mount

  • instance از قبل ایجاد شده است.
  • محل کنترل فایل از قبل پیدا شده است.
  • کنترل فایل باز و خوانده می شود تا محل دیتا فایل و online redo log پیدا شود.
  • کاربران تنها می توانند داده ها را از روی دیتا فایل ها بخواند.
  • پایگاه داده در حالت mount قرار می گیرد.

۳ – با اجرای دستور startup

  • instance از قبل ایجاد شده است.
  • محل کنترل فایل از قبل پیدا شده است.
  • کنترل فایل باز و خوانده می شود تا محل دیتا فایل و online redo log پیدا شود.
  • دیتا فایل ها باز می شوند و همه کاربران تا سطح مجاز و اعطا شده به آنها می توانند بخوانند و بنویسند.
  • online redo log ها باز شده اند.
  • پایگاه داده در حالت open قرار می گیرد.