Blog

Ora-01652 Tempfile yetmiyoo abi

32 gb bir tempfile’ınız var ve yetmiyorsa naparsınız?  Oracle Windows da 32gb dan daha büyük bir dosya kullananamıyor aslında  en azından database’in block size’ı  8k ise geçerli bir önerme oldu bu.

Peki Temp Tablespace’i neden bu kadar büyük ? Basitçe : Gün içersinde yapılan sorgulamalar, özellikle sort içerenleri için bu tablespace e alınarak sıralanır ardından kullanıcılara sunulur. Serveriniz Her restart edişinde bu table space’in içini boşaltır. Dikkat edin fiziksel boyutu aynı kalabilir, fakat içi boştur.

“ORA-01652: unable to extend temp segment by string in tablespace string” hatasıyla karşılaşmam da bu yüzden oldu. Burda aklıma gelen 2-3 çözüm vardı aslında.

1-) Yeni tablespace yaratıp oracle’a o temp i kullanmasını sağlamak.

2-) var olan tempfile i büyütmek ki bu koşullarda(32gb) mümkün değil

3-) Temp table space ine yeni file eklemek. Aha işte benim seçtiğim yöntemde aşağıdaki komutla bu oldu.

ALTER TABLESPACE "TEMP2" ADD TEMPFILE 'O:ORACLEORACLETEMP2B' SIZE 10000M REUSE AUTOEXTEND ON NEXT 500M MAXSIZE 32767M
Böylece Temp Tablespace i iki dosyadan oluşup gerektiğinde 64gb büyüklüğe kadar genişleyebilir. Bir kere genişlerse daha sonra fiziksel boyutunu küçültmez. bir kere ihityacı olduysa bir daha olacak demektir.

Çok büyümesini istemiyorsanız, Sıralama yapan sorguları, Metarialized viewleri azaltmayı deneyin. ya da google’dan arayarak birşeyler bulabilirsiniz.