Petr Jiroušek (petr@civ.zcu.cz) Oracle flashback Petr Jiroušek (petr@civ.zcu.cz)

Slides:



Advertisements
Podobné prezentace
CIT Paměti Díl X.
Advertisements

Webové rozhraní pro přístup k databázi JIS Václav Lederbuch
SoftPC SQL Prezentace nového SQL modulu Mzdy a personalistika
Co je to uživatelské menu? Ve WinBase si můžeme ke každé aplikaci vytvořit vlastní menu, které po otevření nahradí standardní menu WinBase. Toto uživatelské.
• Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Základy jazyka SQL Jan Tichava
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Cvičení 03 SQL Select Ing. Pavel Bednář
PROGRAM PRO VÝUKU T ČLÁNKU
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Klávesnice pc Mgr. Jan Fojtík Hardware F_21.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Teorie zpracování dat Ukázková písemka. Kapitola 4 Je dána tabulka Zam (login, jmeno, plat, funkce), implementovaná je v SŘBD používajícím indexové soubory.
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Lubomír Andrle 8. přednáška
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Temporální databáze a TSQL
TEMPORÁLNÍ DATABÁZE A TSQL2
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Uživatelé, Role, Schémata
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
Úvod do databází Databáze.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
Tabulkový procesor – Excel Základní operace s buňkami.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
Databáze Úvod.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Vytvoření řadiče Windows Serveru Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec.
EXCEL 2010 Úvod. Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního.
Databázové systémy teorie a návrh relačních databázových systémů část II.
Vypracoval: Ondřej Dvorský Třída: VIII.A
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Administrace Oracle Práva a role, audit Filip Řepka 2010.
JavaScript Podmínky, cykly a pole.
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
2 Ing. Jan Keprt Centrální správa uživatelů 3 Jak to bylo dosud Bylo třeba nastavení uživatelů provést zvlášť, v každém modulu samostatně. Uživatel si.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Aplikační a programové vybavení
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Základní obeznámení s jazykem SQL Databázové systémy.
TEMPORÁLNÍ DATABÁZE A TSQL2
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Databázové systémy Zabezpečení DBS. Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost - informace by neměly.
Administrace Oracle Paralelní zpracování.
Databázové systémy přednáška 8 – Transakce
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
[ START WITH podmínka ] CONNECT BY podmínka
Databázové systémy a SQL
Přednáška 9 Triggery.
Transkript prezentace:

Petr Jiroušek (petr@civ.zcu.cz) Oracle flashback Petr Jiroušek (petr@civ.zcu.cz)

Co je to Oracle … … to ví přece každý Hodně velká firma Široké portfolio Ale hlavně databáze Docela drahá Má i free verzi Oracle Express 11g (limity 1 procesor, 1GB paměti, 11 GB dat) Europen - Vílanec u Jihlavy (16.10.2012)

Adresa byla změněna někomu jinému a neznáme původní hodnotu Zpátky k flashbacku Něco podobného si asi každý umí představit Dobrý den, chtěl bych změnit trvalé bydliště Adresa byla změněna někomu jinému a neznáme původní hodnotu 171717171 Číslo občanského průkazu? Květinová 7, Most Vaše nová adresa? Ale já se jmenuji Polívka !?!? Tak pane Nováku, teď zaplatíte 100 Kč na pokladně ÚŘAD Update OBYVATELE set adresa=‘Květinová 7‘, město=‘Most’ where cislo_op=‘717171717’; Commit; Europen - Vílanec u Jihlavy (16.10.2012)

Co s tím? Nejjednodušší je tzv. „paper-flashback“ Europen - Vílanec u Jihlavy (16.10.2012)

Co s tím? Prakticky všechny databáze dnes nabízí tzv. point-in-time recovery Restore database until time T časT Recover database until time T Transakční log 1.den 2.den 3.den 4.den 5.den 6.den Europen - Vílanec u Jihlavy (16.10.2012)

Co s tím? Prakticky všechny databáze dnes nabízí tzv. point-in-time recovery, to má ale několik nevýhod: Zpravidla nelze dělat „za provozu“, tj. potřebuji další HW nebo alespoň další instanci databáze Musím mít správně nastaveno zálohování Stojí to nějaké (nezanedbatelné) úsilí Europen - Vílanec u Jihlavy (16.10.2012)

