ویرگول
ورودثبت نام
محمدحسین حیدرزاده
محمدحسین حیدرزاده
محمدحسین حیدرزاده
محمدحسین حیدرزاده
خواندن ۳ دقیقه·۳ سال پیش

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

اوراکل یکی از بزرگ‌ترین پایگاه‌های داده در صنعت است. آن را Oracle RDBMS و یا به اختصار Oracle می‌نامند. Oracle یک پایگاه‌داده‌ی رابطه‌ای است و توسعه آن توسط شرکت Oracle انجام می‌شود. در این نوشته قصد داریم با معماری Oracle آشنا شویم و آن را به صورت جزئی بررسی کنیم.

اوراکل از database و حداقل یک database instance تشکیل شده است. هر database instance یا به اختصار instance، مجموع memory و process و هر database مجموعه‌ای از فایل‌ها است.

تصویر زیر معماری Oracle Database Server را به خوبی نشان می‌دهد:

oracle database server architecture
oracle database server architecture

هر instance تنها می‌تواند به یک database دسترسی داشته باشد. همچنین می‌توانیم چند instance تعریف کرده که همه آن‌ها به یک database دسترسی داشته باشند. در ادامه هر یک از بخش‌های Database و Database Instance را بررسی می‌کنیم.

معماری Database

هر Database مجموعه‌ای از فایل‌ها را شامل می‌شود. Oracle برای مدیریت فایل‌ها ساختاری ارائه کرده است که می‌توانیم Database خود را به صورت ریزدانه مدیریت کنیم. واحدهای مختلفی برای مدیریت حافظه وجود دارد که عبارتند از:

  • Data blocks
  • Extents
  • Segments
  • Tablespaces

بزرگ‌ترین واحد ذخیره‌سازی در Oracle را Tablespaceمی‌نامند. شکل زیر قسمت‌های مختلف یک Tablespace را به خوبی نمایش می‌دهد.

Tablespace structure
Tablespace structure

معماری Database Instance

به طور کلی هر Database Instance رابطی بین کاربر و Database می‌باشد. هر Database Instance شامل ۳ بخش می‌باشد.

  • System Global Area (SGA)
  • Program Global Area (PGA)
  • Background Processes

هنگام شروع Database Instance یک SGA ایجاد می‌شود. این بخش یک Shared Memory است که زمان خاموش شدن Database Instance از حافظه آزاد می‌شود.

در طرف دیگر PGA را داریم که در دسترس همه Process ها می‌باشد و به ازای هر Session ایجاد شده و در پایان از حافظه آزاد می‌شود.

شکل زیر معماری کلی Database Instance را به خوبی نمایش می‌دهد.

Database Instance Structure
Database Instance Structure

نحوه عملکرد Listener

پل ارتباطی کاربر و Database Instance در معماری ارائه شده، Listener است. در ابتدا دستورات از طرف کاربر به Listener می‌رسد و در ادامه Listener آن را به Database Instance می‌فرستد. اگر Listener در دسترس نباشد، نمی‌توانیم با Database Instance ارتباط برقرار کنیم.

Database Server Listener
Database Server Listener

تمرین

در این بخش قصد داریم قسمتی از مفاهیمی که ارائه شد را به صورت عملیاتی مشاهده کنیم. در ابتدا instance را خاموش می‌کنیم که مطمئن شویم SGA و PGA از حافظه آزاد شده‌اند.

SQL> shutdown Database closed. Database dismounted. ORACLE instance shut down.

حال instance را با دستور ارائه شده روشن می‌کنیم.

SQL> startup ORACLE instance started. Total System Global Area 1.0234E+10 bytes Fixed Size 14585696 bytes Variable Size 1711276032 bytes Database Buffers 8489271296 bytes Redo Buffers 18968576 bytes Database mounted. Database opened.

برای روشن کردن instance سه مرحله داریم که عکس زیر این سه مرحله را به خوبی نمایش می‌دهد.

database startup stages
database startup stages

پس از انجام هر مرحله، background Process هایی شروع می‌شوند و حافظه‌های مورد نیاز allocate می‌شود. همانطور که قبلا درباره آن صحبت کردیم، SGA یک حافظه مشترک برای هر Instance می‌باشد. این قسمت از حافظه در مرحله‌ی اول پس از شروع Instance ایجاد می‌شود.

جداولی در اوراکل وجود دارد که به راحتی می‌توانید اطلاعات مربوط به Database را در آن جستجو کنید. برای مثال در جدول DBA_DATA_Files می‌توانید اطلاعات مربوط به data files را مشاهده کنید. در این جدول همچنین tablespace مربوط به هر data file مشخص است.

SQL> describe DBA_DATA_FILES; Name Null? Type ----------------------------------------- -------- ---------------------------- FILE_NAME VARCHAR2(513) FILE_ID NUMBER TABLESPACE_NAME VARCHAR2(30) BYTES NUMBER BLOCKS NUMBER STATUS VARCHAR2(9) RELATIVE_FNO NUMBER AUTOEXTENSIBLE VARCHAR2(3) MAXBYTES NUMBER MAXBLOCKS NUMBER INCREMENT_BY NUMBER USER_BYTES NUMBER USER_BLOCKS NUMBER ONLINE_STATUS VARCHAR2(7) LOST_WRITE_PROTECT VARCHAR2(7)


برگرفته شده از سایت oracletutorial









oracledatabaseمعماری
۲
۱
محمدحسین حیدرزاده
محمدحسین حیدرزاده
شاید از این پست‌ها خوشتان بیاید