از فرمان alter database open | mount به ترتیب می توان برای open و یا mount کردن اواکل استفاده کرد. در مطالب پیشین توضیح دادیم که از فرمان startup برای راه اندازی اوراکل استفاده می شود. زمانی که فرمان startup را به تنهایی اجرا می کنید، ابتدا instance پایگاه داده در حالت nomount و سپس در حالت mount و در نهایت در حالت open قرار می گیرد. اما اگر فرمان startup mount را اجرا کنید، پایگاه داده دیگر در حالت open نمی رود.

وضعیت instance

ستون status از نما دیکشنری v$instance وضعیت فعلی instance را نشان می دهد. در شکل زیر (۱) از طریق مجوز sysdba و به صورت محلی و از طریق دستور sqlplus / as sysdba به اوراکل متصل شده ایم و می بینید که پس از اجرای کوئری بر روی v$instance خطای ORA-01034 نشان داده می شود.

خطای ORA-01034 به این دلیل رخ می دهد که هنوز instance ایجاد نشده است. زمانی که دستور startup nomount را اجرا می کنید instance ایجاد می شود و اگر مجدد کوئری select status from v$instance را اجرا کنید خواهید دید که instance ایجاد شده و در وضعیت started قرار گرفته است

. مطابق شکل زیر (۲) زمانی که دستور startup nomount را اجرا می کنید، instance در وضعیت started قرار می گیرد و به این معنی است که instance ایجاد و آغاز به کار کرده است. به عبارت دیگر فرایندهای پس زمینه و فضای SGA ایجاد شده اند.

برای mount کردن پایگاه داده زمانی که در حالت nomount باید از دستور alter database mount استفاده کنید. مطابق با شکل زیر (۳) پس از آنکه دستور alter database mount را اجرا کردید، وضعیت instance در حالت mounted قرار می گرد.

برای آنکه پایگاه داده را در حالت open قرار دهیم باید از دستور alter database open استفاده کنیم.مطابق شکل زیر (۴)  پس از آنکه دستور alter database open اجرا شد، پایگاه داده در وضعیت open قرار می گیرد. زمانی که پایگاه داده در وضعیت open قرار دارد، تمامی کاربران و بر اساس مجوزهایشان می توانند کوئری ها را اجرا کنند.

خطای ORA-01034: ORACLE not available

مطابق با مستندات اوراکل به دو دلیل زیر خطای ORA-01034: ORACLE not available رخ می دهد:

۱ – SGA فضای بیشتری از حافظه اصلی را نیاز دارد که فعلا به آن اختصاص داده شده است.

۲ – ممکن است متغیر ORACLE_SID که به نام instance اشاره می کند، به درستی تعریف نشده است.

اولین دلیل این است که instance پایگاه داده هنوز ایجاد و راه اندازی نشده است. زمانی که دستور startup nomount را ایجاد می کنید، ابتدا فرایندهای پس زمینه و سپس فضای SGA ایجاد خواهند شد و به این معنی است که instance ایجاد شده است.

پیش از هر چیز بررسی کنید که آیا متغیر ORACLE_SID به درستی تعریف شده است. ORACLE_SID درون فایل bash_profile تعریف شده و نام instance پایگاه داده ای را نگه می دارد که می خواهیم به صورت خودکار به آن وصل شویم.  بنابراین مطمئن باشید که ایا متغیر به درستی تنظیم شده باشد.