ESC را فشار دهید تا بسته شود

زمیوس آموزش، یادگیری و سرگرمی

Oracle Architecture: از Listener تا Datafile – هر آنچه باید بدانید

اگر از من بپرسید معماری پایگاه داده اوراکل چطور کار می‌کند، جوابم یک داستان ساده است.

تصور کنید یک شهر بزرگ دارید:

  • دروازه‌ی ورودی شهر: Oracle Listener
  • خیابان‌ها و مسیرهای اصلی: Server Processes
  • قلب شهر: Instance شامل حافظه (SGA و PGA) و فرآیندهای پس‌زمینه
  • انبارهای اصلی شهر: Datafiles

هر بار که یک کاربر یا برنامه می‌خواهد به دیتابیس شما وصل شود، این شهر از دروازه تا انبار، یک مسیر خاص را طی می‌کند.

 در این مقاله آموزش اوراکل در بخش آموزش معماری اوراکل  بیایید قدم‌به‌قدم جلو برویم.

اگر با دیتابیس Oracle کار می‌کنی، حتماً برایت پیش آمده که بخواهی اطلاعات خاصی مثل نام کاربر، نقش‌ها، IP کلاینت، یا حتی نام ماژول برنامه‌ات را در یک نشست (session) تنظیم کنی.

اینجاست که پکیج قدرتمند DBMS_SESSION وارد می‌شود. پیشنهاد می شود نوشته زیر را مطالعه کنید:

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

Listener – نگهبان دروازه پایگاه داده

Oracle Listener یک سرویس شبکه‌ای است که همیشه روی یک پورت مشخص (پیش‌فرض ۱۵۲۱) گوش به زنگ است.

وقتی یک کلاینت (مثلاً یک اپلیکیشن یا کاربر SQL Developer) درخواست اتصال می‌فرستد، Listener آن را بررسی و به مقصد درست هدایت می‌کند.

🔹 نمونه پیکربندی در فایل tnsnames.ora:

				
					ORCLDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCLPDB1)
    )
  )

				
			

🔸 اگر این قسمت درست پیکربندی نشود، با خطای معروف ORA-12541: TNS:no listener روبه‌رو می‌شوید.

Server Process – پیک موتوری دیتابیس!

بعد از این‌که Listener درخواست را پذیرفت، یک Server Process ساخته یا اختصاص داده می‌شود.

این همان پیک موتوری است که سفارش (Query) شما را از مشتری (کاربر) گرفته و به آشپزخانه (Instance) می‌برد، غذای آماده (نتیجه Query) را برمی‌گرداند.

  • Dedicated Server → برای هر کاربر یک موتوری
  • Shared Server → چند کاربر روی یک سیستم حمل مشترک

Instance – قلب تپنده اوراکل

۱. حافظه (SGA و PGA)

  • SGA (System Global Area) → آشپزخانه مشترک همه موتورهای سرور
    • Database Buffer Cache: نگهداری بلاک‌های دیتا
    • Shared Pool: کش Queryهای اجرا شده
    • Redo Log Buffer: ثبت تغییرات برای بازیابی
  • PGA (Program Global Area) → جیب اختصاصی پیک موتوری (اطلاعات Session، عملیات Sort و Join)

۲. فرآیندهای پس‌زمینه

  • مثل کارمندان این شهر، هر کدام وظیفه خاص دارند:
  • DBWn: نوشتن داده تغییر یافته در دیسک
  • LGWR: ثبت تغییرات در Redo Log
  • CKPT: هماهنگی بین حافظه و فایل‌ها
  • SMON: بازیابی سیستم بعد از Crash
  • PMON: جمع‌آوری منابع بعد از پایان کار یک پروسس
  • ARCn: بایگانی تاریخچه تغییرات

Datafile – انبار داده‌ها

اینجا همان‌جایی است که تمام اطلاعات اصلی شما ذخیره می‌شود: جداول، ایندکس‌ها، Viewها و همه آبجکت‌ها.

📌 مثال ساخت یک Tablespace با Datafile:

				
					CREATE TABLESPACE USERS
DATAFILE '/u01/app/oracle/oradata/ORCL/users01.dbf' SIZE 100M;

				
			

🔸 کنترل مکان و اندازه Datafileها یعنی کنترل کارایی دیتابیس.

مسیر اجرای یک Query – از دروازه تا انبار

فرض کنید:

				
					SELECT first_name FROM employees WHERE department_id = 50;

				
			

مراحل به زبان ساده:

  1. Listener اتصال را می‌پذیرد.
  2. Server Process Query را به سه بخش Parse، Execute، Fetch تقسیم می‌کند.
  3. Shared Pool چک می‌کند آیا این Query قبلاً اجرا و کش شده است یا نه.
  4. اگر داده در Database Buffer Cache نباشد، از Datafile خوانده می‌شود.
  5. نتیجه به کاربر برمی‌گردد.

نکات بهینه‌سازی (Performance Tuning)

  • استفاده از Bind Variable برای جلوگیری از Parse زیاد
  • تنظیم صحیح اندازه Buffer Cache
  • استفاده از ASM برای سازماندهی بهتر Datafileها
  • فعال کردن Load Balancing برای Listener در محیط RAC

خطاهای رایج در پایگاه داده اوراکل

  • ORA-12541Listener فعال نیست یا پورت اشتباه
  • ORA-01555Undo Tablespace کافی نیست
  • ORA-01109 → دیتابیس Mount شده ولی Open نیست

اجزای معماری اوراکل از Listener تا Datafile

جزء وظیفه اصلی مثال یا نکته کلیدی
Listener پذیرش اتصال شبکه از کلاینت و معرفی به Server Process گوش دادن روی پورت ۱۵۲۱ پیش‌فرض
Server Process اجرا و پردازش کوئری‌های کاربر و ارتباط با Instance Dedicated یا Shared Process
SGA حافظه اشتراکی شامل Buffer Cache، Shared Pool و Redo Log Buffer کاهش I/O با نگهداری بلاک‌ها در Cache
PGA حافظه اختصاصی هر Session نگهداری داده‌های موقت و Sort Area
Background Processes مدیریت نوشتن داده، بازیابی و بایگانی DBWn، LGWR، SMON، PMON
Datafile ذخیره فیزیکی داده‌ها در دیسک /u01/app/oracle/oradata/ORCL/users01.dbf

سوالات متداول درباره معماری اوراکل

Oracle Listener یک سرویس شبکه‌ای در پایگاه داده اوراکل است که روی پورتی مشخص (پیش‌فرض ۱۵۲۱) گوش می‌دهد و وظیفه دارد درخواست‌های اتصال از کلاینت‌ها را بپذیرد و آن‌ها را به فرآیند سرور مناسب معرفی کند.

بدون Listener، هیچ اتصال راه دوری به دیتابیس برقرار نمی‌شود.

  • SGA (System Global Area) حافظه اشتراکی برای همه Sessionهاست و بخش‌هایی مثل Buffer Cache، Shared Pool و Redo Log Buffer را شامل می‌شود.
  • PGA (Program Global Area) حافظه اختصاصی هر Server Process است و شامل داده‌های موقت و اطلاعات Session می‌شود.

به زبان ساده، SGA آشپزخانه مشترک همه کاربران و PGA کیف شخصی هر کاربر است.

Datafile یک فایل فیزیکی روی دیسک است که داده‌های جداول، ایندکس‌ها و سایر آبجکت‌های دیتابیس را ذخیره می‌کند.

این فایل‌ها عضو Tablespaceها هستند و بدون وجود آن‌ها دیتابیس کار نخواهد کرد.

  1. Listener اتصال را می‌پذیرد.
  2. Server Process Query را اجرا می‌کند.
  3. داده ابتدا در Cache بررسی می‌شود.
  4. اگر در Cache نبود، از Datafile خوانده می‌شود.
  5. نتیجه به کلاینت برمی‌گردد.

جمع‌بندی

فهم معماری اوراکل از Listener تا Datafile مثل داشتن نقشه شهر دیتابیس شماست.

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

📥 اگر سوالی داری در مورد مفاهیم معماری اوراکل در Oracle داری، در بخش کامنت‌ها بپرس.

سؤالی درباره این مقاله داری؟

اگر نکته‌ای در این مقاله برات مبهم بود یا خواستی بیشتر بدونی، همین حالا برام بنویس تا دقیق و صمیمی پاسخت رو بدم — مثل یه گفت‌وگوی واقعی 💬

برو به صفحه پرسش و پاسخ

میثم راد

من یه برنامه نویسم که حسابی با دیتابیس اوراکل رفیقم! از اونایی ام که تا چیزی رو کامل نفهمم،ول کن نیستم، یادگرفتن برام مثل بازیه، و نوشتن اینجا کمک می کنه تا چیزایی که یاد گرفتم رو با بقیه به شریک بشم، با هم پیشرفت کنیم.

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

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