
مقدمه: اوراکل چطور کار میکنه؟
اگر دنبال یادگیری اصولی معماری Oracle Database هستی و میخوای بدونی دقیقاً وقتی یک دستور SQL رو اجرا میکنی، چه اتفاقی پشت صحنه میافته، این مقاله دقیقاً برای تو نوشته شده.
اوراکل از جمله سیستمهای پایگاهدادهای هست که به شدت بهینه، امن و مقیاسپذیر طراحی شده.
اما درک معماری داخلی اون، شاهکلید تبدیل شدن به یه Oracle Developer یا DBA حرفهایه. پس بیا خیلی ساده، مرحلهبهمرحله با هم پیش بریم.
اگر می خواهید در مورد Result Cache در بخش آموزش اوراکل بیشتر آشنا بشید نوشته زیر را مطالعه کنید:
در این نوشته شما می خوانید
Oracle دقیقا از چه بخشهایی ساخته شده؟
۱. Oracle Instance – مغز در حال کار
وقتی دیتابیس روشن میشه، چیزی به اسم Instance ساخته میشه که ترکیبی از حافظه و پردازههاست.
- SGA (System Global Area): یه حافظه مشترک برای کش کردن دیتا، ساختارهای داخلی، و دستورهای SQL
- پردازههای پسزمینه: پردازههایی مثل
DBWn
,LGWR
,SMON
,PMON
که کارهای حیاتی سیستم رو انجام میدن
۲. Oracle Database – مغز ذخیرهساز
این بخش شامل فایلهایی روی دیسکه:
- Data Files: محتوای جداول و ایندکسها
- Redo Log Files: لاگهایی که تغییرات رو ذخیره میکنن
- Control Files: اطلاعات ساختاری دیتابیس
- Undo/Temp Files: برای مدیریت تراکنشها و عملیات موقتی
اجرای یک دستور در اوراکل چطور پیش میره؟
فرض کن این دستور رو اجرا کردی:
SELECT first_name FROM employees WHERE department_id = 10;
اوراکل اینطوری واکنش نشون میده:
- پردازه کاربر درخواست رو میفرسته
- Server Process وارد عمل میشه
- دستور در حافظه تجزیه (Parse) میشه
- Optimizer بهترین روش اجرا رو انتخاب میکنه
- داده از دیسک یا حافظه خونده میشه
- نتیجه برمیگرده به کاربر
خلاصهش؟ هر دستور SQL یک چرخه کامل از حافظه، بررسی، اجرا و بازگشت داره!
مهمترین اجزای معماری اوراکل که باید بشناسی
جزء معماری | توضیح کاربردی |
---|---|
SGA | حافظهای برای کش دیتا، لاگ و ساختارها |
Shared Pool | نگهداری ساختارهای متادیتا و SQL Cache |
Database Buffer Cache | حافظهی بلاکهای داده |
Redo Log Buffer | ذخیره تغییرات قبل از رفتن به دیسک |
DB Writer (DBWn) | انتقال دیتا از کش به دیسک |
Log Writer (LGWR) | ذخیره لاگها در فایلها |
SMON/PMON | مانیتور و بازیابی سیستم |
یه مثال کاربردی برای معماری اوراکل
دستور زیر رو اجرا میکنی:
INSERT INTO orders (order_id, amount) VALUES (1001, 500);
چه اتفاقی میافته؟
- دیتا ابتدا توی Cache نوشته میشه
- تغییرات وارد Redo Log Buffer میشن
- با
COMMIT
، LGWR اطلاعات رو ذخیره میکنه - دیسک بعداً با DBWn آپدیت میشه
چی جدید شده تو معماری Oracle 2025؟
با عرضه Oracle 23c و نسل بعدی دیتابیسها، تغییرات زیر رو شاهد بودیم:
- Blockchain Table برای امنیت و ضددستکاری بودن دیتا
- JSON Relational Duality Views برای ترکیب JSON و SQL
- AutoML و AI درونساخت برای تحلیل داده بدون کدنویسی
- معماری Microservices در Oracle Cloud
- قابلیت Query In-Memory پیشرفتهتر
سوالات متداول درباره معماری اوراکل ۲۰۲۵
معماری Oracle از دو بخش اصلی تشکیل شده:
- Instance: شامل حافظه (SGA) و پردازههای پسزمینه (مثل DBWn و LGWR)
- Database: مجموعهای از فایلهای فیزیکی مثل Data Files، Control Files و Redo Logs
Instance اطلاعات را پردازش میکند و Database آنها را ذخیره میکند. این دو در کنار هم عملیات دیتابیس را اجرا میکنند.
وقتی یک دستور SQL اجرا میکنی، Oracle ابتدا آن را Parse میکند، سپس Optimizer بهترین پلن اجرایی را انتخاب میکند.
اگر اطلاعات موردنیاز در حافظه باشد، از آن استفاده میشود، در غیر اینصورت از دیسک خوانده میشود.
در پایان، نتیجه به کاربر بازگردانده میشود.
اگر دستور DML باشد (مثل INSERT)، ابتدا در کش نوشته میشود و سپس بعد از COMMIT در فایلها ذخیره خواهد شد.
- SGA (System Global Area): حافظهی مشترک بین همهی کاربران است و شامل کش داده، shared pool، و redo log buffer میشود.
- PGA (Program Global Area): حافظهی اختصاصی برای هر پردازه کاربر (session) است که عملیاتهایی مثل sort کردن و نگهداری متغیرهای PL/SQL در آن انجام میشود.
SGA برای کل سیستم است، ولی PGA برای هر یوزر مجزاست.
در نسخههای جدید مثل Oracle 23c، تغییرات زیر در معماری دیده میشود:
- پشتیبانی از Blockchain Table برای ذخیره دادههای غیرقابل تغییر
- JSON Duality Views برای کار همزمان با ساختار رابطهای و JSON
- معماری Microservices مخصوص Oracle Autonomous DB
- درونسازی AutoML و In-Memory Enhancements برای پردازش هوشمند و بلادرنگ
این پیشرفتها معماری اوراکل را به یک پلتفرم مدرن برای دیتابیسهای ابری و تحلیلی تبدیل کردهاند.
نتیجهگیری
یادگیری معماری اوراکل یعنی شناخت عمیقتر از اینکه دیتابیس چطور نفس میکشه!
- Oracle Instance = حافظه + پردازههای اجرایی
- Oracle Database = فایلهای دیتا، لاگ، و کنترل
- دستور SQL از حافظه عبور میکنه، بهینهسازی میشه، اجرا میشه و نتیجه برمیگرده
هرکسی که با اوراکل کار میکنه (از توسعهدهنده تا DBA)، باید به این معماری مسلط باشه تا بتونه سریعتر، بهتر و حرفهایتر عمل کنه.
📢 نظر شما چیست؟ اگر شما هم اطلاعات و تجربه خوبی در مورد معماری جدید اوراکل در آموزش Oracle Database دارید خوشحال میشم در بخش نظرات، تجربه های ارزشمندتان را با ما به اشتراک بگذارید! 🚀
دیدگاهتان را بنویسید