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í
×
    včera 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 2
    včera 14:11 | Nová verze

    The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.

    Ladislav Hagara | Komentářů: 3
    včera 04:00 | Nová verze

    Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.

    Ladislav Hagara | Komentářů: 0
    19.8. 23:55 | Zajímavý software

    Emacs na stříhání videa? Klidně.

    Ladislav Hagara | Komentářů: 7
    19.8. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    19.8. 13:22 | Zajímavý článek

    Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.

    Ladislav Hagara | Komentářů: 0
    19.8. 04:00 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 2
    19.8. 01:55 | Nová verze

    Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    19.8. 01:33 | Zajímavý článek

    Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.

    Ladislav Hagara | Komentářů: 4
    18.8. 19:33 | Pozvánky

    OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.

    Ladislav Hagara | Komentářů: 6
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (79%)
     (11%)
     (7%)
     (0%)
     (4%)
     (0%)
    Celkem 28 hlasů
     Komentářů: 5, poslední dnes 07:29
    Rozcestník

    Dotaz: postgres - import nekonzistentnich dat

    24.2.2022 14:40 gent
    postgres - import nekonzistentnich dat
    Přečteno: 1502×
    Cau,

    dostal jsem za ukol zmigrovat jednu aplikaci (Python/django+postgres) ze stareho serveru na novy. Na starem serveru bezi postgres 8, na novy server jsem dal postgres 11.

    Pokud na starem serveru dumpnu DB a pokousim se ji naimportovat na novy server, dostavam cca 20 chyb (jde o 2 opakujici se chyby - "duplicate id already exists" a "not a valid UTF sequence") - z cehoz usuzuju, ze jsou chyby (flip bity) na starych discich. Pokud z dumpu smazu "chybove" radky, import se povede a aplikace jede OK.

    Posledni zaloha na starem serveru je ze zacatku roku 2021 - ta je (zda se) "konzistentni" a jde naimportovat na novy seerver bez chyb.

    Tak me napadlo, ze DB postavim tak, ze nejdriv naimportuju "konzistentni" dump z roku 2021 a pak to prezehlim aktualnim dumpem, aby se prihrali jen rozdily/neexistujici zaznamy od roku 2021.

    A tady jsem narazil - jelikoz nejdou pustit 2 dumpy pres sebe tak, aby se dohraly z posledniho dumpu jen neexistujici zaznamy.

    Nemate nekdo nejaky napad, jak toto realizovat? (treba vypnout transakce v dumpu, nebo udelat nejaky specialni dump, ktery bude existujici zaznamy v tabulce ignorovat )

    Na SO jsem nasel "reseni" s pouzitim temp. tabulek, coz se mi moc nelibi a nechavam si to jako posledni moznost.

    Diky za pripadne napady, s PSQL delam jen okrajove ;)

    Odpovědi

    25.2.2022 18:11 j
    Rozbalit Rozbalit vše Re: postgres - import nekonzistentnich dat
    "ze jsou chyby (flip bity) na starych discich."

    To bych dost pochyboval. Chyby budou spis logickyho razu v datech. Je to pomerne typicka vec, kdyz ten kdo dela aplikaci netusi jak funguje databaze. To bys totiz tu tabazi nespis vubec nespustil - kazda aspon trochu svepravna pouziva na datovy soubory minimalne nejaky kontrolni soucty.

    Pokud znas strukturu tak neni problem vadny data prece opravit. Variatne je proste smaznout, v databazich byva hromada historickych dat ktera stejne uz nikdy nikoho zajimat nebudou.

    Takze ... dumpni si zalohu a podivej se, jestli tam jsou ty radky, ktery ti hlasej chybu a porovnej je. Pokud tam vubec nejsou, tak druha moznost je, ze je rucne oprav v tom dumpu. Posledni moznost je samozrejme vyhodnotit ta data jako jiz nepotrebna, a tudiz se bez nich obejit (pro predstavu, to ze si pred 20ti lety nekomu delal nejakou nabidku, a on si pak nic nekoupil, je typicka vec, bez ktery se svet nezbori).

    Samo tady pozor, protoze tim ze ty zaznamy odstranis muzes vyrobit jeste mnohem horsi veci, takze je treba znat strukturu tech dat a co kde na co navazuje.

    ---

    Dete s tim guuglem dopice!
    AraxoN avatar 28.2.2022 14:48 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: postgres - import nekonzistentnich dat
    Postgres v staršej verzii musel mať nejakú bugu, kedy to dovolilo v nejakom okrajovom prípade vytvoriť rovnaké záznamy nad unique indexom. Stretli sme sa s tým niekoľkokrát aj my - dump prebehol v poriadku, import do novej, prázdnej DB, už nie z dôvodu duplicity. Ostalo len manuálne opraviť záznamy. Najskôr som podozrieval pamäte, ale strávil som noc s memtestom v serverovni, bez výsledku. Myslím, že to prestalo, keď sme prešli na PG11.

    Takéto zlučovanie dát všeobecne robím tak, že tabuľku vyexportujem bez restraintov a naimporujem pod iným názvom. Tým mám vedľa seba dve tabuľky s rovnakými stĺpcami a môžem robiť veci ako napríklad:
    INSERT INTO ostra SELECT * FROM zaloha WHERE id NOT IN (SELECT id FROM ostra);
    28.2.2022 15:29 gent
    Rozbalit Rozbalit vše Re: postgres - import nekonzistentnich dat
    Cau, diky za reakce - chyby jsou opravdu v tech primarnich klicich/id, a to ani sebehorsi progy nedokaze rozbit (pokud nepocitam bug, bo "offline" binarni editaci psql souboru - a to urcite nikdo nedelal).

    Nakonec jsem to vyresil tak, ze jsem pg_dump pustil s parametrem "--column-inserts" - to vytvori dump s "INSERTama" na kazdem radku a tim to muzu prezehlit :) takze vyreseno

    Dik

    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.