Virtualizálásával linux pgcompactor - feldolgozás dagadt adatbázisok és táblák a postgresql

pgcompactor

Azt hiszem, sok ismert tulajdonsága a PostgreSQL, amelynek hatására megnövekszik a táblák vagy asztalra felfújni. Köztudott, hogy ez abban nyilvánul meg, súlyosabb esetekben az adatok frissítések gyakori UPDATE és alatt beszúrás / törlés műveleteket. Ennek eredményeként az infláció csökken a termelékenység. Valójában az a kérdés, hogy tömöríteni a táblázat Postgres? Az alábbiakban a válasz, és ezzel egyidejűleg p Nézzük, hogy ez miért történik, és hogyan lehet küzdeni.







Táblázatok PostgreSQL formájában mutatják be a lapok, méret 8 KB, amely bejegyzéseket. Amikor az egyik oldalon teljesen ki van töltve feljegyzések, egy táblázattal egészül ki az új oldalra. Amikor udalaleni rekordokat törölni vagy módosítani keresztül UPDATE, az a hely, ahol voltak régi felvétel nem lehet újra felhasználni azonnal. Erre autovacuum tisztítási folyamatot, vagy vákuum parancs fut a megváltozott oldalak és hely megjelölése egy ingyenes, amely után az új bejegyzés könnyen rögzíthetők ezen a helyen. Ha autovacuum nem tud megbirkózni, például változások következtében az aktív több adatot, vagy egyszerűen csak a rossz beállításokat, majd egy táblázat lesz felesleges új oldalakat, mint az új rekordok. És még a tisztítás után eléri a távoli bejegyzések, új oldalakat marad. Kiderült, hogy az asztal válik kiürült szempontjából felvételi sűrűség. Ezt nevezik a hatása megemelve az asztalok, felfújni.

Tisztítási eljárás autovacuum vagy vákuum, csökkentheti a méret a táblázat teljesen eltávolítja az üres oldalakat, de csak azzal a feltétellel, hogy azok az alján az asztalra. Hogy csökkentse a táblázat PostgreSQL vákuum tele van vagy a klasztert, azonban mindkét módszer telepítése szükséges nehéz és hosszú zárak egy táblázatot, amely nem mindig a legjobb.

Vegyük az egyik megoldás. Ha frissíti a rekordot az UPDATE, ha a táblázat hely áll rendelkezésre, az új verzió lesz szó van szabad hely, anélkül, hogy az új oldalt. Előnyben részesülnek azok a szabad tér közelében, a táblázat tetején. Ha frissíti a táblázat segítségével az úgynevezett hamis frissítések írja some_column = some_column utolsó oldalon, egy bizonyos ponton, az összes rekordot az utolsó oldaltól az űrbe a fenti táblázatban oldalakon. Így, miután több ilyen műveletek, az utolsó oldal üres lesz, és a szokásos, nem-blokkoló vákuum vágja le a táblázatban, így csökkentve a méretét.







Ennek eredményeként ilyen technika alkalmazásával lehet maximálisan tömöríteni egy asztal, anélkül, hogy a kritikus zárak és így nem zavaró a többi ülés és normál működését az adatbázist.

És most a legfontosabb dolog)))) Ha automatizálni ezt az eljárást, ott pgcompactor segédprogramot.

Legfontosabb jellemzői:

  • nem igényel függőségek más, mint a Perl> = 5.8.8, azaz egyszerűen másolja pgcompactor a szerver és a munka vele;
  • fut át ​​adapterek DBD :: Pg, DBD :: PgPP vagy akár egy szabványos segédprogram-jét, ha az első kettő a szerver nem rendelkezik;
  • feldolgozza mind külön asztalok, és minden asztal egy táblázatot, adatbázist vagy az egész fürt;
  • kizárhatja adatbázisok, táblák vagy áramkörei feldolgozás
  • hatásának elemzése az infláció és a feldolgozás csak azokat az asztalokat, ahol jelen van, pontosabb számítások, ajánlott telepíteni a bővítményt pgstattuple;
  • elemzési és helyreállítási indexek hatása az infláció;
  • elemzés és újjáépítése egyedi korlátok (egyedi korlátok), és az elsődleges kulcsok (elsődleges kulcsok) a infláció hatását;
  • inkrementális célra, vagyis Akkor megáll az összenyomás feláldozása nélkül semmit;
  • Dinamikus alkalmazkodás a jelenlegi adatbázis terhelést úgy, hogy ne befolyásolja a teljesítményét a felhasználói lekérdezések (azzal a lehetőséggel, kiigazítás az indításkor);
  • ajánlások adminisztrátorok, kész kíséri a DDL, hogy újjáépítsék az adatbázis-objektumok, amelyeket nem lehet automatikusan újraépíti.

Használjon egy pár példa:

futnak minden klaszter újra kell építenie az index:

# Pgcompactor --all --reindex

fut egy külön táblázat (ok újjáépítése indexek):

# Pgcompactor --reindex --dbname geoadat --table városok --verbose info> pgcompactor.log 2> 1

A méret az asztal esett 9,2GB akár 5,6GB. A teljes mérete az összes indexet ról akár 7,5GB 2,8GB

Virtualizálásával linux pgcompactor - feldolgozás dagadt adatbázisok és táblák a postgresql