به طورکلی شما می تواند Instance را بصورت دستی اجرا کنید و سپس mount کنید به دیتابیس open database و سپس دسترسی کاربران به دیتابیس را فراهم کنید.

شما در محیط SQL*PLUS با وارد کردن دستور STARTUP تمام مراحل بالا انجام داده و instance را اجرا کنید.

اجرا کردن instance از طریق نرم افزار Oracle NET امکان پذیر است اما یک شروطی باید داشته باشد:

دیتابیس بصورت Statically ایجاد و register شده باشد از طریق نرم افزار Oracle NET Listener

کاربر client باید حتما با دسترسی ادمین SYSDBA داشته باشد.

کار listener ایجاد یک dedicated server که می تواند database instance را اجرا کند.

شکل زیر مراحل و پروسس های دیتابیس را ازحالت shutdown تا open را نمایش می دهد.

startup

ارتباط با دسترسی Administrator

قدرت اینکه بتوانید database startup و database shutdown را انجام دهید از امکانات administrative می باشد که محدود به کاربران شده و کاربران عادی نمی توانند این کار را انجام دهند و تنها کاربران با دسترسی administrator می توانند این کار را انجام دهند که البته این کار به شروط زیر بستگی دارد :

کاربر باید دسترسی operating system داشته باشد که به بتواند دسترسی administrator را به خودش یا سایر کاربران که خودش تعیین می کند بدهد.

کاربر باید دسترسی system داشته باشد و دیتابیس در محیط شبکه از کلمه عبور که در password file است استفاده می کند.

لیستی دسترسی های خاص سیستمی system یعنی دسترسی که می تواند دسترسی کامل به database instance داشته باشد حتی دسترسی به OPEN DATABASE :

  • SYSDBA
  • SYSOPER
  • SYSBACKUP
  • SYSDG
  • SYSKM

شما زمانی که با دسترسی سیستمی SYSDBA یه دیتابیس ارتباط برقرار می کنید در واقع مالک و صاحب Schema در دیتابیس سیستم هستید.

و زمانی که با دسترسی SYSOPER به دیتابیس ارتباط برقرار می کنید درواقع دسترسی معمولی punlic به schema دیتابیس دارید.

دسترسی SYSOPER درواقع زیر مجموعه ای از دسترسی SYSDBA هستش.

Instance چطور اجرا می شود

زمانی که دیتابیس اوراکل اجرا می شود مراحل زیر به ترتیب اتفاق می افتد :

۱. ابتدا در فایل server parameter file را جستجو میکند در آدرس پیش فرض نصب اوراکل به دنبال تنظیمات Instance و اجرای آن و سپس در این مسیر initialization parameter file (جایی که در فایل pfile یا spfile مقاریر پارامترهای تعریف شده ی تعریف های پیش فرض اوراکل وجود دارد) جستجو می کند.

۲. پس مشخص شدن تنظیمات و مقادیر parameter file، مقداری از حافظه را به عنوان SGA مشخص می کند.

۴. سپس oracle background process اجرا خواهد شد.

۵. فایل alert log باز شده و تنظیمات و مقادیر parameter file و trace و اتفاقاتی تا اجرای instance اتفاق می افتد به صورت log در فایل alert log ثبت می شود.

در تمامی این مراحل، هیج دیتابیسی به instance ارتباط ندارد. که در این state اصطلاحا nomount می نامند و دیتایس به instance متصل نیست که در این حالت مناسب ترین حالت برای ساخت دیتابیس و عملیات های backup خاص و عملیات های recovery می باشد.

چطور یک دیتابیس را به instance متصل mount کنیم

حالت instance mounts وضعیتی که دیتابیس به instance متصل mount و ارتباط برقرار می کند.

برای اینکه database به instance متصل mount شود ابتدا فایل control file را باز میکند و می خواهد نام دیتابیس را پیدا کند و به این منظور مفدار پارامتر parameter تعریف شده ای به نام CONTROL_FILES را جستجو می کند و نام دیتابیس را به دست می آورد.

اوراکل هم می آید فایل control file را می خواند به دنبال پیدا کردن نام های data file و online redo log file می باشد و تلاش می کند که به دیتابیس متصل شود.

