آشنایی با معماری اوراکل

در این مقاله قصد داریم تا با نگاهی اجمالی به معماری اوراکل، ابتدا با مفاهیم این ساختار آشنا شویم سپس در مقاله های آتی به جزئیات این مبحث بیشتر پرداخته و ساختار اوراکل را مورد بررسی کاملتری قرار خواهیم داد.

پایگاه داده اوراکل در نگاه کلی به دو مفهوم اصلی تقسیم می شود :

1.ساختار database ( فضای دیسک )

2.ساختار instance ( فضای RAM )

عکس زیر یک نمونه از معماری اوراکل را نشان می دهد.

همانطور که قابل مشاهده است ساختار اوراکل به دو قسمت اصلی یعنی instance و database)storage structures) تقسیم شده است.

ساختار database(فضای دیسک) 

به طور کلی می توان گفت که ساختار database ، عبارت است از بدنه اصلی و فیزیکی اوراکل که در قالب فایل های سیستم عاملی در فضای دیسک قرار می گیرد.

این ساختار را میتوان از دو دید منطقی و فیزیکی مورد بررسی قرار داد :

1.ساختار فیزیکی اوراکل : در این ساختار عناصر تشکیل دهنده ی اوراکل در قالب فایل هایی توسط سیستم عامل و در فضای دیسک ذخیره و نگهداری می شوند که از جمله موارد آن می توان به دیتافایل(data file)، کنترل فایل(control file)، پارامتر فایل(parameter file) و … اشاره کرد که هر کدام از آنها وظیفه ای جهت راه اندازی و بالا نگه داشتن بانک ، بر عهده دارند.

در زیر به چند نمونه از عناصر تشکیل دهنده ی ساختار فیزیکی اوراکل اشاره شده است :

  • datafile: از این فایلها برای ذخیره سازی داده های بانک اطلاعاتی استفاده می شود.
  • redo logfile: هرگونه تغییر در سطح دیتابیس در این فایلها ثبت می شود و از این فایل برای ریکاوری در سطح دیتابیس و instance استفاده می شود.
  • control file: یک فایل باینری با حجم کوچک و حاوی اطلاعات مهمی در دیتابیس است که برای راه اندازی و همچنین سرویس دهی توسط بانک اطلاعاتی اوراکل حیاتی می باشد.
  • parameter file: مقادیر و پارامتر های راه اندازی بانک اطلاعاتی در این فایل ذخیره می شود از جمله ی این مقادیر می توان به نام بانک اطلاعاتی ، محل قرار گرفتن فیزیکی control file ها و میزان حافظه RAM اختصاص داده شده به instance اشاره کرد.

2.ساختار منطقی اوراکل : در این ساختار ، معماری دیتابیس اوراکل شامل سطوح مختلفی از ذخیره سازی داده ها برای مدیریت بهتر ساختار فیزیکی می باشد.

ساختار منطقی شامل چهار سطح زیر می باشد:

data block: کوچکترین واحد داده ای در اوراکل، data block می باشد .

extent: از کنار هم بودن دو یا چند data block ، یک extent تشکیل می شود . extent ها ، واحد تخصیص فضا در اوراکل می باشند .

segment: یک segment شامل مجموعه ای از extent ها است که هر کدام از آنها به یک شیء منطقی مانند جدول یا ایندکس اختصاص داده می شود .

Tablespace: هر tablespace نیز شامل چندین segment می باشد. Tablespace رابط بین ساختار فیزیکی و منطقی می باشد. به طوری که هر tablespace می تواند شامل یک یا چند دیتافایل ( در ساختار فیزیکی ) باشد و از طرفی در ساختار منطقی ، segment های داده ای اوراکل همگی در یک tablespace ذخیره می شوند.

در عکس زیر ارتباط بین ساختار منطقی و ساختار فیزیکی اوراکل قابل مشاهده است.

ساختار instance( فضای RAM)

این ساختار متعلق به فضای RAM می باشد . اوراکل از این فضا برای بهبود عملکرد و سرعت بخشیدن به اجرای کد ها و دستورات کاربران استفاده می کند بطوریکه کد برنامه ای که در حال اجرا می باشد و یا اخیرا اجرا شده است و همینطور داده های مورد نیاز برای اجرای دستورات و نتایج محاسبات و غیره، در آن نگهداری می شود. 

