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

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

راهنمای جامع و کاربردی Oracle Instance

در این مقاله شما می خوانید

۱. 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 PoolSQL، Execution Plan
  • Redo Log Buffer → ثبت تغییرات
  • Large PoolRMAN، Parallel Execution

📌 ۸۰٪ مشکلات Performance ریشه در تنظیم بد SGA دارد.

۵. PGA چیست و چه تفاوتی با SGA دارد؟

SGA PGA
مشترک اختصاصی هر Session
Cache Sort و Hash
Shared Private

📌 Sortهای بزرگ = PGA زیاد

۶.Background Processهای مهم Oracle Instance

  • DBWR → نوشتن دیتا روی Datafile
  • LGWR → نوشتن Redo
  • CKPTCheckpoint
  • SMON Instance Recovery
  • PMON → پاک‌سازی Session مرده
  • ARCnArchive 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

  • NOMOUNTInstance ساخته می‌شود
  • MOUNTControl File شناخته می‌شود
  • OPENDatabase آماده استفاده
				
					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 برایت «قابل پیش‌بینی» می‌شود

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

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

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

میثم راد

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

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

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