در این حالت که اصطلاحا mounted darabase می باشد دیتابیس بسته است closed . و فقط administrator به دیتابیس دسترسی دارد administrator هم فقط میتواند در این عملیات های نگه داری maintenance و عملیات های backup انجام دهد و در این حالت دیتابیس برای کاربران عادی برای عملیات های معمول در دسترس و امکان پذیر نیست.

اگر اوراکل بخواد بصورت همزمان concurently چندین instance را به همان دیتابیس mount متصل کند باید در فایل control file پارامتر parameter به نام CLUSTER_DATABASE را با مقادیر مناسب مقدار دهی و تنظیماتی انجام دهد که چندین instance به یک دیتابیس متصل mount شود که است تنظیمات به شرح ذیل می باشد:

اگر مقدار پارامتر CLUSTER_DATABASE مقداری برابر false باشد که بصورت پیش فرض همین مقدار است تنها فقط یک instance می تواند یه دیتابیس متصل mount شود.

اگر مقدار پارامتر CLUSTER_DATABASE مقداری برابر true باشد می تواند چندین instance به دیتابیس متصل mount شود . که ماکزیمم تهداد instance که می تواند به database متصل شود از طریق پارامتر دیگری قابل تنظیم است.

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

وضعیت Open یک دیتابیس وضعیتی که دیتابیس mounted شده به instance برای کاربران عادی قابل دسترس و انجام عمملیات های دیتابیسی می باشد.

هر کاربر valid که میتواند به دیتابیس opened متصل شود دسترسی به یک سری اطلاعات و دیتابیس دارد.

معمولا کاربر administrator این دسترسی را فراهم میکند و وضعیت دیتابیس را open میکند تا کاربران عادی هم امکان این دسترسی را داشته باشند.

زمانی که کاربر administrator وضعیت دیتابیس را open می کند اراکل یک سری عملیات هایی را به شرح ذیل انجام می دهد :

۱- فایل online data file را در tablespaces باز می کند به غیر از undo tablespaces.

اگر tablespaces ها آفلاین باشد یعنی دیتابیس قبلا shutdown یوده و به منتاظر data file ها و tablespaces ها متناظر ان هم آفلاین است که باید آنلاین شود.

۲- Undo Tablespaces را پیدا می کند.

اگر چندین undo tablespace باشد در فایل control file یک پارامتری parameter به نام UNDO_TABLESPACE تعیین میکنید که چه تعداد undo tablespace باید فراخوانی شود.

۳- فایل online redo log file را باز می کند.

دیتابیس در حالت Read-Only

بصورت پیش فرض دیتابیس در وضعیت open حالت Read/Write دارد . دراین حالت کاربران می توانند هر تغییری در دیتا دیتابیس ایجاد کنند و به این ترتیب در فایل online redo log file تغییرات ایجاد می شود.

شما می توانید حالت دیتابیس در وضعیت open را به حالت Read-Only قرار بدهید به منظور جلوگیری از تغییرات کاربر در دیتا و Transaction

حالت read-only دیتابیس حالتی است که تمامی های transaction های کاربر در دیتابیس فقط read-only می شود و فقط می تواند از عملیات هایی استفاده کند برای خواندن دیتا از دیتابیس و هیج نوع تغییری در دیتا نمی تواند بدهد و هیچ تغییری در data file و online redo lig file نمی توانید دهید در این حالت شما می توانید عملیات های Backup , Recovery انجام دهید .

قابلیت هایی در که در حالت Read-Only می افتد :

Data file می تواند Online یا Offline باشد اما Tablespace های دائمی نمی تواند Offline باشد.

Data File های Offline و tablespace در این حالت امکان recovery را دارد.

فایل Control File برای بروز رسانی محتوا و تغییر وضعیت های دیتابیس در دسترس است.

در این حالت امکان ساخت temporary tablespaces یا دستور CREATE TEMPORARY TABLESPACE امکانپذیر است.

در سیستم عامل در فایل های trace file و alert logs دسترسی read/write داریم برای ثبت .

اگر به هردلیلی هر در زمانی که instance تلاش میکند به دیتابیس متصل شود و وضعیت آن را open کند هریک از فایل های data file یا redo log file نبود و یافت نشد و یا به دلیلی fail شد دیتابیس به شما خطا داده و دراین عملیات Media Recovery ضروری می باشد.

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