Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
rsync /
(pro historii je v cíli btrfs a dělají se snapshoty). Ale pokud tam nemáš LVM/btrfs/něco jiného co umí snapshoty, tak to nebude konzistentní, pokud se konzistence nedá dosáhnout na aplikační úrovni (např. provozuješ aplikace kde jsou soubory v pohodě a databáze se vždy před zálohou dumpne do souboru).
SELECT pg_start_backup('label');
).
Ale snapshot fs je nejlepší nápad.
Dokáže už snapshot FS uviesť databázové transakcie do konzistentného stavu, tak ako databázový backup?To umí od počátku. Není úkolem FS informovat DB, ale slušné DB se dokáží vyrovnat se sestřelením (SIGKILL), výpadkem ele apod. Po startu jsou konzistentní ve stavu poslední potvrzené transakce. FS snapshoty nejsou pochopitelně tak brutální jako výpadek ele, ale o ničem nijak DB neinformují. Snapshoty na zálohování a klonování DB serverů používám už mnoho let (12+let), právě s postgresem a nikdy žádný problém (ani jej nelze očekávat, pokud chce DB splnit ACID, tak musí zachovat konzistenci i durabilitu).
Po startu jsou konzistentní ve stavu poslední potvrzené transakce.?
1) konzistence na urovni FS = soubor je citelny, a nikde ho kus nechybi nebo neprebejva. Presne a POUZE toto, umi zajistit snap.Tohle ti zajistí více věcí, třeba řádně volaný sync fs, flush cache na disky apod. Snap ti především zajistí to nejpodstatnější, že snímek proběhne pro všechny soubory ve stejném čase a tedy nehrozí, že nějaký soubor bude novější, protože se změnil v průběhu klasického kopírování, které probíhá nějaký čas a každý soubor tak obsahuje změny z jiného času. Nejdůležitější vlastností atomického snapshotu, že celý FS zaznamená v jeden okamžik.
Naprosto bezne ti totiz databaze ty posledni zmeny proste zahodi, protoze zjisti, ze jsou nekonzistentni. Vetsinou to nijak zvlast nevadi, ale je to ztrata dat, a prichazi zcela VZDY, pokud nezalohujes konzistentne.Nejedná se o žádnou ztrátu dat. Na DB se commituje neustále, většinu produkčních db není možné odstavit z provozu (a vlastně by bylo dost divné odstavovat službu jen kvůli záloze). Takže buď uděláš pg_dump, který kupodivu bude taky obsahovat pouze potvrzené transakce v době jeho spouštění, nebo uděláš snap FS s databází. Výsledek bude úplně stejný, jen ve druhém případě získáš přímo kopii db serveru. Ale obsah db bude shodný.
Konzistenci na urovni 3) musi zajistit tvurce, prave tim, ze spravne pouziva transakce. Pokud je pouziva blbe nebo vubec, pak to presne podle toho vypada.No jasně, ale tohle nesouvisí vůbec s fs ani s db. Pokud někdo commituje do db změny, které způsobí, že z hlediska jeho business modelu jsou ta data nekonzistentní, tak před tím ho nic nezachrání. Tj pro tuto diskusi irelevantní bod. Transakce slouží pro atomickou transformaci dat z jednoho konzistentního stavu do jiného konzistentního stavu.
Jinak receno, to co delas naprosto PRESNE odpovida tomu, ze server natvrdo vytrhnes z elektriky, a pak cekas, co bude, az ho zas zapnes.To není tak zcela pravda. Po výpadku je samotný fs v nekonzistentním stavu a je potřeba pustit fsck (automaticky při mountu) zatímco v případě snapshotu je ten fs v pořádku. Ale na obsah db to nemá příliš vliv, data db budou ve stavu poslední potvrzené transakce. Takže správná.
KAZDA normalni databaze, pouzivat system log -> data.Ano, a vrátí potvrzení o provedeném commitu tehdy, pokud jsou data v logu. Tedy na fs, který lze snapshotovat.
A KAZDA normalni databaze UMI dokoncit bezici transakce, zapsat je do dat, a presne v tenhle okamzik az do odvolani ZASTAVI zapis do dat, a zapisuje POUZE do logu.Ano, a tohle dělá ten zmiňovaný
pg_start_backup
v případě, že je potřeba kopírovat base soubory, tedy to, co ty nazýváš data, běžnými kopírovacími nástroji.
A PRESNE v tenhle okazik muzes udelat snap.Nikoliv, snap můžeš pořídit kdykoliv. V tento okamžik je možné použít běžné kopírovací nástroje, protože db je ve stavu, kdy nemění base soubory.
Nekdy bezi databaze v rezimu, kdy se prave presne az do kompletni zalohy uchovava v logu vse, co se udalo od posledni zalohy a pri pripadny obnove lze tudiz ukazat i na zcela konkretni transakci a rict ze se to ma obnovit prave az k ni.PG umožňuje odlévat wal logy jinam a na základě starší base backup a uchovaných wal logů potom obnovit db k číslu konkrétní transakce. Psal jsem o tom zde, a existují i prográmky, které to nastavení ulehčí (asi jak pro koho), a psal jsem o tom zde. Prosím povšimněte si data vydání článků před tím, než mi budete psát, že existují i mnohem lepší možnosti.
A pokud to presne takhle nedelas, prijdes o data, jak trivilane snadny.Nepřijdeš, protože db si ukládá wal logy se všemi potvrzenými transakcemi a po např. výpadku proudu vyleje tyhle wal logy do base souborů. Data zůstanou ve stavu poslední potvrzené transakce.
Prijdes o ne v rozahu tech prave bezicich transakci, ktery nejsou kompletne zapsany a tudiz ziskas nekonzistentni databazi, protoze do tech souboru se ty transakce taky nezapisou lusknutim prstu, takze to co se tam prave zapisuje, presne to se pri obnoveni ty databaze (pokud to umi, ne kazda to prezije) zahodi.Nepřijdeš, protože ta data jsou stále v logu. Z logu zmizí až po té, co jsou base soubory řádně upraveny. Tebou navrhovaný log, který by se mazal ještě před tím, než jsou data zapsána do base souborů, by byl dost k ničemu. Ten log je tam právě od toho, aby se do nej zapisovali změny a ty šly potom zapsat do base souborů.
A ne, ZADNA normalni databaze nepotvrzuje transakci az po zapisu na disk, protoze to, jestli se vubec neco na disk zapsalo ani nemuze vedet, a navic by tim padem byla zcela nepouzitelne pomala.Každá acid databáze potvrzuje transkaci až po zápisu na disk a právě proto je tak pomalá. wal logy se používají z důvodů, že úprava base souborů je pomalejší, protože jejich struktura je stavěná zejména na rychlé vyhledávání, takže se změny nejdříve logují do linerární sekvence logů, kam stačí jen rychle appendovat a flushnout. Až následně se jejich obsah (který je ale v běžném běhu db v paměti, takže se již nečtou z disku), hromadně vyleje do base souborů. Na tohle ale už klient nemusí čekat.
Stejne tak ti zadnej normalni disk, nepotvrdi to, ze data jsou na plotne, ale pouze to, ze je ma v cache.Write cache se u disků vypíná. Jinak hrozí rozsypání nejen DB, ale i celého fs. Právě na to, že některé disky vracejí potvrzení zápisu jen po nalití do write cache, se přišlo během vývoje fs typu btrfs nebo zfs. Tyto fs potřebují mít spoleh (zejména v multidevice konfiguraci), že data, která mají být zapsána, skutečně zapsána jsou. Tímto se tedy přišlo na vadný HW.
Jinak receno, to co delas naprosto PRESNE odpovida tomu, ze server natvrdo vytrhnes z elektriky, a pak cekas, co bude, az ho zas zapnes. Presne takhle vypadaji tvoje "zalohy".Ano, přesně tak to dělám, a myslím si, že je to v pořádku. Aplikace by se snad měla umět vypořádat s náhlým ukončením (výpadek elektřiny, pád operačního systému), ne?
Takýmto hazardom prídete minimálne o transakcie ktoré boli potvrdené, ale ešte sa z RAM nedostali na disk. Ale chápem že to je pri spiacich DB serveroch minimáne riziko.Pokud to admin o svém databázovém produktu ví, tak jistě nebude používat diskové snapshoty. DB, se kterými pracuji já (tzn primárně postgresql), potvrzuje transakce až po té, co jsou zapsány na disku. A docela by mě zajímal seznam db produktů (sql, relační, acid), které potvrzují klientům transakce jen na základě přijetí dat do paměti. Toto automaticky nesplňuje durabilitu.
No neviem, ja som pričuchol ku databázam niekedy okolo roku 97, a zálohovaním som sa priamo živil len 15 rokov. Takže obdivujem vašu prax, odvahu, a postoj ku zvereným dátam.Já jsem jenom 12 let provozoval tisíce služeb a několik desítek db o objemu několik TB v režimu licence/akreditace dle zákona v certifikovaném prostředí. Bez výpadku, bez jediného incidentu, bez jediné ztráty dat způsobeným selháním serverů nebo záloh.
naozaj podľa vás bude v Informixe fungovať tá vaša rada s zálohovacou funkciou s PostgreSQLJá jsem o Informixu nenapsal ani slovo a vůbec jsem se k němu nevyjadřoval.
Pokud to admin o svém databázovém produktu ví, tak jistě nebude používat diskové snapshoty.
Ale snapshot fs je nejlepší nápad.Mám rád ľudí s vysokou dávkou sebareflexie.
Bez výpadku, bez jediného incidentu, bez jediné ztráty dat způsobeným selháním serverů nebo záloh.V tom prípade ste dieťa šťasteny. Pozdravujte mamičku, asi sa o vás príkladne stará.
Já jsem o Informixu nenapsal ani slovo a vůbec jsem se k němu nevyjadřoval.Túto vetu nerozporujem, ale dávam do pozofnosti fakt že sa jedná o otázku viazanú na Informix. Takže odpoveď s radou na štart PostgreSQL backupu je viac ako bezcenná.
Túto vetu nerozporujem, ale dávam do pozofnosti fakt že sa jedná o otázku viazanú na Informix. Takže odpoveď s radou na štart PostgreSQL backupu je viac ako bezcenná.Jistě jste si stačil všimnout, že zdejší diskuse mají stromovou strukturu a že jsem nereagoval na tazatele, který navíc ve svém dotazu informix nespecifikuje, ale že reaguju na komentář od Jendy (který sám uvádí na zálohovaném serveru použití snapshotů) a doplnil jsem jej v tom, že některé db produkty lze uvést do stavu vhodného i pro použití kopírovacích nástrojů a pro příklad jsem uvedl příkaz z PGSQL. Ale váš zájem o tuto diskusi je evidentně zcela jiný. Je to škoda, protože jste místo osobních výpadů mohl uvést db produkty, které mají jiné vlastnosti a uvést jejich specifika a náležitosti třeba k zálohování.
rsync -HXS --numeric-ids -avzhPe ssh --exclude /proc --exclude /sys --exclude /run --exclude /tmp --exclude /dev root@stroj:/ /mnt/backup
a hotovo, ne?
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 558.9G 0 disk └─sda1 8:1 0 558.9G 0 part ├─rhel--raid1-max_maxp_spool 253:9 0 8G 0 lvm /max/maxp/spool ├─rhel--raid1-IDSLOGS 253:10 0 32G 0 lvm /IDSLOGS └─rhel--raid1-data1 253:11 0 518.9G 0 lvm /data1 sdb 8:16 0 1.7T 0 disk ├─sdb1 8:17 0 1023.8M 0 part /boot/efi ├─sdb2 8:18 0 2G 0 part /boot ├─sdb3 8:19 0 1.6T 0 part │ ├─rhel--raid5-root 253:0 0 32G 0 lvm / │ ├─rhel--raid5-swap 253:1 0 16G 0 lvm [SWAP] │ ├─rhel--raid5-home 253:2 0 2G 0 lvm /home │ ├─rhel--raid5-var 253:3 0 12G 0 lvm /var │ ├─rhel--raid5-tmp 253:4 0 4G 0 lvm /tmp │ ├─rhel--raid5-max 253:5 0 16G 0 lvm /max │ ├─rhel--raid5-max_maxp_homes 253:6 0 12G 0 lvm /max/maxp/homes │ ├─rhel--raid5-IDSDATA 253:7 0 120G 0 lvm /IDSDATA │ └─rhel--raid5-data2 253:8 0 1.4T 0 lvm /data2 └─sdb4 8:20 0 54.5G 0 part └─rhel--raid5-max_maxp_homes 253:6 0 12G 0 lvm /max/maxp/homesrsync vyzkouším
Můj typický server obsahuje všechny tyto vrstvy. Obvykle mám uložené poznámky jak jsem to instaloval, případně rovnou skript. Ale chtěl bych to umět nějak vytáhnout z živého systému pro pozdější (polo)automatickou obnovu. Protože v průběhu provozu toho serveru se třeba disky přidávají, a do instalační dokumentace se to třeba zapomene doplnit.A ten nový server, na který se to bude obnovovat, bude mít konfiguraci disků jinou… Lepší je to obnovit ja kse hodí a pak upravit fstab (a crypttab pokud je to šifrované). Všechno ostatní (LVM, MD a příslušné nastavení GRUBu) se minimálně na Debianu detekuje automaticky při update-initramfs a update-grub.
Tiskni
Sdílej: