abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 06:00 | Nová verze

Byla vydána nová major verze 3.2.1 (verze 3.2.0 byla přeskočena) programu na úpravu digitálních fotografií darktable (Wikipedie). Podrobný přehled novinek i s náhledy v příspěvku na blogu. Videoprezentace na YouTube.

Ladislav Hagara | Komentářů: 0
včera 17:22 | Komunita

Richard Hughes, hlavní vývojář projektu LVFS (Linux Vendor Firmware Service), jenž umožňuje aktualizace firmwarů zařízení na počítačích s Linuxem, se na Twitteru ptá, zda přistoupit na požadavek jednoho velkého výrobce hardwaru a před aktualizací jeho firmwarů požadovat po uživatelích schválení EULA. Jedná se o první takový požadavek.

Ladislav Hagara | Komentářů: 13
včera 14:33 | Nová verze

Byla vydána nová verze 1.9.0 multiplatformního frontendu k emulátorům, herním enginům a multimediálním přehrávačům RetroArch (Wikipedie). Přehled novinek i s náhledy a videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
8.8. 15:55 | Komunita

Free Software Foundation (FSF, Nadace pro svobodný software) publikovala nové video s názvem The University of Costumed Heroes. Jedná se o součást kampaně za používání svobodného softwaru při distanční výuce.

Ladislav Hagara | Komentářů: 35
7.8. 13:33 | Zajímavý projekt

Vývojáři přenosného počítače Pocket Popcorn Computer (Pocket P.C.) (zprávička) informují na svém blogu, že návrh hardwaru zveřejnili na GitHubu pod licencí CC BY-SA 3.0 US.

Ladislav Hagara | Komentářů: 9
7.8. 08:00 | Zajímavý článek

David Revoy, autor mj. komiksu Pepper&Carrot, zveřejnil novou iteraci své instalační příručky pro použití Kubuntu, nyní 20.04, jako grafické pracovní stanice.

Fluttershy, yay! | Komentářů: 8
7.8. 02:00 | IT novinky

Počátkem roku někdo odcizil z Intelu několik GB citlivých dat. Prvních 20 GB bylo zveřejněno [Hacker News, ZDNet].

Ladislav Hagara | Komentářů: 15
6.8. 19:33 | Nová verze

Bylo vydáno Ubuntu 20.04.1 LTS, tj. první opravné vydání Ubuntu 20.04 LTS s kódovým názvem Focal Fossa. Přehled novinek v poznámkách k vydání a v přehledu změn. Součástí oznámení je infografika Ubuntu od 2004 do 20.04 LTS (png).

Ladislav Hagara | Komentářů: 0
6.8. 18:00 | Pozvánky

MojeFedora.cz upozorňuje na letošní Flock aneb letošní online konferenci zaměřenou na přispěvatele do Fedory. Konference probíhá od zítra 7. srpna do neděle 9. srpna, viz program.

Ladislav Hagara | Komentářů: 4
6.8. 15:00 | Nová verze

Po půl roce od vydání verze 2.31 byla vydána verze 2.32 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (11%)
 (13%)
 (56%)
 (16%)
 (5%)
Celkem 218 hlasů
 Komentářů: 14, poslední včera 19:58
Rozcestník

Dotaz: Upgrade PostgreSQL

2.10.2012 10:02 Milan Kozák
Upgrade PostgreSQL
Přečteno: 1049×
Ahoj, řeším problém aktualizace/přenosu PostgreSQL databáze. Na stávajícím 32bit. virtuálním serveru s Debianem 5.0.10 mám PGSQL 8.13.17. Tuto bych chtěl přenést na nový virtuální 64bit server s aktuálním Debianem a PGSQL řady 9.

Jak správně postupovat? Jak celou opraci provést v co nejmensím časovém okně?

Databáze obsahuje několik desítek miliónů záznamů a má velikost cca 120GB.

Předpokládám, že nejčistší způsob bude zaktualizovat 32bit Debian, udělat pg_upgradecluster && pg_drop_cluster (což bude na pár hodin) a následně db dumpnout a naimportovat na 64bit (což bude opět na pár hodin)?

Existuje nějaký rychlejší/efektivnější způsob jak to udělat (např.: Slony)? Nějaké rady na co si dát pozor? Děkuji.

Řešení dotazu:


Odpovědi

2.10.2012 11:29 mfo
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Moja otazka je, kedze ides z 32 bit na 64. ide to tak ako si napisal? Nebude najlepsie pouzit export zo starej DB -import na novy server. Vyhody: ak sa nieco pokasle, stale mozes zapnut stary server. Mozes testovat kolko ti to bude trvat, ake chyby nastanu atd. Ak mas testovaci server. Ak nie, nezabudni na backup. ( v pripade virtualky je to len snapshot). Nezabudni si hlavne pozriet je upgrade z verzie 8.13.17 podporovany na verziu 9.XX.XX