Co s tím? V db Oracle stačí napsat příkaz: A máme přesně to, co chceme select * from obyvatele where cislo_op='717171717' as of timestamp <dnes ráno> A máme přesně to, co chceme Pravda, musíme to ještě implementovat do provozního systému Europen - Vílanec u Jihlavy (16.10.2012)

Další scénáře Chybný příkaz uživatele s vysokými oprávněními – typicky správců aplikací nebo i databázových administrátorů Testování – několik verzí aplikace potřebuji otestovat na shodných počátečních datech Europen - Vílanec u Jihlavy (16.10.2012)

Jak to vlastně celé funguje Základem všeho je transakce Každá má svůj začátek a konec Vše co, v průběhu transakce já dělám, nikdo další vůbec nevidí, vše se uloží až ve chvíli potvrzení transakce (commit) Je patrné, že po dobu běhu transakce někde existuje „pomocné“ místo, kam se ukládají data - UNDO Europen - Vílanec u Jihlavy (16.10.2012)

UNDO Fyzicky je to zvláštní soubor Prakticky se sem ukládá vždy původní hodnota Nová hodnota se rovnou zapíše do tabulky – a označí se Pokud jiný uživatel narazí při prohlížení na takto označenou hodnotu, databáze mu místo ní „podstrčí“ hodnotu z UNDO Europen - Vílanec u Jihlavy (16.10.2012)

UNDO UNDO UNDO MANAGER Zelená 2 Uživatel UREDNIK38 Update obyvatele Tabulka OBYVATELE Jméno Příjmení Adresa Město Číslo OP Novák Adam Zelená 2 Cheb 111111111 Aleš Modrá 3 Aš 222222222 Arnold Květná 9 Most 333333333 Artur Letní 22 Praha 444444444 … Žlutá 7 UNDO MANAGER UNDO Zelená 2 Uživatel UREDNIK38 Update obyvatele set adresa=‘Žlutá 7’ where cislo_op=‘111111111’ Uživatel UREDNICE22 select * obyvatele where cislo_op=‘111111111’ Novák Adam Zelená 2 Cheb 111111111 Commit Select * obyvatele where cislo_op=‘111111111’ Novák Adam Žlutá 7 Cheb 111111111 Europen - Vílanec u Jihlavy (16.10.2012)

UNDO UNDO se zaplňuje postupně Když se dojde na konec začne se opět od začátku Časem dojde k přepisování A to je přesně ta hranice, do kdy fungují Oracle flashback technologie Praha Plzeň UNDO Květná 2 Zelená 2 Rakovník Veveří 11 Europen - Vílanec u Jihlavy (16.10.2012)

UNDO Je možné definovat RETENTION GUARANTEE Je to čas, po který se původní hodnoty v UNDO určitě nebudou přepisovat Teoreticky ale pak může dojít k tomu, že nové transakce se nespustí … budou čekat, než se jim uvolní místo v UNDO Europen - Vílanec u Jihlavy (16.10.2012)

Flashback query Můžeme se dostat k historickým datům Typické použití Create table OBYVATELE1 as select * from OBYVATELE as of timestamp <přesný čas nebo SCN> Místo přesného času lze použít tzv. SCN (System Change Number) Synchronizaci všech souborů – vznik nového SCN – provádí Oracle každé max 3 s Europen - Vílanec u Jihlavy (16.10.2012)

Flashback version query Je rozšířením Flashback query Umí vypsat komplet historii dat v tabulce: select adresa, cislo_op, versions_starttime as start, versions_endtime as end, versions_operation as op from obyvatele Adresa Cislo_op Start End Op --------------------------------------------------- Zelená 2 111111111 01.12.11 07:35 03.07.12 15:45 U Horní 11 666666666 08.07.12 11:11 15.07.12 13:09 I Mostní 2 111111111 03.07.12 15:45 17.07.12 09:11 U Květná 9 333333333 17.06.11 12:23 21.07.12 08:45 D Europen - Vílanec u Jihlavy (16.10.2012)

