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

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

آموزش Tablespace در اوراکل با ۳۰ سؤال و جواب

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

🔹 بخش اول: مفاهیم پایه Tablespace

۱. Tablespace در Oracle چیست؟

Tablespace یک ساختار منطقی (Logical) برای نگهداری داده‌ها در Oracle Database است.

داده‌ها فیزیکی داخل Datafile ذخیره می‌شوند، اما Oracle آن‌ها را از طریق Tablespace مدیریت می‌کند.

📌 ساختار کلی:

				
					Database
 └── Tablespace
      └── Datafile
           └── Segment (Table, Index, ...)

				
			

۲. تفاوت Tablespace و Datafile چیست؟

Datafile Tablespace
فیزیکی منطقی
فایل روی دیسک قابل مدیریت با SQL
فقط متعلق به یک Tablespace شامل چند Datafile

۳. چرا Tablespace مهم است؟

چون مستقیماً روی این موارد اثر می‌گذارد:

  • ✅ مدیریت فضای ذخیره‌سازی
  • Performance دیتابیس
  • Backup و Recovery
  • ✅ پایداری در Production

۴. انواع Tablespace در Oracle کدام‌اند؟

  • SYSTEM
  • SYSAUX
  • UNDO
  • TEMP
  • User Tablespace
				
					SELECT tablespace_name FROM dba_tablespaces;

				
			

۵. SYSTEM Tablespace چه کاربردی دارد؟

  • شامل Data Dictionary
  • حیاتی برای دیتابیس
  • هرگز نباید Drop یا Read Only شود

۶.SYSAUX Tablespace چیست؟

  • برای نگهداری اطلاعات جانبی مثل:

    • AWR
    • OEM
    • Statistics

    هدف: سبک‌تر شدن SYSTEM

۷. UNDO Tablespace چیست؟

برای:

  • Rollback
  • Read Consistency
  • Flashback
				
					SHOW PARAMETER undo_tablespace;

				
			

۸. TEMP Tablespace چیست؟

  • برای عملیات موقتی مثل:

    • Sort
    • Order By
    • Hash Join
				
					SELECT * FROM dba_temp_files;

				
			

🔹 بخش دوم: ساخت و مدیریت Tablespace

۹. چگونه یک Tablespace بسازیم؟

				
					CREATE TABLESPACE users_ts
DATAFILE '/u01/oradata/ORCL/users01.dbf'
SIZE 500M;

				
			

۱۰. Tablespace با Autoextend چیست و چرا مهم است؟

				
					CREATE TABLESPACE data_ts
DATAFILE '/u01/oradata/ORCL/data01.dbf'
SIZE 1G
AUTOEXTEND ON
NEXT 100M
MAXSIZE 5G;

				
			

✅ جلوگیری از Out of Space

✅ مناسب Production

۱۱. BIGFILE و SMALLFILE Tablespace چه تفاوتی دارند؟

توضیح نوع
چند Datafile SMALLFILE
یک Datafile بزرگ BIGFILE

۱۲. چگونه Datafile جدید اضافه کنیم؟

				
					ALTER TABLESPACE users_ts
ADD DATAFILE '/u01/oradata/ORCL/users02.dbf'
SIZE 500M;

				
			

۱۳. افزایش سایز Datafile چگونه است؟

				
					ALTER DATABASE DATAFILE
'/u01/oradata/ORCL/users01.dbf'
RESIZE 1G;

				
			

۱۴. Offline و Online کردن Tablespace چه زمانی استفاده می‌شود؟

				
					ALTER TABLESPACE users_ts OFFLINE;
ALTER TABLESPACE users_ts ONLINE;

				
			

✅ برای Maintenance

✅ نه در Peak Time

۱۵. Read Only کردن Tablespace چه کاربردی دارد؟

				
					ALTER TABLESPACE users_ts READ ONLY;

				
			

مناسب آرشیو دیتا

۱۶. حذف Tablespace چگونه انجام می‌شود؟

				
					DROP TABLESPACE users_ts
INCLUDING CONTENTS AND DATAFILES;

				
			

⚠️ بسیار خطرناک در عملیاتی

۱۷. چگونه مصرف فضای Tablespace را بررسی کنیم؟

				
					SELECT tablespace_name,
       ROUND(SUM(bytes)/1024/1024) MB
FROM dba_data_files
GROUP BY tablespace_name;

				
			

۱۸. چه اشیایی داخل یک Tablespace هستند؟

				
					SELECT owner, segment_name, segment_type
