Postgresql disk alanı dolu


14

Postgresql 9.3.10 arka ucuna sahip bir Django web uygulamam var (Linux işletim sisteminde oturuyor). Bir tabloyu kısaltmaya çalışsam bile, bu tür hatalar alıyorum ki disk tam hatasıyla karşılaştım:

ERROR:  could not extend file "base/30137/33186048": No space left on device
HINT:  Check free disk space.

Sunucuya kolayca daha fazla disk alanı ekleyemiyorum ya da bu VM'deki şeyleri silemiyorum. Ancak, kesme için aday olan birkaç tablo var, ama şimdi de onları kesemiyorum gibi görünüyor.

Burada ne yapabileceğim konusunda bana kimse tavsiyede bulunabilir mi? Bu benim üretim sunucumu sert bir şekilde vuruyor ve ben burada biraz tesadüfi bir DBA var, bu yüzden tamamen güdük.


Bir dizini (geçici olarak) düşürebilirseniz, bazı alanları geri alabilirsiniz ... tabloları
kısaltın

Yanıtlar:


9

PostgreSQL'in tablolarda herhangi bir değişiklik yapmadan önce WAL yazması gerektiğinden, şeyleri silmek ve daha fazla disk alanı serbest bırakmak için boş disk alanına ihtiyaç duyar.

Diskin dolmasına izin verirseniz, PostgreSQL içinden kurtaramazsınız. HattaTRUNCATE de WAL'a yazmak zorunda.

Yani gerekir hacmi biraz alan boşaltın veya hacmini genişletmek. PostgreSQL günlük dosyalarınız pg_logveri dizinindeyse, bunlardan bazılarını güvenle kaldırabilir ve Pg'yi yeniden başlatabilirsiniz.

Do not silmek pg_xlogveya pg_clog. Bunlar sunucu hata günlükleri değil, veritabanının, işlem günlüğünün ve kayıt günlüğünün kritik parçalarıdır.


Wal'a neden TRUNCATEyazmak gerekiyor ve WAL'deki bu giriş neye benziyor?
Evan Carroll

"truncate tüm verileri günlüğe kaydetmez, sadece bir trunkate'in gerçekleşmiş olması gerçeği. Geri alabilmek için, temel dosya işlem tamamlanana kadar saklanır." [kaynak] ( postgresql.org/message-id/… Yani kesik duvar giriş süper küçük. sadece bayt. Bu gerekli alan yükünün tamamı olsaydı, muhtemelen rm -rf /tmp/*vimrc tarafından alabilir veya silebilirsiniz
Evan Carroll

@EvanCarroll rm -rf /tmp/*... uygulama soketleri vb. Gibi istediğiniz şeyleri silebilir. Daha seçici olmak daha iyidir . Gerekli alana gelince, haklısınız, çok az - 8k boş bir masa + kesik, xid tahsisi, taahhüt kaydı vb.Için birkaç kb WAL girişi
Craig Ringer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.