Br, mfo.
2.10.2012 15:48 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Na MySQL bych to takto s klidem udělal. PostgreSQL ovšem zase až tak neznám, takže se radši ptám.V oficiální dokumentaci je jednou doporučovaný pg_dump/pg_dump_all, podruhé píšou že je lepší přecházet pomocí pg_update_cluster a potřetí že je možné použít pg_upgrade (beru-li v potaz stejnou architekturu). Vyzkoušet se samozřejmně dají všechny postupy nicméně se mi nechce - nechci generovat zvýšený load databáze (zálohováním či IO operacemi), nechci nad tím trávit desítky hodin času a navíc nevím jak bych ve finále ověřil konzistentnost dat. Proto hledám někoho, kdo se s tím už trápil a může doporučit ten správný postup.
2.10.2012 12:36 SPM | skóre: 28
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Podle mě by ten upgrade neměl být potřeba. Mělo by stačit udělat dump, přenést na nový server a naimportovat. Tohle se dá i vyzkoušet bezvýpadkově (dump by neměl běh db ovlivnit). Pro zvýšení výkonu co si pamatuju se doporučovalo místo pg_dumpall použít pg_dump po db a importovat ve více threadech naráz.
2.10.2012 15:57 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Podle mě by to mohlo jít také, ale jak jsem psal výše - hledám zkušenosti někoho kdo to už dělal. Navíc bych rád věděl, co je rychlejší - zda-li udělat pg_update_cluster nebo pg_dump/pg_restore (případně něco zcela jiného). Předpokládám, že pg_update_cluster by měl být rychlejší (IMHO se pouze mění struktura) zato pg_dump/restore by měl trvat řádově déle kvůli vytváření indexů. Jsou to ale jen moje ničím nepodložené doměnky. Otestovat to mám problém - update_cluster bez výpadku neudělám a u pg_dumpu mi začne po chvíli lézt load tak vysoko, že db nestíhá odpovídat aplikaci v požadovaném čase.
2.10.2012 16:57 SPM | skóre: 28
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
s pg_update to určitě rychlejší nebude, protože po tom updatu je stejně třeba udělat dump a přenést ho na druhý server. Teoreticky by stačilo přenést jen upgradlé datové soubory, ale u rozdílných architektur mi to nepřijde jako moc dobrý nápad...
okbob avatar 3.10.2012 08:50 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Existuje několik možností - 1. Postgresovou klasikou: pg_dumpall > dump; psql < dump - to je nejrobustnější a nedá se na tom co skazit, 2. pg_upgradecluster je debianí záležitost (nic o tom nevím), 3. nově pg_upgrade http://www.postgresql.org/docs/9.2/static/pgupgrade.html

Nejrychlejší je pg_upgrade - což je on-place upgrade - ale funguje to od jistých verzí - žádnou 8.13.17 neznám. A určitě to chce zálohovat! Po upgrade není jednoduchá cesta zpět.
3.10.2012 16:47 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Děkuji za Vaši odpověď. S verzí databáze jsem se uťukl - správně je:
portal:~# dpkg -l | grep postgresql-8
ii  postgresql-8.3                           8.3.17-0lenny1             object-relational SQL database, version 8.3
Co se týče dumpu, mám v něj také největší důvěru ale na druhou stranu tím způsobím asi největší výpadek. U pg_upgrade jsem někde na stránkách PGSQL četl že není zdaleka tak odladěný a že se příliš nedoporučuje (možná už to neplatí pro nové verze). Ani u 9 řadky to ale není úplně bezproblémů -vizte např.:
F.32.4. Limitations in Migrating from PostgreSQL 8.3

Upgrading from PostgreSQL 8.3 has additional restrictions not present when upgrading from later PostgreSQL releases. For example, pg_upgrade will not work for a migration from 8.3 if a user column is defined as:

    a tsquery data type

    data type name and is not the first column

pg_upgrade will not work if the ltree contrib module is installed in a database.

You must drop any such columns and migrate them manually.

pg_upgrade will require a table rebuild if:

    a user column is of data type tsvector

pg_upgrade will require a reindex if:

    an index is of type hash or GIN

    an index uses bpchar_pattern_ops

Also, the default datetime storage format changed to integer after PostgreSQL 8.3. pg_upgrade will check that the datetime storage format used by the old and new clusters match. Make sure your new cluster is built with the configure flag --disable-integer-datetimes.
Marně očekávám, že se zde objeví někdo, kdo obdobnou operaci prováděl například pomocí Slony, kde to snad jde udělat de-facto bez výpadku. V každém případě díky za připomínky všem diskutujícím.
okbob avatar 3.10.2012 17:01 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Tak jako tak doporučuji si upgrade vyzkoušet - někde bokem - mezi 8.3 a 9.1 je několik nekompatibilit a také byly odstraněny některé deprecated funkce. Takže si vyzkoušejte upgrade, a vyzkoušejte si, jak Vám pojede aplikace s novou verzí databází

