
در این مقاله شما می خوانید
۱. Oracle Instance چیست؟
Oracle Instance مجموعهای از:
- SGA (System Global Area) → حافظه
- Background Processes → پردازههای مدیریتی
است که به Database (فایلها) دسترسی پیدا میکند.
📌 Instance روی RAM و CPU
📌 Database روی Disk
📌 Instance موقتی است، Database دائمی
۲. تفاوت Oracle Instance و Oracle Database
| Oracle Database | Oracle Instance |
|---|---|
| Datafile + Controlfile + Redo | اصلاحMemory + Process |
| دائمی | موقتی |
| باقی میماند | با Shutdown از بین میرود |
| حافظه بلندمدت | مغز |
✅ بدون Instance، Database قابل استفاده نیست
۳. آیا Oracle Database بدون Instance باز میشود؟
❌ خیر
Database فقط وقتی قابل استفاده است که Instance OPEN باشد.
📌 Instance میتواند بدون Database بالا بیاید (NOMOUNT)
📌 Database بدون Instance عملاً مرده است
۴. Oracle SGA چیست و چرا مهم است؟
SGA حافظهی مشترک Oracle است که همه Sessionها از آن استفاده میکنند.
اجزای مهم:
- Buffer Cache → نگهداری بلاکهای دیتا
- Shared Pool → SQL، Execution Plan
- Redo Log Buffer → ثبت تغییرات
- Large Pool → RMAN، Parallel Execution
📌 ۸۰٪ مشکلات Performance ریشه در تنظیم بد SGA دارد.
۵. PGA چیست و چه تفاوتی با SGA دارد؟
| SGA | PGA |
|---|---|
| مشترک | اختصاصی هر Session |
| Cache | Sort و Hash |
| Shared | Private |
📌 Sortهای بزرگ = PGA زیاد
۶.Background Processهای مهم Oracle Instance
- DBWR → نوشتن دیتا روی Datafile
- LGWR → نوشتن Redo
- CKPT → Checkpoint
- SMON → Instance Recovery
- PMON → پاکسازی Session مرده
- ARCn → Archive Redo (در Archivelog)
۷. Commit در Oracle دقیقاً چه اتفاقی میافتد؟
برخلاف تصور خیلیها:
✅ Commit یعنی:
- LGWR Redo را روی Disk مینویسد
❌ Commit یعنی:
- DBWR Datafile را بنویسد (غلط!)
📌 به همین دلیل Commit سریع است.
۸. DBWR چه زمانی Datafile را مینویسد؟
- Buffer Cache پر شود
- Checkpoint
- کمبود Free Buffer
- Shutdown Normal
📌 Commit ربطی به DBWR ندارد.
۹. Redo Log چیست و چرا حیاتی است؟
Redo Log تمام تغییرات Database را ثبت میکند.
📌 Oracle بدون Redo = Oracle نیست
📌 Redo پایهی Recovery است
۱۰. Checkpoint چیست؟
Checkpoint تضمین میکند:
تمام Redo قبل از آن، روی Datafile اعمال شدهاند
نتیجه:
- Update Control File
- Update Header Datafile
۱۱. Instance Crash چیست و چه اتفاقی میافتد؟
اگر Instance Crash کند:
- Datafile سالم میماند
- Database در Startup بعدی Recover میشود
📌 Oracle برای Crash طراحی شده، نه برای ترس DBA 😄
۱۲. Instance Recovery چگونه انجام میشود؟
- SMON فعال میشود
- Redo Apply میشود
- Transaction ناقص Rollback میشود
✅ خودکار
✅ سریع
✅ بدون دخالت DBA
۱۳. تفاوت Instance Recovery و Media Recovery
| Media Recovery | Instance Recovery |
|---|---|
| خرابی دیسک | Crash نرمافزاری |
| Archived Redo | Online Redo |
| با RMAN | خودکار |
۱۴. مراحل Startup Oracle Database
- NOMOUNT → Instance ساخته میشود
- MOUNT → Control File شناخته میشود
- OPEN → Database آماده استفاده
STARTUP;
۱۵. Instance در حالت NOMOUNT چه میداند؟
- Parameter File
- SGA
- Background Processها
📌 هنوز Database را نمیشناسد.
۱۶. Oracle RAC چیست و Instance چه نقشی دارد؟
در RAC:
- چند Instance
- یک Database مشترک
📌 هر Instance:
- SGA خودش
- Processهای خودش
۱۷. Cache Fusion چیست؟
Cache Fusion باعث میشود:
- بلاکها از طریق Network بین Instanceها منتقل شوند
- نه از طریق Disk
✅ Performance بالا
✅ حذف Disk Ping
۱۸. اگر Redo Current خراب شود چه میشود؟
- Instance Crash میکند
- Recovery لازم است
📌 Redo Current = خط قرمز Oracle
۱۹. چرا Oracle Write-Ahead Logging است؟
چون:
Redo همیشه قبل از Data نوشته میشود
نتیجه:
- Consistency
- Atomicity
- Recovery مطمئن
۲۰. LGWR Redo را نوشته، DBWR Datafile را نه، Instance Crash کرده؛ چرا Data Corrupt نمیشود؟
✅ چون:
- Redo روی Disk وجود دارد
- SMON Redo را Apply میکند
- Datafile به حالت Consistent برمیگردد
📌 Redo King است، Data Slave
سوالات متداول درباره راهنمای جامع و کاربردی Oracle Instance در اوراکل
Oracle Instance مجموعهای از حافظه (SGA) و Background Processهاست که برای دسترسی و مدیریت Oracle Database استفاده میشود.
در حالی که Oracle Database شامل فایلهای فیزیکی مثل Datafile، Controlfile و Redo Log است.
به زبان ساده:
- Instance موقتی است و روی RAM اجرا میشود
- Database دائمی است و روی Disk قرار دارد
📌 بدون Instance، Database قابل استفاده نیست.
خیر. Oracle برای Crash طراحی شده است.
اگر Instance Crash کند، در Startup بعدی فرآیندی به نام Instance Recovery انجام میشود که توسط SMON مدیریت میشود.
در این فرآیند:
- Redo Logها Apply میشوند
- Transactionهای ناقص Rollback میشوند
- Database به حالت Consistent برمیگردد
✅ در اکثر مواقع هیچ دیتایی از دست نمیرود.
Commit در Oracle فقط یک کار انجام میدهد:
✅ نوشتن Redo توسط LGWR روی Disk
برخلاف تصور رایج:
- Commit باعث نوشتن Datafile نمیشود
- DBWR در Commit نقشی ندارد
به همین دلیل Commit در Oracle بسیار سریع است و یکی از نقاط قوت معماری Oracle محسوب میشود.
📌 SGA بیشتر روی Performance کلی سیستم تأثیر دارد
📌 PGA بیشتر روی عملیات هر Session اثر میگذارد
جمعبندی
اگر Oracle Instance را درست بفهمی:
- Crash ترسناک نیست
- Performance قابل کنترل است
- در مصاحبه DBA متمایز میشوی
- Oracle برایت «قابل پیشبینی» میشود
سؤالی درباره این مقاله داری؟
اگر نکتهای در این مقاله برات مبهم بود یا خواستی بیشتر بدونی، همین حالا برام بنویس تا دقیق و صمیمی پاسخت رو بدم — مثل یه گفتوگوی واقعی 💬
برو به صفحه پرسش و پاسخ
دیدگاهتان را بنویسید