Instance از دو قسمت ، ساختار حافظه (memory structure) و فرآیند های اوراکل ( processes ) تشکیل می شود.

 ساختار حافظه (memory structure) :

ساختار حافظه در اوراکل به دو بخش اصلی (system global area(SGA و (program global area(PGA تقسیم می شود :

اشتراکی بین همه کاربران و تمامی فرایند های اوراکل ( system global area یا SGA )

اختصاصی برای هر کاربر یا یک فرایند خاص ( program global area یا PGA )

System global area) SGA

این قسمت از ساختار حافظه،  بین همه کاربران و فرایند های اوراکل به اشتراک گذاشته می شود وشامل بخشهای اجباری و اختیاری می باشد.

# نمونه های از بخش اجباری SGA عبارتند از :

Database buffer cache : این بافر شامل داده هایی است که توسط کاربر از دیسک خوانده شده  و در صورت تغییر بر روی داده های واکشی شده، در مواقعی مشخص و طی مراحلی توسط فرایندهای اوراکل (Database writer ) به دیسک منتقل می شوند.

Redo log buffer : این بافر زمانی به کار می آید که اطلاعات درون database buffer cache تغییر کنند که در اینصورت قبل ازاعمال تغییر،  دستورات DMLای مربوط به آن تغییرات، در این بافر ذخیره می گردند سپس در زمان هایی مشخص توسط فرآیند های اوراکل (Log writer )، درون فایل های redo logfile که محل نگهداری آنها بر روی دیسک است منتقل می شوند .

اوراکل از این فایل ها و همچنین این buffer برای ریکاوری در سطح instance و دیتابیس استفاده می کند .

Shared pool: در این قسمت از SGA، فرم پارس شده دستوراتی که توسط کاربران سمت بانک فرستاده شده است نگهداری می شود . این کار باعث سرعت بخشیدن به اجرای دستورات پر کاربرد توسط کاربران می گردد .

همچنین اطلاعات مربوط به جداول data dictionary نیر در shared pool ذخیره می شوند.

از بخش های اختیاری SGA نیز می توان به Large pool، Java pool،  Stream pool اشاره کرد.

Program global area)PGA)

قسمتی از فضای RAM می باشد که بر خلاف SGA که به صورت اشتراکی بین همه کاربران قرار داشت ، PGA ، فقط مختص هر کاربر(session) می باشد و در آن اطلاعاتی از قبیل متغیر ها ، آرایه ها ، اطلاعات آماری مربوط به کارآیی session ها ، نگهداری می شود . و  همچنین در این قسمت از ساختار حافظه ، فضایی جهت مرتب سازی داده های واکشی شده توسط هر کاربر نیز وجود دارد .

فرآیند های اوراکل(processes )

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

1.فرآیند های کاربر ( user processes ) : این فرآیند ها زمانی ایجاد می شوند که یک کاربر قصد اتصال به بانک را دارد .

2.فرآیند های سرور ( server processes ) : این فرآیند ها در سمت سرور و بنا به درخواست کاربر ایجاد می شوند تا دستورات کاربران در سمت سرور را اجرا کنند .

3.فرآیند های پس زمینه ( background processes ) : این فرآیند ها رابط بین ساختار حافظه و ساختار فیزیکی در اوراکل هستند به صورتی که با شروع به کار instance ، ایجاد شده و با متوقف شدن آن از بین می روند .

فرآیند های پس زمینه به دو قسمت اجباری و اختیاری تقسیم می شوند :

چند نمونه فرآیند پس زمینه اجباری عبارتند از :

  • Database writer ( DBWRn )
  • Log writer ( LGWR )
  • System monitor ( SMON )
  • Process monitor ( PMON )
  • Check point ( CKPT )

و همچنین تعدادی فرآیند پس زمینه اختیاری نیز عبارتند از :

  • Archiver
  • (Manageability ( MMON 
  • (Manageability light ( MMNL 
  • (Memory manager ( MMAN 

ارتباط با نویسنده(آیدی تلگرام): s_s_m86@

Comment (1)

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.