Oracle Tablespace Doldu (ORA-01653 / ORA-01654): Alan Açma Rehberi
Segment genişlemesinin başarısız olduğu durumda gerçek doluluğu (autoextend dahil) hesaplar, en çok alan tüketenleri bulur ve güvenli şekilde datafile ekler veya büyütür.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
- `ORA-01653: unable to extend table OWNER.TABLO by 128 in tablespace TS_ADI` (tablo), `ORA-01654` (indeks), `ORA-01652` (temp).
- İlgili şemadaki INSERT/UPDATE/DDL işlemleri başarısız. M38 > %95.
2. Etki / Impact
Yeni alan gerektiren yazmalar hata verir; uygulamanın ilgili modülü çalışmaz. Okumalar etkilenmez.
3. Teşhis / Diagnosis
SELECT tablespace_name, ROUND(used_space*8192/1048576) AS used_mb,
ROUND(tablespace_size*8192/1048576) AS max_mb, ROUND(used_percent,1) AS used_pct
FROM dba_tablespace_usage_metrics ORDER BY used_percent DESC;SELECT file_name, ROUND(bytes/1048576) AS size_mb, autoextensible,
ROUND(maxbytes/1048576) AS max_mb, ROUND(increment_by*8192/1048576) AS next_mb
FROM dba_data_files WHERE tablespace_name = 'TS_ADI';SELECT * FROM (
SELECT owner, segment_name, segment_type, ROUND(bytes/1048576) AS mb
FROM dba_segments WHERE tablespace_name = 'TS_ADI' ORDER BY bytes DESC
) WHERE ROWNUM <= 15;4. Müdahale / Response
ALTER DATABASE DATAFILE '/u02/oradata/ORCL/ts_adi01.dbf' RESIZE 20G;ALTER DATABASE DATAFILE '/u02/oradata/ORCL/ts_adi01.dbf'
AUTOEXTEND ON NEXT 512M MAXSIZE 32G;ALTER TABLESPACE TS_ADI ADD DATAFILE '/u02/oradata/ORCL/ts_adi02.dbf'
SIZE 10G AUTOEXTEND ON NEXT 512M MAXSIZE 32G;
-- ASM ile: ALTER TABLESPACE TS_ADI ADD DATAFILE '+DATA' SIZE 10G AUTOEXTEND ON NEXT 512M MAXSIZE 32G;ALTER TABLE owner.tablo ENABLE ROW MOVEMENT;
ALTER TABLE owner.tablo SHRINK SPACE CASCADE;`SHRINK` yoğun yazma altında kilitlenmelere yol açabilir; düşük trafikte yapın. `TRUNCATE` ve `DROP` geri alınamaz.
5. **Kalıcı çözüm:** Büyüme trendiyle (haftalık/aylık) kapasite tahmini yapın, M38 için %85 uyarı alarmı kurun, büyük tablolara bölümleme ve arşiv/purge politikası ekleyin.
5. Doğrulama / Verification
- Başarısız olan işlem yeniden çalıştırıldığında ORA-01653 vermiyor.
- M38 %85'in altında; datafile'larda yeterli büyüme payı var.
- Disk/ASM grubunda boş alan güvenli seviyede.
6. Geri Alma / Rollback
- `RESIZE` ile büyütme geri alınabilir (küçültme yalnızca kullanılmamış alan kadar mümkündür).
- `AUTOEXTEND` ayarlarını önceki değerlere çevirin. Eklenen datafile genellikle kaldırılamaz (tablespace boşaltılıp yeniden oluşturulmadıkça), ekleme kararını buna göre verin.
- `TRUNCATE` / `DROP` geri alınamaz; önce yedeği doğrulayın.