Sziasztok!
Történetem ott kezdeném, hogy kezeim közé kaptam egy freebsd feelinget, PostgreSQL adatbázissal amit át kell helyeznem egy új debian disztrón futó PostgreSQL -be.
Idáig semmi gond.
pg_dump -al kezdtem neki a dolognak. Elsőként egy 80GB -os adatbázissal kezdtem amiből pg_dump -Fc kapcsolóval kitolt egy 2,xGB -os sql fájlt.
pg_restore -al állítanám vissza.
A kérdésem az lenne, hogy ez mennyire normális :D Arra gondolok, hogy 80GB -ból 2GB?
Nem vagyok nagy DBadmin szóval csak óvatosan a kérdésekkel :D
Ha ez így para, akkor lehet megoldás a pg_dumpall? Azért nem vele kezdtem mivel mivel ha ő nem tömörít akkor valószínűleg nem lesz elég hely a vason.
Előre is köszönöm a segítségeket.
- 3440 megtekintés
Hozzászólások
Mivel nézted meg a db méretét, amit mentettél?
A pg_dumpall nem tömörít magától, de csinálhatod pl. így is:
pg_dumpall | bzip2 >04.bz2
Majd vissza:
cat 04.bz2 | bunzip2 | psql postgres
- A hozzászóláshoz be kell jelentkezni
Ha sok index van a táblán és/vagy sok törlés volt, de nem volt vacuum, akkor lehet az adatbázis sokkal nagyobb, mint a dump. Érdemes megszámolni a táblákban a sorokat - ha eltérés van, lehet hogy jogosultság probléma miatt a dump csak bizonyos táblákat dumpolt, nem mindent.
- A hozzászóláshoz be kell jelentkezni
Nézz bele az sql file-ba ( ekkora file-ba csak a vi / vim -al lehet) és keress olyan sorokat, hogy create index. Na ha ilyet látsz benne, akkor az a 2,x GB bedumpolva lesz az sokkal nagyobb is! Amúgy az előttem írót csak megerősíteni tudom, hogy ha volt benne sok törlés és nem volt autovacuum rajta, akkor ebből adódik még a nagy méretbeli különbség!
Tudsz szerver paramétereket adni ( CPU szám és memória méret elég lesz) mert akkor leírnám neked, hogy milyen beállításokon változtassál a postgresql szerveren, hogy gyors legyen mint a villám!
Csabi
- A hozzászóláshoz be kell jelentkezni
Normális esetben PostgreSQL-ből nem nyomi plaintextbe szokás dumpolni (és nem is az az alapértelmezett)...
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Teljesen normális, hál'istennek a PostgreSQL-esek nem retard módon álltak a feladatnak és csináltak valós körülmények között is használható toolokat. Csak el kellene olvasni az a nyomorék kézikönyvet...
PostgreSQL-nek van "custom" nevű formátuma (--format=custom), amit alapértelmezetten preferál. Ez egy bináris formátum, előnye, hogy sokkal gyorsabb írni/olvasni, illetve tömörített is:
"c
custom
Output a custom-format archive suitable for input into pg_restore. Together with the directory output format, this is the most flexible output format in that it allows manual selection and reordering of archived items during restore. This format is also compressed by default."
http://www.postgresql.org/docs/9.3/static/app-pgdump.html
Ezen kívül egy adatbázis tartalmaz indexeket is, azok viszont bármikor újraépíthetőek a semmiből, azokat értelem szerűen nem menti a dump.
Szerk.: és amit fentebb is említettek: ne a fájlok méretét nézd, mert az önmagában félrevezető: egyrészt törlés esetén pl. nem kerül egyből felszabadításra a hely, hanem csak megjelöli a lapokat, hogy üresek. Erre a vacuum/autovacuum nevű funkciók vannak, amik kiseprik a lemezről a felesleget. Az, hogy mikor fut egy-egy táblára, az változó. Plusz, az sem mindegy, hogy mennyi az indexek mérete, ha sok indexed van, akár több is lehet, mint maga a tábla. Ezek az adatok előkotorhatóak a megfelelő lekérdezésekkel (information_schema és pg_catalog a barátod, de szvsz ilyenre szopkodjon CLI-ben az, akinek hat anyja van), illetve a PgAdmin III kiírja neked többé-kevésbé kulturált formában szépen.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Köszönöm mindenkinek az építő hozzászólásokat.
Az adatbázisok méretét fájl szinten néztem illetve le is kérdeztem:
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database;
Másik kérdésetekre a válaszom pedig az, hogy a visszaállítás sebessége miatt választottam a pg_dump -Fc kapcsolót, az itten:
https://dan.langille.org/2013/06/10/using-compression-with-postgresqls-…
leírtak alapján.
Köszi még egyszer mindenkinek, a visszaállítás rendben leketyegett!
- A hozzászóláshoz be kell jelentkezni
Mindamellett amit a többiek már elmondtak: ha a db-d tele van túlméretezett char (nem varchar!) mezőkkel még nagy törlésdömping se kell ahhoz, hogy egy tömörített img mérete köszönőviszonyban se legyen a származtató db méretével.
- A hozzászóláshoz be kell jelentkezni