مقدمه ای بر معماری پایگاه داده اوراکل

 

اوراکل به عنوان یکی از بزرگترین شرکت های دنیا در عرصه های گوناگون از جمله مدیریت پایگاه داده ، اسم و رسم خود را در بین طرفدارانش پیدا کرده و در این پست قصد دارم گریزی به محصول مدیریت پایگاه داده این شرکت یعنی Oracle Database بزنم و معماری ان را بیان کنم. (از محصولات دیگر این شرکت میتوان به Oracle Application Server و Oracle Application و Oracle Collaboration Suite و Oracle Develper suite و Oracle Services اشاره کرد )

 

 

 

اوراکل را می توان به دو قسمت کلی تقسیم کرد (در این پست ، منظور از اوراکل ، پایگاه داده اوراکل است ) : حافظه (Memory Structures) و فایل های فیزیکی (Storage Structures).

خود حافظه نیز شامل بخش System Global Area ( یا SGA که به آن shared global area هم گفته شده ) و Background Process می باشد . به این قسمت اصطلاحا Instance گفته می شود و هنگامی که گفته می شود " سرویس اوراکل (یا instance اوراکل ) بالا است " ،به معنی مستقر شدن Instance در حافظه است .

 

 

کاربری که با دیتا بیس درگیر است در اصل با SGA در Instance در ارتباط است و Instance از طریق Background process ها ، با database Files در ارتباط است .

 

حال وارد SGA شده و با معماری آن نیز آشنا می شویم :

SGA دارای ۶ کامپوننت است که ۳ مورد از آنها الزامی است و ۳ مورد دیگر اختیاری بوده و می تواند در instance نصب نباشد . :

 

 

موارد الزامی شامل Database Buffer cache ، Redo log buffer و Shared Pool است که از ورژن های اولیه اوراکل ، این کامپوننت ها وجود داشته اند. و Stream pool ، Lrage Poll و Java Pool انتخابی می باشند .

 

لازم است که با PGA نیز آشنا شویم : (Private Global Area یا Program Global Area ) در حقیقت پل بین Server Process ایجاد شده به ازای کاربر در حال ارتباط به دیتا بیس برای تعامل با Instance است .

این کامپوننت ها دارای مقادیری هستند که توسط دستور Show sga در sqlplus می توانید آنها را مشاهده کنید (sqlplus یک محیط command line را مانند sqlcmd در sql server در سمت کلاینت یا سرور در اختیار کاربر قرار می دهد و مقدار حافظه اختصاص داده شده بر حسب بایت را به شما نمایش می دهد .) مدیریت این کامپوننت ها از وظایف DBA است که باید کامل به آنها تسلط داشته باشد تا بتواند حافظه را مدیریت کند و از مشکلات احتمالی که ممکن است به دلیل مدیریت نا درست حافظه رخ دهد ، جلوگیری کند

 

اگر این مقادیر برای شما ، عدد صفر را نمایش دادند ، به این معنی است که خود اوراکل حافظه را مدیریت می کند

 

 

 

بخش بعدی ، background process ها هستند . از معروف ترین BG Process ها دراوراکل می توان به System Monitor یا SMON و Process Monitor یا PMON و DataBase Write یا DBW و CheckPoint یا CKPT و Log Write یا LGWR و Archiver یا ARC اشاره کرد .

 

 

ارتباط حافظه با DataBase file ها از طریق این پروسه ها انجام می گیرد .ولی لازم به ذکر است که در صورتی که دستوری مثل select * from MyTable به اوراکل داده شود ، اوراکل ابتدا در SGA به دنبال آن می گردد (در DataBase Buffer cache) و در صورتی که داده ها یافت نشد ، آنگاه برای انجام IO به DataBase Files می رود .

هر کدام از این پردازش ها ، برای خود تعریف و کارکرد و معماری خود را دارند که در این بحث نمی گنجد .

 

در بخش Database Files و بخش فیزیکی ، فایل های زیادی برای طبقه بندی و نگهداری اطلاعات وجود دارد از جمله Data File ها (که اصل اطلاعات جهت نگهداری در این فایل ها نگهداری می شود )، Online Redo Log Files ( که اطلاعات recovery را نگه می دارد ) ، Archive Log Files (که اطلاعات log ها را نگه می دارد) ، Contorl Files (که اطلاعات مربوط به سیستم مثل مسیر Data File ها ، تعداد آنها ، اسم آنها و… نگه می دارد ) ، Parameter file ها (که تمام پارامتر های اوراکل را در خود نگه می دارد) ، Password file (که اطلاعات امنیتی پسوورد کاربر sys را در خود به صورت encrypt شده نگه می دارد) و … .

 

بخش های بیان شده در بالا ، دارای جزییات بسیاری هستند که پیشنهاد می کنم آنها را مطالعه کنید و با مفاهیم آنها آشنا باشید البته دیدگاه logic به این موراد نیز وجود دارد که به database ها ، schema ، segment ،Tablespace ها و … اشاره دارد.

 

 

در انتها ، به دوستانی که آشنایی کمی با اوراکل دارند پیشنهاد می کنم مطالعه ای در باره پسوند g در اوراکل که برگرفته از grid است داشته باشند تا با مفهوم grid computing آشنا شده و به قابلیت های دیگر آن پی ببرند .

 

One Response to “مقدمه ای بر معماری پایگاه داده اوراکل

  • الهام
    3 سال ago

    سلام – خسته نباشید لطفا اطلاعاتی درباره ی داده پردازی در معماریدر سایت قرار دهید-مرسی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *