اوراکل یکی از بزرگترین پایگاههای داده در صنعت است. آن را Oracle RDBMS و یا به اختصار Oracle مینامند. Oracle یک پایگاهدادهی رابطهای است و توسعه آن توسط شرکت Oracle انجام میشود. در این نوشته قصد داریم با معماری Oracle آشنا شویم و آن را به صورت جزئی بررسی کنیم.
اوراکل از database و حداقل یک database instance تشکیل شده است. هر database instance یا به اختصار instance، مجموع memory و process و هر database مجموعهای از فایلها است.
تصویر زیر معماری Oracle Database Server را به خوبی نشان میدهد:

هر instance تنها میتواند به یک database دسترسی داشته باشد. همچنین میتوانیم چند instance تعریف کرده که همه آنها به یک database دسترسی داشته باشند. در ادامه هر یک از بخشهای Database و Database Instance را بررسی میکنیم.
هر Database مجموعهای از فایلها را شامل میشود. Oracle برای مدیریت فایلها ساختاری ارائه کرده است که میتوانیم Database خود را به صورت ریزدانه مدیریت کنیم. واحدهای مختلفی برای مدیریت حافظه وجود دارد که عبارتند از:
بزرگترین واحد ذخیرهسازی در Oracle را Tablespaceمینامند. شکل زیر قسمتهای مختلف یک Tablespace را به خوبی نمایش میدهد.

به طور کلی هر Database Instance رابطی بین کاربر و Database میباشد. هر Database Instance شامل ۳ بخش میباشد.
هنگام شروع Database Instance یک SGA ایجاد میشود. این بخش یک Shared Memory است که زمان خاموش شدن Database Instance از حافظه آزاد میشود.
در طرف دیگر PGA را داریم که در دسترس همه Process ها میباشد و به ازای هر Session ایجاد شده و در پایان از حافظه آزاد میشود.
شکل زیر معماری کلی Database Instance را به خوبی نمایش میدهد.

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

در این بخش قصد داریم قسمتی از مفاهیمی که ارائه شد را به صورت عملیاتی مشاهده کنیم. در ابتدا 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 سه مرحله داریم که عکس زیر این سه مرحله را به خوبی نمایش میدهد.

پس از انجام هر مرحله، 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