FROM dba_segments
WHERE tablespace_name = 'USERS';

				
			

🔹 بخش سوم: نکات حرفه‌ای و DBA Level

۱۹. Locally Managed Tablespace چیست؟

  • مدیریت Extent با Bitmap
  • Performance بهتر
  • استاندارد Oracle

۲۰. ASSM چیست و چرا مهم است؟

Automatic Segment Space Management

✅ کاهش Contention

✅ مناسب OLTP

۲۱. Extent و Segment چه تفاوتی دارند؟

  • Segment = Table / Index
  • Extent = مجموعه‌ای از بلاک‌ها

۲۲. Default Tablespace کاربر چگونه تعیین می‌شود؟

				
					ALTER USER hr
DEFAULT TABLESPACE users;

				
			

۲۳. انتقال Table به Tablespace دیگر

				
					ALTER TABLE employees
MOVE TABLESPACE data_ts;

				
			

۲۴. انتقال Index چگونه است؟

				
					ALTER INDEX emp_idx
REBUILD TABLESPACE index_ts;

				
			

۲۵. Tablespace Encryption چیست؟

				
					CREATE TABLESPACE secure_ts
ENCRYPTION USING 'AES256'
DEFAULT STORAGE (ENCRYPT);

				
			

✅ امنیت بالا

✅ بدون تغییر اپلیکیشن

۲۶. Transportable Tablespace چیست؟

انتقال سریع دیتا بین دیتابیس‌ها بدون Export کامل

۲۷. Fragmentation در Tablespace چیست؟

راه‌حل‌ها:

  • MOVE TABLE
  • REBUILD INDEX
  • SHRINK SPACE

۲۸. مانیتورینگ Tablespace در Production

				
					SELECT tablespace_name,
       used_percent
FROM dba_tablespace_usage_metrics;

				
			

۲۹. اشتباهات رایج DBAها درباره Tablespace

❌ استفاده از SYSTEM برای دیتا

❌ نداشتن Autoextend

❌ مانیتور نکردن فضا

۳۰. Best Practice نهایی Tablespace

Data و Index جدا

✅ Autoextend + Maxsize

✅ LMT + ASSM

✅ مانیتورینگ دائمی

سوالات متداول درباره Tablespace در اوراکل

Tablespace در Oracle یک ساختار منطقی برای مدیریت فضای ذخیره‌سازی دیتابیس است که داده‌ها را از طریق Datafileها سازمان‌دهی می‌کند.

Oracle از Tablespace برای کنترل بهتر فضا، افزایش Performance، جداسازی داده‌ها و ساده‌سازی Backup و Recovery استفاده می‌کند.

📌 به زبان ساده:

Tablespace مثل یک قفسه است و Datafileها کشوهای آن هستند.

تفاوت اصلی این دو در ماهیت منطقی و فیزیکی آن‌هاست:

  • Tablespace: ساختار منطقی و قابل مدیریت با SQL
  • Datafile: فایل فیزیکی که واقعاً روی دیسک ذخیره می‌شود

یک Tablespace می‌تواند چند Datafile داشته باشد، اما هر Datafile فقط به یک Tablespace تعلق دارد.

SYSTEM Tablespace شامل Data Dictionary و اطلاعات حیاتی Oracle است.

اگر داده‌های کاربر داخل SYSTEM ذخیره شوند:

Performance افت می‌کند

❌ ریسک Crash بالا می‌رود

❌ نگهداری دیتابیس سخت می‌شود

✅ بهترین کار این است که همیشه User Tablespace جداگانه بسازید.

برای یک محیط عملیاتی پایدار، این تنظیمات توصیه می‌شود:

✅ استفاده از Locally Managed Tablespace (LMT)

✅ فعال بودن AUTOEXTEND با MAXSIZE مشخص

✅ جداسازی Data و Index Tablespace

✅ مانیتورینگ مداوم فضای مصرفی

✅ عدم استفاده از SYSTEM و SYSAUX برای داده‌های اپلیکیشن

این تنظیمات جلوی بیشتر مشکلات Out of Space و افت Performance را می‌گیرد.

جمع‌بندی

Tablespace فقط یک مفهوم نیست؛

پایه‌ی مدیریت فضای Oracle است.

اگر درست طراحی شود، دیتابیس نفس راحت می‌کشد؛

اگر نه، دیر یا زود به مشکل می‌خوری.

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

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

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

میثم راد

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

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

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