okbob avatar 3.10.2012 17:12 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Import dumpu se da urychlit nastavenim
fsync=off
maintenance_work_mem=256MB
Ale tohle je pouze pro import! - v pripade havarie hrozi poskozeni db

17.10.2012 09:40 Hlipa
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Pavle bod 3) nefunguje kvuli binarni nekompatibilite 32bitove a 64bitove verze postgreSQL. Nelze totiz obecne pustit 64bitovou binarku nad databazi, ktera byla vytovorena 32bitovou binarkou.
7.10.2012 21:23 dik
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Me se osvecil tento postup:
  1. rsyncnu si mezi oldserver a newserver /var/lib/pgsql (databáze jede,pouziju vhodny --bwlimit ať nepřetížím IO na oldserver)
  2. zastavím databázi a udělám finální poslední rsync - mám přenesené konzistentní soubory a je to hned)
  3. na novém server použíju pg_upgrade s volbou hardlink (nic se nekopíruje, je to hned)
  4. spustím novou databázi a du na pivo
nicméně z důvodu lenosti a pokud to okolnosti dovolí nejraději používám pg_dumpall přes ssh pipu na nový stroj :-) Dik
9.10.2012 16:54 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Díky za reakci. Co se týče kopie databáze, tak rsyncem to takto u "větších" DB nejde, protože se poměrně rychle mění velké množství dat. U mě by musel být i při záloze na disk vyplý PG několik minut. Vyřešil jsem si to tak, že databázi mám na oddílu s LVM. Stačí ji na vteřinu zastavit, udělat snapshot a následně data rsyncovat. Předpokládám ale, že až bude databáze skutečně velká, nebude možné tento postup z výkonostních důvodů používat. U pg_upgrade jsem parametr link přehlédl - díky za něj - nicméně to IMHO neřeší problém se změnou architektury. Popravdě ani moc nevěřím, že to bude hned - změna schématu (při povýšení) určitě nějaký čas zabere, ale určitě to vyzkouším.

Heron avatar 9.10.2012 20:32 Heron | skóre: 52 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Na LVM snapshot pozor. Zapis je potom nehorazne pomaly (v mem domacim mereni az 10x). Tak aby sis tim nakonec neodstavil app, kterou chces proti odstaveni chranit.

Z me praxe plyne, ze je casto lepsi a rychlejsi udelat dobre pripravenou planovanou odstavku, nez potom resit rozbity stav po nejake partyzanske akci. Proto se primlouvam za overenou cestu dump a restore.
9.10.2012 21:11 dik
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
...tak tak, výkon lvm snapshotu je naprosto zoufalý, (prý na tom RH pracuje), snapshot na btrfs je jiné kafe, ale do produkce se zatím nehodí, maximálně tak na backup server.

Varianta s rsync je naprosto bezpečná rychlá , prostě si data předopíruješ ze živého serveru a finálně přenášíš jen malé rozdíly...

Dump,restore je jistota..

Dik

11.10.2012 16:38 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
...tak tak, výkon lvm snapshotu je naprosto zoufalý, (prý na tom RH pracuje),
Toho jsem si vědom a dokonce jsem to v tom odstavci napsal. Pro mě je to zatím v pohodě. Zálohy se dělají v noci, kdy v aplikaci pracuje minimum lidí. Navíc rsync snapshotu trvá v průměru 130minut (a pak ji automaticky mažu). Výkonově zde zatím problém nemám.
snapshot na btrfs je jiné kafe, ale do produkce se zatím nehodí, maximálně tak na backup server.
Ono BTRFS se s PGSQL vůbec nemá (nemělo) rádo. Když jsem ho naposledy testoval tak se mi téměř trojnásobně snížil výkon databáze
Varianta s rsync je naprosto bezpečná rychlá , prostě si data předopíruješ ze živého serveru a finálně přenášíš jen malé rozdíly...
Vidím to stejně. Ještě udělám pár testů na nečisto a pak poreferuji jak jsem dopadl...
Řešení 1× (ZAH)
21.10.2012 08:21 Milan Kozák
Rozbalit Rozbalit vše Re: Upgrade PostgreSQL
Takže jsem asi hotov. Na testovacím stroji se mi nejvíce osvědčila metoda pomocí klasického pg_dump a psql. Abych data nemusel komprimovat a přenášet, pomohl jsem si netcatem. Jelikož jsem to dělal v rámci dvou virtuálů na stejném stroji doma na stole, neřešil jsem bezpečnost. V ostatních případech by bylo záhodno vyměnit netcat například za ssh.

Na novém virtuálním serveru (netcat traditional):
nc -l -p 12345 | psql -f - fueltrack

Na starém virtuálním serveru (openbsd netcat):
pg_dump databáze | nc 10.0.0.2 12345

Rychlost v pohodě, data konzistentní, takže radost. Děkuji všem a diskusi můžeme uzavřít.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.