Flashback table Tabulku posuneme zpět v čase Flashback table obyvatele to <přesný čas nebo SCN> Umí uhlídat vazby na potomky/rodiče Umí spustit se zapnutými nebo vypnutými triggery Samozřejmě tímto definitivně ztrácíme všechna data od zvoleného okamžiku do současnosti Europen - Vílanec u Jihlavy (16.10.2012)

Flashback drop Jde o klasický odpadkový koš Syntaxe úplně triviální Drop table OBYVATELE Ajaj – to jsme nechtěli … Flashback table OBYVATELE to before drop Umí zároveň i návazné objekty (integritní omezení, indexy, triggery) Europen - Vílanec u Jihlavy (16.10.2012)

Flashback database Kromě transakčního žurnálu databáze generuje tzv. flashback logy V nich jsou „reverzní operace“ Flashback database je co se výsledku týče shodná s point-in-time recovery, ale je mnohonásobně rychlejší a vystačíme si s jediným příkazem Nevýhoda – potřebujeme místo na flashback logy Europen - Vílanec u Jihlavy (16.10.2012)

Flashback database Flashback database to timestamp T časT Flashback database to timestamp T Alter database flashback on Flashback logy 1.den 2.den 3.den 4.den 5.den 6.den Europen - Vílanec u Jihlavy (16.10.2012)

Flashback Data Archive Už spíše další aplikace – postupně byl přejmenován na Oracle Total Recal Z původních flashback technologií využívá jen myšlenku uchování historických dat, technologie už je úplně jiná Komplet historie se ukládá do speciálních tabulek Výhoda – nad historií lze vytvářet vlastní dotazy Europen - Vílanec u Jihlavy (16.10.2012)

Flashback Data Archive Nejprve nadefinujeme Flashback Archiv: Pojmenujeme – např. FLA1 Kde – soubor (specielní TABLESPACE) Volitelně Jak velký plus kvóta pro uživatele Jaký časový rozsah uchovává (např. poslední rok) Velká výhoda – umí si automaticky poradit se změnou struktury tabulky Europen - Vílanec u Jihlavy (16.10.2012)

Flashback Data Archive U tabulky, které má být archivována zadáme příkaz: Alter table OBYVATELE flashback archive FLA1 Najdeme si, jak Oracle pojmenoval archivní tabulku select archive_table_name from user_flashback_archive_tables where table_name='OBYVATELE'; A pak již nad daty v této tabulce můžeme používat standardní příkaz select Europen - Vílanec u Jihlavy (16.10.2012)

Flashback Archive Update OBYVATELE Tabulka OBYVATELE Jméno Příjmení Adresa Město Číslo OP Novák Adam Zelená 2 Cheb 111111111 Aleš Modrá 3 Aš 222222222 Arnold Květná 9 Most 333333333 Artur Letní 22 Praha 444444444 … Update OBYVATELE set adresa=‘Zadní 3’ where cislo_op=‘222222222’ Insert into OBYVATELE values (‘Novák’,’Jan’, ’Zimní 33’, ’Stod’,’666666666’) Delete from OBYVATELE where cislo_op=’444444444’ Update OBYVATELE set mesto=‘Cheb’ where cislo_op=‘222222222’ Update OBYVATELE set adresa=‘Horní 2’ where cislo_op=‘666666666’ Zadní 3 Cheb Novák Jan Zimní 33 Stod 666666666 Horní 2 Tabulka SYS_FBA_HIST_192312 Příjmení Jméno Adresa Město Číslo OP Od Do Operace Novák Aleš Modrá 3 Aš 222222222 334236 U Novák Aleš Zadní 3 Aš 222222222 334236 334289 U Novák Artur Letní 22 Praha 444444444 334322 D Novák Jan Zimní 33 Stod 666666666 334300 334398 I Europen - Vílanec u Jihlavy (16.10.2012)

Dostupnost flashback technologií Flashback query, flashback drop dostupné ve všech edicích včetně Express (tj. je zdarma, mohou využívat všichni) Všechny ostatní pak pouze v nejdražší edici Enterprise Europen - Vílanec u Jihlavy (16.10.2012)

Dotazy? DĚKUJI ZA POZORNOST Europen - Vílanec u Jihlavy (16.10.2012)