Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.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 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Ani nevím, co by v tomto případě mělo vadit.Nevím, zda to vadí, ale za ty roky jsi tady odkryl poměrně značnou část infrastruktury, její slabiny (potenciální SPOF) a tak. Toho by mohl někdo zneužít.
Každopádně nezveřejňuji cenyProč? To je nějaké tajemství?
Předpokládal bych, že se Oracle snaží zákazníka pumpnout, co to jen jde. Povolit zveřejnění té částky by bylo v rozporu s takovou strategií.Pak by mě zajímalo jak to dělají u veřejných zakázek kde je to zveřejňovaní faktur povinné a ještě se to musí nějak na oko vysoutěžit. Zlatá Veřejná správa, že?
Zvlastni efekt je, ze zakon, ktery po CEO pozadoval zverejeni jejich prijmu naopak misto ocekavaneho snizeni vedl k zvyseni, protoze si pak manageri mohli lepe vybirat.To je myslim fake news. V Norsku jsou danova priznani verejna (a tudiz je verejna i kompenzace), a zadny takovy efekt tam nepozorujeme. Navic i teoreticky je celkem jasne, ze po zverejneni cen by se cena snizila. Oracle zna vsechny ceny svych zakazniku, zakaznici ne. Kdyby cena mela vzrust, znamenalo by to, ze Oracle ted neco nekomu prodava pod trzni cenou, cemuz je tezke uverit.
Kolik máte řádově vývojářů? Jednotky, desítky, stovky?
A ani není v plánu to nějak řešit, všichni jsou s Oracle spokojený.A to ani po tomhle účtíčku za tu útratičku?
Takže je možnost utratil 100litrů na kravinu (což si nepochybně vybere většina SVJ) nebo se zkusit jít soudit s tím, že vy taháte za kratší konec provazu.No kdybyste to dotáhl k Ústavnímu soudu, možná by zabrala argumentace, že zákony vám nařizují dodržování norem, tudíž by se na normy mělo pohlížet jako na zákony a měly by být veřejné.
Piráti nějak prosadili stavební normy zdarmaSkutečně? To by k tomu ÚS mohli jít sami, když mají poslance ve sněmovně...
možná by zabrala argumentace, že zákony vám nařizují dodržování noremTato argumentace by právě nezabrala. Normy jsou pouze doporučení a nikoliv (zákonná) povinnost. Problém je, že pokud něco neodpovídá normě, tak to třeba pojišťovny nepojistí (nebo ještě lépe, pojistí a následně neplní), nedostanete záruku na nějaké zařízení apod. Takže je to takový stav, kdy to všichni dodržují, protože to cítí jako povinnost, má to nesporné výhody (bezpečnostní), ale povinnost daná zákonem to není. Tento stav mnoha subjektům nepochybně velmi vyhovuje (krom těch, kteří jsou na tom biti, jenže většina z nich si to ani neuvědomuje) a politická vůle to změnit je docela nulová.
Zaškolení a zkoušku je povinna zajistit organizace. Obsah a délku zaškolení stanoví organizace s ohledem na charakter a rozsah činnosti, kterou mají pracovníci vykonávat. Dále je povinna zajistit nejméně jednou za tři roky jejich přezkoušení.No, takže se nic nezměnilo. Zajišťuje organizace.
Antonín Rovný (@antoninrovny): Hmm, 21. první století a právo je stále nevymahatelné. Možná při současné rychlosti vydávání stavebních povolení mnozí investoři ale prostě nemají jinou možnost. #černéstavby #čechystánA nyní infinite scrollem plynule přejděme k dalšímu článku.
Kdyby se neco stalo, tak jsem si jisty, ze domaci z toho problemy nema.Zákony vykládá soud a ten určuje míru zavinění konkrétní osoby.
A v roce 1970 se RCD nevyžadovaly a běžně se instalovala sít TN-C.Já už mám taky dobrou deformaci, čtu "nebyla zapojená zem", chápu "kolík ve vzduchu".
Nejsem si jist, zda pronajímatel má povinnost provádět pravidelnou revizi (podle někoho ano, podle někoho ne).Kdo myslis ze tam tu elektroinstalaci zbastlit :).
Takže ano, v zásadě nic nikomu nezakazuje si udělat vlastní instalaci, ale současně tím na sebe bere všechna rizika s tím spojená, včetně těch trestně právních.No jasně, ale to platí ve všem - když nechám špatně zabržděné auto v kopci, tak taky nesu odpovědnost za to, když se rozjede.
Zkouška z vyhl. 50 se (pokud se něco nezměnilo) nedělá na fyz. osobu ale je platná jen po dobu, kdy je daný pracovník zaměstnancem určité firmyDivný my jsme dělali na střední nějakou vyhlášku (asi 50 co jinýho) jako celý ročník (maník nám prakticky diktoval odpovědi
maník nám prakticky diktoval odpovědiNjn. To stejné je třeba "školení" BOZP a PO ve firmách. Pro forma. Veškeré školení se sestává ze závěrečné zkoušky a předání certifikátu o školení.
jsem si už tak rok předtím hrál s teslákem na >100kV (myslím že až 6cm blesky)Tak na to snad ani žádná norma neexistuje
Takže tady je to vyloženě jen na vlastní pěst.Ja ho přinesl i do školy, jednička zadarmo
maník nám prakticky diktoval odpovědiTy se tomu smejes, ale ty dementi by to jinak nedali ... a od tehle dementu pak musis mit ten stempl.
Nebo tu panuje nějaké přesvědčení, že používáme nějaký speciální hw?V serverech se nevyznám, ale bral jsem to pesimisticky, že se určitě nasáčkujou i do HW. Jinak Oracle koupil Sun a ten si vlastní HW vyráběl.
A jak by to vyřešilo, že všechno, co se u nás vyvíjí je silně vázáno na Oracle?Proto se ptám, zda nebude levnější se z Oracle vyvázat?
Dokonce několik zákazníků, kteří původně chtěli RHEL a dostali jej, potom požádalo o přechod na CentOS, protože se jim nechtělo platit licence.
U RHEL se platí za licence?
Změnit takto rozjetý vlak je pak už dost těžké.Já asi nemám to správné obchodní myšlení. V téhle situaci, kdyby přede mě Oracle předhodil tenhle drahý bastl, k tomu podmínky, jak to smím provozovat, to všechno s jejich customer-unfriendly přístupem, tak bych se na ně vysral už jenom proto, abych si nepřipadal jako debil.
hodně toho má Oracle popsáno v jejich uzavřené KB pro platící zákazníky
Připomnělo mi: Master Foo and the MCSE
V roce 2004 už jsou dbf soubory opravdu velké a práce s nimi silně nepohodlná a dochází k lockům. MS nemá co se týče stability dobrou pověst. Oracle vypadá jako dobrá volba. MS usnadňuje přechod z DOSu na windows pomocí Visual FoxPro. Jako dobrá volba vypadá přechod z FP na VFP a z dbf na Oracle
Když přejdeš z extáze na herák, tak ti taky chvíli bude dobře. S proprietárním softwarem je to podobné.
Ano, je třeba se na to dívat z té lepší stránky :-)
Ostatně psal jsem tu už před lety… A vlastně není moc důvod se nervovat s tím, jak mají dvě cizí firmy mezi sebou nastavené vztahy a že jedna obírá druhou.
Když přejdeš z extáze na herák, tak ti taky chvíli bude dobře. S proprietárním softwarem je to podobnéPrvne, tohle prirovnani je neuveritelne hloupe. Caste brani MDMA neni dobry napad, ma napr. za nasledek "vycerpani" serotoninu (a efekty podobne depresi), mozny serotoninovy syndrom (v kombinaci napr. s SSRI), ne fyzickou zavislost. Vetsina lidi, co prejde na heroin, presla z opioidu na predpis (protoze je to levnejsi/jednodussi nez ziskavat dalsi predpis na "legalni" opioidy). Mechanismus akce je taky velmi rozdilny, MDMA cili na serotonin, opioidy (ty ktere, vyvolavaji zavislost), na mju a delta opioid receptor (ty zpusobuji "feel good" efekt; co se moc nevi verejne, je, ze agonisti mju receptoru taky "docasne leci depresi", coz je duvod, proc se na to lidi namotaji - ze si "samoleci depresi"). Z opioidu ziskate fyzickou zavislost velmi, rychle, i po 3 tydnech uzivani nekolikrat denne. Abstinencni priznaky od opiatu vam aktivuji vsechny receptory bolesti, takze zjistite, ze vas boli i veci, ktere jste netusili, ze vas muzou bolet, napr. pocit, ze se vam delaji diry v kostni dreni. Technicky lze brat heroin dlouhodobe "bez vytvoreni fyzicke zavislosti", pokud si ho dat dejme tomu 1x po 4 dny a pak si dejme tomu 4 dny nechate na to, aby se "zresetovala tolerance" (to je duvod, proc ze zacatku se lidem zda, ze nejsou zavisli a pak to zjisti az pozde). Stejne budete citit slabe abstinencni priznaky (podobne chripce, hot/cold flashes, prujem, nechutenstvi...) ale to je nic oproti plnym abstinencnim priznakum. (Proto i prekupnici "bileho masa" a ve veznicich s "teroristy" se lidi snazi(li) udelat sve vezne zavisle na opioidech). Jeden z velmi znamych bezne volne prodejnych leku proti hnacce - Imodium (Loperamid) - je taky opioid. Duvod, proc se nezneuziva, je, ze neprochazi barierou mezi mozkem a krvi - tj. nezpusobuje "feel good efekty" (ale zrejme dlouhym uzivanim byste si zpusobili zavislost, ma vsechny ostatni znaky opioidu, coz je vlastne duvod, proc se pouziva proti hnacce). Jsou opioidy, ktere nevytvari zavislost, naopak ji potlacuji, nebo lze nimi odvratit predavkovani opioidy, a taky se pouzivaji pri alkoholizmu (Naloxon, Naltrexon; mju a delta opioid receptor antagonisti) Zpatky k databazim A zpatky k databazim - jaky je duvod kupovat Oracle misto treba Postgresu se supportem (nebo jine DB), pokud jiz nejste zasazeni vendor-lock-inem? Vykon (kdyz tak nejaka studie)? Nebo nejaka featura, ktere jine DB nemaji?
Díky za přednášku :-) Radši se nebudu ptát, proč nosíš tyhle znalosti v hlavě.
Tj. mate Oracle jako substitucni lecbu, z ktere je jeste horsi abstak :)
Ano, to jsem se tím snažil říct, i když příklady konkrétních drog asi nebyly nejvhodněji zvolené.
Nějaký feature list Oracle je zde : Feature Availability by Edition
Jenomže to jsou všechno featurky z admin pohledu, pohled ze strany vývojáře a výkonu mám nulový.ale pokud už je někdo ve špatně rozjetém vlakuTak by měl pracovat na tom ten vlak co nejdřív bezpečně zastavit a nikoliv ještě přikládat pod kotlem.
RAC (více serverů se stejným úložištěm / jednou db)Ano a jak skvěle to může dopadnout jsme viděli u Alzy a nejen tam. Tohle řešení jsem nikdy nepochopil (tváříme se, že jsme vyřešili SPOF na straně DB, protože jich máme víc a nevidíme SPOF na straně toho jednoho úložiště). Navíc z mé zkušenosti (která nic neznamená), úzké hrdlo je vždy na straně rychlosti úložiště a nikoliv CPU. Takže pokud jeden DB server nestačí, tak dva DB servery nad stejnými disky už tuplem nestačí. Pochopitelně pokud někdo do DB nastrká hromadů CPU náročných procedur (nic proti tomu), tak více serverů může pomoci.
nevím, zda má postgres možnost inkrementálních záloh / podporu CBT pro zálohyKlasické binární logy, když se to dobře nastaví, tak failover může být v řádu sekund.
paralelní export / import db + možnost právě binárního export/importu (mnohem rychlejší)Nevím co tím konkrétně myslíš, ale PG se umí uvést do stavu, kdy můžeš standardními nástroji vzít ten datový adresář a překopírovat jinam. DB mezitím běží dál. Existuje i nástroj
pg_basebackup
, který tohle umí i po síti, (pokud se někdo nechce zabývat rsyncem). Ten dotáhne i binární logy a replika je na světě. Je to tak rychlé, jak jen disky a sít dovolí.
oracle má podporu snapshotů, kdy lze díky dostatečně velké flash recovery area vytvářet snapshoty a vracet se v čase bez šachování s obnovou/restore/transakčními logy, vhodné na nějaké backup /standby db, nebo třeba před upgradem struktury db kvůli nějaké nové app, co jí používá (aplikace nefunguje/něco selže, vrátíme se zpět).PG má transakace i na změnu schématu, takže před vytvořením nové table si lze udělat savepoint.
In-memory cachováníŘeší OS.
virtualizace databází díky Plugable DB featurce / multitenantCo to je?
pak nevím, na jaké úrovni je Postgres s šifrováním, ACL na úrovni sloupečků, nebo i řádkůMluví se o tom, ale tohle jde mimo mě, nesleduji to.
taktéž nevím, jak je na tom Postgres s úrovní auditování přístupů do konkrétní části dbNevím co to je "konkrétní část db", ale nezní to jako něco z konceptu normálních forem. PG může logovat kde co všechno, klidně úplně každý dotaz, ale nevím, zda je to odpověď na dotaz.
taktéž nevím, jak je na tom podpora kompreseObecně řeší FS. PG transparentně komprimuje rychlou kompresí (LZ4) všechny fieldy s velikostí nad určitý limit (tuším 2kB, ale nechci kecat).
Podpora NFS (dNFS) 4.1 přímo v OracleDBSuper
In-memory cachování
Řeší OS.
Existují přímo i produkty,Jo, to jde v PG taky, kdysi jsem napsal reportáž z P2D2, kde někdo představoval appku napsanou v podstatě jen z uložených procedur a na to se rovnou připojoval relativně lehký klient. Veškerá logika v DB.
Každopádně není to jen o výkonu, ale i o odstávkáchTo jistě, pokud má někdo dobře nastavený failover a dokáže přepnout dostatečně rychle master, lze to i v PG.
mluvím o zálohách db jako takovýchJenže záloha DB se dá dělat mnoha způsoby. Udělat snapshot toho block device a zálohovat ten. Udělat logickou zálohu (do SQL), udělat zálohu base + binární logy. Nebo kombinace toho všeho. PG jako takový neumí (pokud vím) oznámit, které bloky se mu od minula změnily (CBT). Na druhou stranu existují nástroje (pgbarman), které umí dělat inkrementální zálohy (rsync) a není nutné dělat recovery všech binlogů za minulé období. Ale jako jasně, je to prostě rsync a cbt to nemá. Na druhou stranu, pokud tohle umí FS, tak proč by to měla umět db.
Paralelní import/export znamená, že export/import běží paralelně v několika vláknech, což v jistých situacích může značně urychlit celý proces.pg_dump a pg_restore paralelní dump a import umí též. Docela to pomáhá zejména při vytváření indexů po importu.
Nemůže řešit OS, se na tu fci podívej.Aha, fakt nemám čas studovat 44 stránkový manuál, reagoval jsem pouze na tvůj text. Takže se jedná o in memory db, to pg sice nemá, ale má unlogged tables, které se nelogují (
protože některé věci sdílejíOpět, tu funkci jsem nestudoval, ale netuším, co by se mohlo u DB sdílet. Už jen dvě oddělené databáze toho příliš ke sdílení nenabízejí. PG jako takový má tak malé nároky na prostředky, že nasadit do 20 kontejnerů 20 různých pg celkem žádnou zátěž navíc neznamená (otázkou je, jak je to s plánováním IO, netuším, do jaké míry jeden pg server plánuje IO napříč různými db (minimálně binlogy jsou sdílené)).
Jinak samozřejmě absolutně netuším, jaký performance dokáže třeba Oracle proti Postgresu vytočit.Taky ne. Stejně to většinou stojí a padá na diskách. I kdyby byl Oracle o pár procent výkonnější, tak je otázkou, zda za tu ušetřenou cenu nejde pro PG postavit lepší server a tím ten výkonnostní rozdíl smazat.
protoze u tech open-source to vetsinou funguje az do ty doby, nez je to realne potreba (a pak je stejne potreba nekomu zaplatit za support...)Takze stejne jak ten Oracle.
Umi PG vsechny replikace a HAcka, jako OracleNejsem expert na Oracle, ale řekl bych, že neumí.
jak to Maxovo prostredi potrebujeNetuším.
Presne tyhle HA featury jsou duvody, proc se plati za komercni reseni, protoze u tech open-source to vetsinou funguje az do ty doby, nez je to realne potreba (a pak je stejne potreba nekomu zaplatit za support...).Jenže HA (pokud je to tedy vůbec potřeba) se dá dělat mnoha různými způsoby. A způsob, kdy se koupí black box s nálepkou HA mě osobně přijde jako ten nejhorší možný. Pokud je někde vyžadováno HA, musí se s tím počítat už při návrhu a ten systém navrhnout s ohledem na možný výpadek libovolného uzlu.
Jenže HA (pokud je to tedy vůbec potřeba) se dá dělat mnoha různými způsoby. A způsob, kdy se koupí black box s nálepkou HA mě osobně přijde jako ten nejhorší možný. Pokud je někde vyžadováno HA, musí se s tím počítat už při návrhu a ten systém navrhnout s ohledem na možný výpadek libovolného uzlu.Jakoze aplikaci, ktera je napsana proti centralni DB, nejak zazracne naucis chodit s vicero instancemi? Myslim, ze tak snadny to nebude, leda ze bys mel cas prepsat vsechny byznysovy softy sveta na rozumnejsi navrh
Jakoze aplikaci, ktera je napsana proti centralni DB, nejak zazracne naucis chodit s vicero instancemi?Ne. Ovšem pokud ta aplikace není mrtvá a je stále ve vývoji, tak tohoto lze dosáhnout postupnými změnami. Ostatně slušní vývojáři tohle dělají tak nějak sami od sebe, postupným refaktoringem tu appku dostanou do stavu, kdy se jim lépe přidávají nové funkce a současně to směřují někam kam chtějí.
Jakoze aplikaci, ktera je napsana proti centralni DB, nejak zazracne naucis chodit s vicero instancemi? Myslim, ze tak snadny to nebudene, ze bych nekdy nejakou velkou aplikaci migroval na nejakou distribuovanou nebo HA databazi, ale s tim, ze to bude nejaka hruza nebo nemozne bych asi byl opatrny, nektere distribuovane databaze jsou napr. komaptibilni s MySQL (napr. TiDB nebo memSQL), takze v aplikaci (teoreticky) nemusis menit vubec nic.
optimize table
tvrdí, že jsou v ní duplicitní záznamy. A nikdy se nedá zjistit proč. Informace o tom, že IP adresa klienta se nedá zresolvovat, je pro vývojřáe tak podstatná, že se loguje jako warning. Naopak informace o tom, že databázi nejde smazat, protože v adresáři zůstal nějaký dočasný soubor, takže neprošel rmdir, je nadbytečná a neloguje se. Pokud chci zjistit, jak se bude provádět nějaký dotaz, dokáže mi MySQL vyplivnout nesrozumitelný a nepřehledný výpis, ve kterém se lze vyznat pouze s manuálem v ruce, a ani tak to není moc slavné.
Když v PG něco nefunguje, tak je v logu napsáno proč. Když chci zjistit, jak se zpracuje dotaz, dostanu podrobný výpis včetně odhadu časové náročnosti jednotlivých kroků; pokud ten dotaz nechám provést, bude to i s informací o tom, jak dlouho to skutečně trvalo. A nikdy jsem ještě nezažil, že by se mi z PG ztratila data.
Aplikační logika v DB je už jenom taková třešnička na dortu. Třešnička, která mi třeba nedávno umožnila napojit existující databázi e-mailových účtů na Dovecotí ACL, které umí poslat jenom striktně dané SQL dotazy a mezi jinými třeba vůbec nepočítá s tím, že uživatelské účty se taky občas ruší.
No vidis, ja bych misto trouseni logiky vsude sel a patchnul Dovecot.
Téhle úvaze moc nerozumím. Pod "trousením logiky všude" bych si naopak představil právě přístup, kdy se logika musí implementovat v každém klientovi zvlášť, než to, že základní logika bude součástí databáze, takže bude automaticky fungovat pro všechny klienty stejně.
No vidis, ja bych misto trouseni logiky vsude sel a patchnul Dovecot.Jo? Tak hele - Dovecot tady funguje tak, že dostane přihlašovací údaje do DB, jméno tabulky a jména tří sloupců: kdo, komu a jednička. Když uživatel "kdo" nasdílí uživateli "komu" něco přes IMAP, zapíše se odpovídající řádek. Je to kvůli tomu, aby šlo snadno zjistit, když se uživatel "komu" přihlašuje, "kdo" mu něco nasdílel. No a já potřebuju: - Ta tabulka nemá žádné vazby na ostatní data, tj. na tabulku uživatelů. Když nějakého uživatele vymažu - což jde zcela mimo Dovecot, tažke nemůže uklidit - zůstanou v ní nesmyslná data. Potřebuju tudíž dva další sloupce obsahující cizí klíč do tabulky uživatelů s "on delete cascade" - Ale pozor - Dovecot může získávat seznam uživatelů z různých zdrojů, takže to nemůže být povinné. Musíš brát do úvahy, odkud ten uživatel přišel a jestli pro něj nějaký cizí klíč existuje. A taky jestli tohle celé dělat, protože někdo to tak chtít nemusí. Jinak ti to v upstreamu nezačlení - Uživatelé jsou ve tvaru uzivatel@domena, ale v DB je tabulka domén (o které Dovecot normálně neví vůbec nic) a tabulka uživatelů, ve které je ta část před @ a ID domény. Tj. potřebuješ buď Dovecot nějak globálně seznámit s tím, že tabulka domén existuje, nebo při vkládání toho záznamu nejdřív uživatelské jméno rozdělit a udělat select navíc. To vše samozřejmě s tím, že s DB se komunikuje přes proxy/slovník rozhraní, protože nechceš, aby se k DB připojovaly jednotlivé procesy uživatelů každý za sebe. A opět volitelně, někdo to ve své DB může mít jinak - To celé dvakrát - je tam jedna tabulka kdo - komu, a pak ještě jedna, kde se eviduje, kdo sdílí všem. Schválně si zkus odhadnout, kolik práce a tedy kolik času - a peněz - to bude stát. Podle mě fakt hodně. Samozřejmě si lze dost práce ušetřit tím, že se to do toho Dovecotu prostě nějak doprasí a do upstreamu se to posílat nebude. To bych považoval za trochu špatný způsob práce, rozhodně ne za systémové řešení a hlavně si sice ušetříš práci teď, ale přiděláš si jí do budoucna: na každém serveru musíš vypnout automatické aktualizace toho balíku - když vyjde aktualizace, musíš stáhnout zdrojáky, aplikovat patch (opravit patch, aby to šlo, a pak znovu aplikovat), přeložit, dát do vlastního repa a nainstalovat. No a nebo se napíšou dvě DB funkce: jedna vezme uživatele "kdo", rozdělí jej na dvě části podle zavináče uprostřed, udělá select a získané ID uživatele přidá do vstupních dat. Druhá udělá totéž pro uživatele "komu". Přidá se trigger, aby se tyhle funkce spouštěly před provedením insert dotazu. To celé bylo tak na 5 hodin práce (která sestávala zejména z čtení manuálu a částečně taky z čekání na pakety z mobilního internetu.) Je to takhle hotové - nebude to vyžadovat další čas, mailservery podporují IMAP ACL a já se můžu jít věnovat něčemu dalšímu.
Krom toho, z Postgre jsem nikdy nevidel vymlatit takovou propustnost na queries, jako s (podotykam spravene nastavenou, coz rozhodne neni default) MySQL - s tou jsem z toho HW vzdycky vytah vic v pomeru na spaleny CPU cas a prozranou RAM.No jo, já tohle, že bych se rozhodoval podle číslíček, nemám. MySQL možná dá větší propustnost, ale řešení čehokoliv je mnohem náročnější a zabere to víc času. Takže pro sebe jednoznačně preferuju Postgres a za ušetřený čas si koupím lepší hardware, což pořeší tu propustnost a já - opět - se můžu jít věnovat něčemu jinému.
Data jsem s tim jeste neztratil a to jsme tomu delali hodne zle.Gratuluju. Já ztracená data z MySQL zažil několikrát, vždycky kvůli rozbitému InnoDB. A zle jsme tomu ani nedělali - co si vzpomínám, tak jednou za to mohl výpadek elektriky a ten zbytek byl OOM killer. Kromě toho jsme na jenom serveru měli chybu, která čas od času způsobila desetiminutové zatuhnutí na nějakém interním zámku, načež se ta DB odstřelila sama, což pak vždycky vedlo na poškozenou tabulku mysql.proc (to je taky pěkně nesystémová pakárna, procedury uložené mimo DB, do které patří) a nutnost ručního zásahu.
Taky jsem řešil napojení Dovecotu (a Postfixu) na PostgreSQL. A mít možnost napsat si v DB nějaký ten pohled nebo funkci je fakt k nezaplacení.
Ono se sice snadno řekne, že by se měl vylepšit Dovecot, ale vylepšit ho tak, aby to vyhovovalo všem, to prakticky nelze. Spíš by šel napsat modul v céčku (dynamická knihovna), který by se do toho Dovecotu načetl, a dělal, co potřebuješ. Jenže proč to dělat složitě v céčku, když na to stačí pár řádků SQL v databázi, které vytvoří ten potřebný adaptér mezi poštovním serverem a stávající databází uživatelů?
Pekne prosim, ktera z tech queries nejde nastavit, ze mluvis neco o nejakych fixnich tabulkach? Vsak si muzes primo vypsat queries, kteryma se budes ty DB dotazovat. A ze Dovecot sam neni actionable, ale libovolnej kod v DB za tebe ty adresare taky nesmaze, at se muzes snazit, jak chces, stejne potrebujes backend, co to poresi. A ten si to muze vybrat bez toho, aby se v DB neco menilo samo.
No a co se tyce odhadu, hmm let me see. Tak, kdyz z uvahy vyhodim lidi, co jim tohle jejich distro snadno neumoznuje - myslim, ze normalni praktika 21. stoleti je mit QA - a pak je to o tom, jestli mas distro, co ti tohle umoznuje. Mluvim o NixOSu - odklonuju si stable nixpkgs, dohodit do kterekoliv casti systemu patch je otazkou na chvilku a cele to otestovat ve virtualnim setupu pod Hydrou... Neni problem. Teda, za predpokladu, ze zvladnu vlastne vyspecifikovat, co od tech systemu chci - pokud ma projit mail od uzivatelu z treba 500 login seznamu, je to proste potreba testovat. Takze pravidelne sync nixpkgs s upstreamem + automatizovane test prostredi a fakt neni problem resit veci, jak davaji smysl pro vsechny - ne ze takhle ma kazdej po svym vyreseny na planete over 9000x ten samej problem, ale pokazdy jinak. Kdyz mas moznost do toho takhle sahat, vyhlidky na ty patche prijatelny upstreamem vypadaji absolutne jinak.
Pekne prosim, ktera z tech queries nejde nastavit, ze mluvis neco o nejakych fixnich tabulkach?Jakákoliv pro slovník - konfigurace vypadá takhle:
map { pattern = shared/shared-boxes/user/$to/$from table = mailroot.mailbox_user_shares value_field = dummy fields { from_user = $from to_user = $to } }Proces obsluhující IMAP klienta nemá přístup k přihlašovacím údajům do DB a nepřihlašuje se do ní sám. To je záměr, nechci takovému neprivilegovanému procesu ty údaje dát a ani nechci, aby se mi do DB přihlašovalo 4k procesů současně. Dovecot na to má slovníky obsluhované samostatným procesem, kterého se pracovní procesy ptají stylem klíč-hodnota. To rozhraní je obecné, protože slovník neznamená nutně SQL. To znamená, že tvůj patch musí opatchovat tenhle slovník.
No a co se tyce odhadu, hmm let me see.No, tak za první jsi napsal hodně textu, ale chybí tam ten odhad
Ale vzdyt v tom dict-sql.c neni potreba resit nic vic, nez tam pridat moznost custom query, nebo potrebujes neco vic?No, ta custom query by vypadala asi takhle (připomínám, že nejsem žádnej velkej vývojář, takže lidi, co umí s databázemi, prominou
user_var := split_part(NEW.from_user, '@', 1); domain_var := split_part(NEW.from_user, '@', 2); if domain_var = '' then raise exception 'Domain part must not be empty'; end if; if user_var = '' then raise exception 'User part must not be empty'; end if; select mailboxes.id into mailbox_id from mailroot.mailboxes left join mailroot.domains on mailboxes.domains_id = domains.id where uzivatel = user_var and domena = domain_var and uzivatel || '@' || domena = NEW.from_user; NEW.from_user_id = mailbox_id; return NEW;Je to vyseknuté z toho triggeru, takže výsledné SQL by pak vypadalo ještě jinak. Bylo by to něco jako
insert into tabulka (sloupce) values (hodnoty,od,db, select (ten kód z triggeru), select(ten kód z triggeru))Nemám tušení, jestli takový dotaz vůbec jde pustit, ale rozhodně to vypadá hnusně
Krom toho, z Postgre jsem nikdy nevidel vymlatit takovou propustnost na queries, jako s (podotykam spravene nastavenou, coz rozhodne neni default) MySQL - s tou jsem z toho HW vzdycky vytah vic v pomeru na spaleny CPU cas a prozranou RAM. Jak to ma PG 10 netusim, s tim jsem si poradne jeste nehral, nastesti uz nemusim high-perf application hosting resit vubec, uz se v klidu soustredim jenom na ten podvozek pod temahle aplikacema. Takze pokud appka podporuje oboje, je jasne, co vyberu, i kdyz si muzou "znalci" povidat o nedatabazi, co chteji. Data jsem s tim jeste neztratil a to jsme tomu delali hodne zle. Co teda nefunguje dobre a rozbiji se, je replikace.
Ciste podle myho osobniho nazoru (na kterej se dlabe a neni relevantni, protoze stejne BI aplikace nevyvijim), roztrousena aplikacni logika kudy-tudy je casem pod sebou podrezana vetev... Ale myslim, ze bych tohle nevysvetlil ani borci, co prave stravil celej tejden hledanim, kde se mu ty data v tabulce meni pri pseudonahodnych udalostech, protoze mi vysvetli, jak mu to strasne setri cas jinak
PostgreSQL má mnoho datových typů na kde co všechno a ke všemu i příslušnou sadu funkcí.Ještě pořád si libuju pokaždé, když mi DB z tabulky o 10M záznamech vyplivne všechny, které obsahují JSON jako je třeba
{"dpkg":{"package":"linux-image-amd64"}}
, za 0.00nic sekund. muzu se zeptat proc tomu tak je?
mike@lion:/srv/backup> free -m total used free shared buff/cache available Mem: 15745 2312 162 238 13269 13039 Swap: 15633 0 15633 mike@lion:/srv/backup> time cat $some_file >/dev/null real 0m49,684s user 0m0,040s sys 0m4,225s mike@lion:/srv/backup> time cat $some_file >/dev/null real 0m49,529s user 0m0,054s sys 0m4,587s mike@lion:/srv/backup> time cat $some_file >/dev/null real 0m1,200s user 0m0,016s sys 0m1,181s mike@lion:/srv/backup> du -sh $some_file 5,7G $some_file
Pokud je to tak, jak tvrdíte, proč je druhý pokus přibližně stejně pomalý jako první, ne tak rychlý jako třetí?
Jasnovidný software holt psát ještě neumíme a všem se zavděčit nejde. Ale když někdo cítí neodolatelnou potřebu při každé příležitosti kázat, jak celý ten Linux stojí od základu za houby, tak je každá rána dobrá.
Celkem bych ocenil nějaký syscall nebo něco, kdy bych OS sdělil "tento soubor prosím nacachuj už při prvním čtení".
Možná by to mohl řešit posix_fadvise()
s POSIX_FADV_WILLNEED
, případně madvise()
pro mmapované soubory. Ale tohle není moje parketa, takže nemůžu říct, jestli je to přesně ono.
Jasnovidný software holt psát ještě neumíme a všem se zavděčit nejde.To je jasné, proto mě třeba více vyhovuje "hloupé" deterministické chování na které se dá spolehnout a když se o tom ví, tak toho využít, než různé chytristiky, které z měřených dat odhadují bůh ví co a snaží se neustále měnit parametry a chování neustále mění.
Ale když někdo cítí neodolatelnou potřebu při každé příležitosti kázat, jak celý ten Linux stojí od základu za houby, tak je každá rána dobrá.Njn. Všiml jsem si toho u více lidí.
posix_fadvise()Dík, mrknu na to.
Njn. Všiml jsem si toho u více lidí.Tak do veci, co by mohly bejt uz davno vyreseny, kdyby se prijaly navrhovany reseni vcas a nepolitikarilo se, to mne vcelku bavi zarejt, to musim uznat.
Od toho rict si kernelu, jak to chci s cachi je madvise(manpage) s MADV_WILLNEED flagem pro mmap()ed soubory. Pak pujdou data jeste pres pagecache (co uznavam, je kopirovani navic, v urcitych HW konfiguracich s NVMe a pomalou pameti to bude asi znat).
@ ZFS a jak se chova - v tuhle chvili se FreeBSD implementace ARC dost lisi, pokud vim - v Linuxu je navic rozsirena o ABD, ktery vyresil problemy s fragmentaci pameti, na druhou stranu pridal dalsi kopii dat v RAM do cesty. Takze je mozny, ze dlouhodobe bezici system nebude uplne srovnatelnej. Jestli ti to dela ale i cerstve nabootovana vec, tak tam nekde v ty FreeBSD implementaci neco smrdi Popis, jak to vypada pri cteni dat na Linuxu, je tady.
Takze je mozny, ze dlouhodobe bezici system nebude uplne srovnatelnej. Jestli ti to dela ale i cerstve nabootovana vec, tak tam nekde v ty FreeBSD implementaci neco smrdiTak na prázdné cache se to chová rozumně (to už by teda bylo hodně blbý), "problém" je s plnou cachí, tam se mu evidentně moc nechce vyhazovat starý data z cache a udělat prostor pro tohleto. Proč jsem dal problém do uvozovek. Ty procesy rozhodně netrpí nedostatkem dat, CPU je vytížené na 16x100%, takže rychlost zpracování je stejná i když je to už v cache nebo ještě na disku. Problém je, že diskový výkon pro ostatní procesy dost citelně a měřitelně klesne. A to je proč to řeším. Takže kernel může být happy, procesy mají svá data, CPU je optimálně vytížené, tak nemusí mít potřebu tohle cachovat (z tohoto pohledu je to pochopitelné), akorát já potřebuju ty disky taky používat i k něčemu jinému.
zfs-stats -A ------------------------------------------------------------------------ ZFS Subsystem Report Wed Jul 18 21:20:22 2018 ------------------------------------------------------------------------ ARC Summary: (HEALTHY) Memory Throttle Count: 0 ARC Misc: Deleted: 27.78m Recycle Misses: 0 Mutex Misses: 84.59k Evict Skips: 8.23m ARC Size: 69.18% 20.85 GiB Target Size: (Adaptive) 71.52% 21.55 GiB Min Size (Hard Limit): 12.50% 3.77 GiB Max Size (High Water): 8:1 30.13 GiB ARC Size Breakdown: Recently Used Cache Size: 95.14% 20.50 GiB Frequently Used Cache Size: 4.86% 1.05 GiB ARC Hash Breakdown: Elements Max: 2.68m Elements Current: 41.16% 1.10m Collisions: 20.73m Chain Max: 8 Chains: 121.48k ------------------------------------------------------------------------
zfs-stats -E ------------------------------------------------------------------------ ZFS Subsystem Report Wed Jul 18 21:28:57 2018 ------------------------------------------------------------------------ ARC Efficiency: 2.12b Cache Hit Ratio: 91.66% 1.95b Cache Miss Ratio: 8.34% 177.14m Actual Hit Ratio: 91.15% 1.94b Data Demand Efficiency: 96.71% 122.13m Data Prefetch Efficiency: 23.75% 27.61m CACHE HITS BY CACHE LIST: Most Recently Used: 4.47% 87.09m Most Frequently Used: 94.97% 1.85b Most Recently Used Ghost: 0.01% 227.01k Most Frequently Used Ghost: 1.03% 20.11m CACHE HITS BY DATA TYPE: Demand Data: 6.07% 118.11m Prefetch Data: 0.34% 6.56m Demand Metadata: 91.60% 1.78b Prefetch Metadata: 2.00% 38.99m CACHE MISSES BY DATA TYPE: Demand Data: 2.27% 4.02m Prefetch Data: 11.89% 21.05m Demand Metadata: 80.52% 142.63m Prefetch Metadata: 5.32% 9.43m ------------------------------------------------------------------------Jinak teď opravdu nemám čas to řešit, nemám tady ani žádný balík testovacích dat.
a pak je stejne potreba nekomu zaplatit za support...
Zvýraznil jsem klíčová slova: jednak platíš, až když to reálně potřebuješ, a jednak ten „někdo“ není monopolista (jeden jediný), který by tě mohl vydírat.
Ukázalo se to jako dobrý nástroj na audit v případě, že do db hází změny více developerů a nejde to všechno přes jednoho.Je cesta do pekel. To se přece dělá opačně, tedy vývojář navrhne změnu schematu (alter.sql), tohle by měl verzovat stejně jako ostatní zdrojáky a potom tuto změnu provést v DB. Cesta, kdy si v db provede kdo chce co chce a potom se to zpětně audituje fakt není dobrá. Jinak vím, že nedávno proběhla nějaká diskuse o tom, jak správně verzovat změny v DB schématu, ale konkrétní nástroj jsem nezachytil.
pg_dump -s
, to schema diffovat a při změně ukládat do gitu a zatroubit na klakson To ano, takto to funguje, ale dle zkušenosti nelze spoléhat na to, že to tak skutečně je provedeno. Nevyloučíš, že vývojář si udělá nějaký zmatek a jiný soubor jde do svn a jiný pustí do db. Z toho důvodu by to asi mělo jít přes verzovací systém a deploy změn dělat až po nějakém checkoutu z verzovacího systému. Každopádně jakmile má vývojář přístup do db, nelze věřit ani tomuto postupu.
Sorry, ale tohle je problém organizační, nikoli technologický. Vývojář má odevzdávat svoji práci do verzovacího systému. Následně proběhne sestavení (pokud možno automaticky) a až výsledek tohoto sestavení si bere člověk, který bude nasazovat. Nasadí nejdřív na různá testovací prostředí, tam se to testuje, a až když testy projdou, tak se (přesně to sestavení, které se testovalo) to nasadí na pre-produkci a po dalším kolečku alespoň základních testů se to nasadí na produkci.1
Vývojář má vyvíjet a ne nasazovat a hrabat se v produkčních datech a systémech. Dneska je děsná móda jakési DevOps, ale spousta firem si to asi vykládá tak, že můžou zapomenout na tradiční postupy a dobré praktiky a jakkoli to zprasit a ještě to nazvou líbivým buzzwordem + to pracovních inzerátů nejlépe přidají větičku „jsme pankáči“. Což o to, s punkáčema je fajn jít do hospody, na koncert nebo třeba jet na vodu… ale v práci chci dělat raději s lidmi, kteří nemají ve všem totální bordel.
[1] Pokud by někdo považoval tento přístup za extrémně konzervativní a nepružný – není tomu tak. Díky automatizaci procesů (CI) lze ten proces zkrátit (bez vynechání kroků) tak, aby od uložení do verzovacího systému do nasazení uběhla jen velmi krátká doba. A před zaverzováním si to každý vývojář testuje na svém prostředí.
Jinak vím, že nedávno proběhla nějaká diskuse o tom, jak správně verzovat změny v DB schématu, ale konkrétní nástroj jsem nezachytil.
Dřív si na to lidi (resp. týmy) psali různé sady skriptů, které „sjížděly inkrementy“ a nasazovaly je do DB + k tomu ukládaly metadata, která verze byla naposledy nasazena. Je to prostě jen hromada .sql souborů + nějaké .sh + třeba Makefile.
Dneska existují hotové nástroje jako Liquibase, které stačí jen použít, není potřeba si to programovat sám. V principu to ale dělá totéž: ve verzovacím systému máš uložené soubory s inkrementy a pomocí Liquibase to nasadíš na nějaké prostředí – tím se aplikují změny a uloží se do DB i informace, jaká verze byla nasazena. Kromě toho to umí vracet změny zpět (pokud to z principu lze samozřejmě) nebo generovat SQL skript, který si můžeš zkontrolovat a nasadit kdekoli i bez tohoto nástroje. Inkrementy se dají různě štítkovat, a pak se dá na určitá prostředí nasadit jen podmnožina, nebo tam lze mít různé varianty pro různé DBMS atd.
Nasazovat změny v datovém modelu jen tak „z ruky“ bez podobného nástroje je fakt cesta do pekla.
my jsme příkladem těch náročnějších procedur, takže CPU na db je dost vytížený. Existují přímo i produkty, které se skoro tváří jako db only.
Tohle mi nepřijde jako šťastný návrh. Sice neříkám, že DB má být jen hloupé úložiště – na některé věci ty procedury v DB smysl mají – ale je potřeba znát míru. Když se to přežene, tak právě narazíš na to, že to neškáluje nebo se to nešikovně nasazuje – zatímco třeba javovských aplikačních serverů si kolem jedné DB můžeš spustit kolik chceš a prakticky zadarmo, kdežto databázi máš jen jednu, na jednom železe a máš na ní jednu verzi uložených procedur. Když jsou procedury vně, můžou jednak běžet distribuovaně a jednak v libovolném množství verzí, mezi kterými lze libovolně přecházet, dělat mezi nimi HA a LB, testovat nové verze (v případě čtecích operací nebo testovacích uživatelů klidně i na produkčních datech před puštěním do ostrého provozu) atd.
pokud vezmu ty peníze za licence a použiji je na něco jiného (třeba HW), tak se v určitých parametrech a vlastnostech mohu dostat nad ten komerční produkt. Tohle jsem viděl několikrát. Někdo obhajoval nákup komerčního produktu za určitou cenu ale moc se nezamýšlel nad tím, že kdyby se ty peníze strčili jinam (hw, čas na implementaci něčeho, čas na otestování jiných produktů), tak by z toho vyšlo lepší řešení.
+1, tohle jsem taky hodně krát viděl. Vyhodí se neskutečné peníze za licence k proprietárnímu softwaru, ale pak je děsný problém někam přidat giga RAMky, pár giga disku nebo vyhradit půl dne testera, aby ověřil funkčnost nové verze. Prostě šetření/rozhazování na nepravém místě.
Chtělo by to někoho, kdo zná obě strany a mohl by nám to objektivně vysvětlit.
Na komplexní srovnání si netroufám, ale mám pár let komerčních zkušeností s Oraclem a na vlastních projektech používám PostgreSQL.
Z pohledu vývojáře jsem jednoznačně pro PostgreSQL, je mnohem modernější a vstřícnější, kdežto u Oraclu mám pocit, že zamrzl v čase, je to takový COBOL. To platí asi ve všem – až na Advanced Queues (AQ), ty se mi na Oraclu líbí.
Co se týče výkonu – na limity PostgreSQL jsem nenarazil, ale to je dané spíše velikostí těch projektů. U Oraclu jsem párkrát narazil s komplexitou dotazů – např. už nezvládal zanoření nebo parametry1, nějaká ta ORA-600 taky byla. Něco z toho jsou chyby DBMS, ale jindy je to dané spíš deklarativní podstatou jazyka SQL2 nebo je doba zpracování akceptovatelná s ohledem na objem dat, rychlosti disků a paměti. A to se stane víceméně u všech DBMS, někde dřív, někde později, ale pak už je to víc o návrhu datového modelu a procesů, než o volbě jednoho či druhého systému. To první typicky způsobuje řádově větší zrychlení/zpomalení než to druhé.
A v neposlední řadě: PostgreSQL je svobodný software, ale to už pod tímto blogem nemá smysl opakovat, o vendor lock-inu tu toho už to bylo řečeno dost.
[1] dotaz byl po dopsání některých (byť nesouvisejících) částí už tak složitý, že ho Oracle odmítal spustit s parametry – zatímco když se :parametr
nahradil za literál (tzn. nechvalně známé lepení SQL dotazů), tak to zase fungovalo. Nebo někdy Oracle tvrdil, že našel cyklus mezi CTE/WITH výrazy, i když tam žádný nebyl – tam zase pomohla duplikace kódu a parametrů
[2] ne vše jde napsat deklarativně a u hodně složitých programů je lepší to rozdělit a řešit procedurálně
Fascinující. O kolik věcí jsme v OSS světě ochuzeni.No, nutno říct, že Oracle je skutečný extrém - mám takový pocit, že jednu dobu měli licenční politiku takovou, že se muselo zalicencovat každé CPU, na kterém ta DB potenciálně může běžet. Celková cena za pár set procesorů té VMWare farmy prý byla docela zajímavá. Ale jinak +1, taky nechápu, proč je někdo vůbec ochotný uvažovat o tom něco si od těchhle gaunerů koupit. Nadpis blogu by spíš měl být "necháváme se od Oracle ojebávat"
mám takový pocit, že jednu dobu měli licenční politiku takovou, že se muselo zalicencovat každé CPU, na kterém ta DB potenciálně může běžet
To mají snad pořád. Zrovna nedávno jsem byl svědkem diskuse, kde se řešilo, zda radši nekoupit nějaký slabší fyzický server s méně procesory, který by si tiše hučel někde v koutě, aby se nemuselo virtualizovat a ušetřilo se tím za licence na Oracle.
Byla to AFK diskuse, teď nedávno.
Vývojáři jsou taktéž nadšený, protože se jim díky tuning packu odkrylo spoustu prasečinek (stovky tisíc zbytečných selectů denně apod.)Pominu to, že selecty lze v normální db logovat i bez zakoupení speciálního balíčku, ale překvapilo mě, že vývojáři nevědí, jaké selecty a v jakém počtu do db posílají.
Pominu to, že selecty lze v normální db logovat i bez zakoupení speciálního balíčku, ale překvapilo mě, že vývojáři nevědí, jaké selecty a v jakém počtu do db posílají.Pokud pouzijes ORM, coz nekteri vyvojari povazuji za dobry napad, muze se snadno stat, ze si vyvojar ani nevsimne, ze tam ma nejake selecty, nebo ze jich je nekolik tisic na jednu operaci.
Pro nějaké cacheovatelné bloby (spousty souborů přenášených přes HTTP), které lze rozdistribuovat po serverech na celém světě ne. Ale věř, že pro transakční systémy to problém je a vždy bude (pokud se nepodaří překonat rychlost světla).
V první fázi možná, ale je to past. Spousta zákazníků už takhle naletěla. Z pohledu dodavatele dává SaaS ještě větší prostor pro vendor lock-in než „pouhý“ proprietární software. Je to vlastně takový proprietární software na druhou, protože pak dodavatel drží i data zákazníka a má k nim a k běžícím procesům přímý přístup, může ho kdykoli odstavit, mnohem účinněji vydírat.
Dalším důvodem byl DataGuard, což je řešení, které umožňuje replikaci db na záložní stranu s téměř zanedbatelným rollbackem dat. Doteď jsme využívali k replikaci vlastní skripty, které kopírovaly rsyncem archivační logy do backup lokality, tam se pak pomocí cronu aplikovaly na standby db. Rollback dat byl pak cca 15min. S DataGuardem lze docílit mnohem menšího rollbacku a lze si vybrat možnost přenosu. Lze využít MaximumPerformance, kdy primární strana nečeká na potvrzení od standby (toto používáme my kvůli výkonu). O něco více pomalejší je pak režim, kdy primární strana čeká na potvrzení od standby, takže obě databáze jsou ve stejný čas 1:1. Režimů replikace existuje více druhů. Pak existuje něco jako Active DataGuard, který vylepšuje DataGuard jako takový, ale to je placená option (= pár stovek tisíc).V roce 2012 jsme právě u jednoho klienta DataGuard nahrazovali za NetApp SnapMirror aby se mohlo přejít z Enterprise na Standard a ušetřit ranec
V takovém případě pak není ani potřeba ten NetApp.Byt to PS engagement na 50 MD, při ceně 2k GBP za MD ten NetApp stál méně, než jeho implementace... K tomu aby sis bastlil podobné věci potřebuješ taky kompetence, které očividně tenhle klient neměl, jinak by si na to nenajal nás...
Tiskni
Sdílej: