فایل pfile یا همان init.ora فایل متنی است که اوراکل آنرا ویرایش نمی کند بلکه فقط آنرا می خواند ولی به دلیل اینکه spfile به صورت باینری (دودویی) است، پس نمی توان همانند pfile آنرا با ویرایشگرهای متنی ساده باز کرد و خواند بلکه تنها خود اوراکل است که می تواند این فایل ها را بخواند و ویرایش کند. برای ویرایش و مقدار دهی یا تغییر مقدار پارامترهای درون spfile باید به ترتیب از دستورalter system استفاده کنیم. همچنین برای نمایش مقدار پارامتر باید از دستور show parameter استفاده شود.

دستور alter system set

فرمت کلی استفاده از alter system set برای مقدار دهی یا تغییر و تنظیم مجدد مقدار یک پارامتر، به صورت زیر است. به جای parameter باید نام پارامتر و به جای value یک یا چندین مقدار قرار گیرد. اگر value به صورت چند مقداری باشد، هر مقدار با ویرگول از بعدی مقدار بعدی جدا خواهد شد. اگر مقدار مورد نظر پارامتر از نوع رشته ای، باید میان single quotation قرار گیرد.

scope حوزه تغییرات را نشان می دهد. اگر مقدار انتسابی به آن memory باشد، تغییرات تنها به درون حاظفه و بلافاصله اعمال خواهند شد. در واقع منظور این است که تغییرات به instance فعلی اعمال می شوند. در صورتی که پایگاه داده خاموش شود (shutdown) ، این تغییرات از بین خواهند رفت. در صورتی که پایگاه داده را با استفاده از pfile (فایل initORACLE_SID.ora) راه اندازی (stratup) کرده اید، تنها همین حوزه قابل استفاده است.

در مورد راه اندازی اوراکل و دستور startup و shutdown در مطالب بعدی توضیح داده ایم.

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

در مطلب بعدی توضیح خواهیم داد که چگونه پایگاه داده را با pfile و spfile راه اندازی کنیم، بنابراین اگر در زمان راه اندازی پایگاه داده به صورت دستی تعیین کرده باشید که پایگاه داده از طریق pfile راه اندازی شده باشد، پس نمی توانید برای تغییر پارامترها توسط دستور alter set parameter از حوزه spfile استفاده کنید و تنها راه استفاده از حوزه memory است.

اگر scope را برابر با both تعیین کرده باشید، تغییرات هم به درون حافظه و هم به درون spfile اعمال می شوند. اولا طبق خاصیت حوزه memory، تغییرات بلاصله اعمال و سپس و طبق خاصیت خوزه spfile، تغییرات پس از خاموش و روشن شدن، به  صورت دائمی به درون spfile اعمال خواهند شد.

دیگر گزینه ها در دستور alter system set

برای افزودن یک متن توضیح به می توانیم از comment استفاده کنیم. با تعیین متن توضیح، ستون update_comment در جدول v$parameter بروز خواهد شد. برای مشاهده این ستون می تواند به طور مثال از کوئری زیر استفاده کنید. البته پس از اجرا خواهید دید هنوز متن توضیح برای پارامتر spfile تعیین نشده است.

اگر deferred استفاده کنید، تنظیم یا تغییر مقدار پارامتر در جلسه (session) بعدی که ایجاد خواهد شد، صورت می گیرد. هیچ مقداری را نمی خواهد و فقط باید آنرا در دستور alter system set parameter بیاورید. به عبارت دیگر اگر deferred همراه با حوزه spfile استفاده شود، تغییر تا زمان ایجاد جلسه بعدی (اتصال بعدی) به سیستم، اعمال نخواهد شد.

Instance از کدام پارامتر فایل برای راه اندازی استفاده کرده است

به هر حال برای راه اندازی اوراکل (instance) باید بتواند یکی زا فایل های pfile یا spfile را بخواند. اما چگونه بفهمیم که اوراکل در زمان راه اندازی (start) شدن کدام یک را استفاده کرده است. برای این منظور دستور show parameter spfile را اجرا کنید. اگر در خروجی چیزی (مسیر منتهی به spfile) نشان داده نشد، یعنی اوراکل از pfile استفاده کرده است، در غیر این صورت به این معنی است که اوراکل از spfile برای راه اندازی (start) شدن استفاده کرده است.

همانطور که در شکل بالا می بینید چون پارامتر spfile مقدار دهی شده است، پس instance در زمان راه اندازی، این فایل را خوانده است. نام فایل spfileorcl.ora است و در دایرکتوری ORACLE_HOME/dbs قرار دارد. در مطلب پیکربندی پاریامترهای اوراکل – معرفی پارامترها توضیح دادیم که instance در دایرکتوری ORACLE_HOME/dbs به ترتیب دنبال فایل های زیر می گردد و هر کدام را پیدا کند، پایگاه داده را با آن راه اندازی می کند. در فایل های زیر orcl نام instance است و ممکن است در سیستم شما متفاوت باشد.

  1. spfileorcl.ora
  2. spfile.ora
  3. initorcl.ora
  4. init.ora

بنابراین اگر فرض کنیم instance از یکی از spfile های بالا (بر اساس نامگذاری) راه اندازی شده است، نام پایگاه داده (db_name) و نام و مسیر کنترل فایل ها را پیدا می کند و سپس از روی کنترل فایل ها، نام و مسیر دیتا فایل ها را پیدا و آنها را mount می کند.