Zálohování a obnova databáze Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c J. Pokorný, M. Valenta, 2010 Administrace webového a databázového serveru MI-AWD ZS 2010/11, P edn. 13 Evropský sociální fond. Praha & EU: Investujeme do va²í budoucnosti M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 1 / 29
Úvod D leºité aspekty vlastnosti transak ního zpracování - ACID Atomicity Consistency Independence Durability provoz stroje: archivní versus nearchivní mód zp sob provedení zálohy: hot (online) versus cold (oine) backup fyzická versus logická záloha Jak jsou ACID vlastnosti implementovány v DB stroji? Souvislost s pojmy (journal, undo segment, checkpoint,...). Nástroje pro zálohování a obnovu databáze. Speciality nad rámec b ºného zálohování a obnovy DB stroje (Oracle). M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 2 / 29
Architektura, vyhodnocení DML, COMMIT Oracle architektura d leºité ásti log les pam ové struktury database buer cache redo log buer synchonizace procesy log sequence number checkpoint number log writer checkpoint archiver database writer módy provozu databáze nearchivní archivni parameter le M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 3 / 29
Architektura, vyhodnocení DML, COMMIT Oracle zpracování DML p íkazu Uºivatelský proces po²le ºádost o zpracování DML p íkazu (nap íklad UPDATE). Server proces jej zpracuje v t chto krocích: 1 Data, která se mají m nit je t eba dostat do Database buer cache. Bu tam jsou z p edchozího zpracování, nebo je nahraje z datových soubor. P i tomto procesu m ºe být nastartován database writer, aby se uvolnila cache. 2 Na data, která mají být m n na je aplikován výlu ný zámek (implicitn se zamyká na úrovni ádky). 3 Do UNDO blok se zkopírují stará data (jsou ozna ena íslem transakce, která je m ní). 4 Do redo log bueru se vygeneruje zm nový vektor, který obsahuje stará i nová data a ID transakce. Po skon ení DML operace se zm n ná data stále nachází v pam ti v database bueru (v datových a undo blocích) a v redo log bueru. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 4 / 29
Architektura, vyhodnocení DML, COMMIT Oracle zpracování p íkazu COMMIT 1 Do redo log bueru je vytvo en zápis, ºe p íslu²ná transakce zavolala COMMIT. 2 Log writer zapí²e na disk celý obsah redo log bueru (jsou tam informace o ukon ených i neukon ených transakcích, protoºe do redo log bueru se zapisuje sekven n a transakce jsou soub ºné). 3 Kdyº je obsah red log bueru na disku (v log souboru), dostane uºivatel hlá²ení transaction complete. 4 Bloky v UNDO segmentech, které obsahovaly stará data z ukon ené transakce jsou uvoln ny pro p epsání. 5 Jsou uvoln ny zam ené záznamy v datových blocích (v database buer cache). Dojde-li v této chvíli k pádu instance. Provede se po dal²ím restartu automaticky instance recovery. Úsp ²n ukon ené transakce budou obnoveny z redo log souboru. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 5 / 29
Instance Recovery, kategorie chyb Instance Recovery Picture M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 6 / 29
Instance Recovery, kategorie chyb Oracle Instance Recovery Process 1 Data les out of sync P i (re)startu instance se zjistí, ºe synchoniza ní známky (SCN) v hlavi kách DB soubor a ídících soubor se li²í. Dal²í analýza potom rozhodne, zda pro recovery proces budou sta it online redo log soubory (instance recovery) nebo je t eba za ít s archivovanými ºurnály (media recovery) 2 Roll forward (redo) Za ne se od nejstar²ího SCN (v hlavi kách DB soubor ) a postupn se p ehraje celá transak ní aktivita. 3 Committed and noncommitted data in les Do²lo k obnov datových i undo blok do stavu t sn p ed pádem. 4 Roll back (undo) Na transakce, které nebyly v dob pádu instance potvrzené, je t eba aplikovat standardní rollback operaci. 5 Committed data in les Databáze je synchronizovaná. Poºadavky Atomicity a trvalosti (Durability) z ACID jsou spln ny. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 7 / 29
Instance Recovery, kategorie chyb Zaji²t ní ACID poºadavk Consistency a Isolation Oracle pouºívá samostatný objekt pro uloºení p vodních hodnot ádk UNDO segment (d íve Rolback Segment) výlu né zámky na úrovní ádk stupn izolace: read uncommited read commited non-repeatible read serializable obvyklá úrove izoloace read commited Chyba Snapshot too old p i b ºném transak ním provozu v reºimu read commited. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 8 / 29
Instance Recovery, kategorie chyb Oracle Categories of database failures Statement failure User process failure Network failure User error Instance failure Media failure M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 9 / 29
Klasické zálohování Oracle zálohování klasikace fyzická záloha (data les, control les, log les) p íkaz copy (cp) z OS pomocí nástroje Recovery Manager (RMAN) image copy backup piece logická záloha Pomocí utilit exp a imp (resp. datových pump - data pumps). Zálohovat lze na úrovni jednotlivých tabulek, uºivatelských schémat a celé databáze. Fyzickou zálohu lze provád t bu za b hu databáze (hot backup) nebo p i skon ené (a synchronizované) databázi (cold backup). M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 10 / 29
Klasické zálohování Oracle p epnutí databáze do archivního módu Zabrání p episu redo log souboru p ed zazálohováním. Automacká archivace (archiver) m ºe a nemusí b ºet. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT EXCLUSIVE; SQL> ALTER DATABASE ARCHIVELOG SQL> ALTER DATABASE OPEN; Po p epnutí do archivního módu by m lo následovat shutdown a full (cold) backup. P íkaz archive log list v sqlplus informuje o stavu módu databáze a automatické archivaci. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 11 / 29
Klasické zálohování Oracle fyzická záloha pomocí p íkazu copy Cold backup 1 uzav ení databáze (shutdown normal transactional immediate) 2 záloha v²ech soubor ( ídící, datové, ºurnály) 3 startup 4 Je dobré zálohovat také parameter le a password le. Hot backup Databáze musí být v achivním módu. Záloha se provádí postupn pro tablespaces. 1 alter tablespace tblsp_name begin backup; 2 záloha soubor pat ících k tablespace na úrovni OS. 3 alter tablespace tblsp_name end backup; V pr b hu zálohy se zvý²í mnoºství dat zapisovaných do ºurnálu. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 12 / 29
Recovery Manager Oracle Recovery Manager Komplexní nástroj pro zálohování, katalogizaci záloh, vystavení soubor ze zálohy a obnovení databáze. Vlastní prost edí (rman) s vlastním skriptovacím jazykem pro zálohování a obnovu. Umoº uje interaktivní p ístup i spou²t ní uloºených skript. Zálohování image copy nebo backup piece Podporuje inkrementální a kumulativní backup. Podporuje online (hot) backup. P i zálohování provádí kontrolu konzistence datových blok. Operace RESTORE a RECOVER. Nepovinný katalog. Dotazy nad katalogem (REPORT, LIST). M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 13 / 29
Recovery Manager Oracle Recovery Manager Figure M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 14 / 29
Recovery Manager Oracle RMAN - ukázka obnovy tablespace RMAN>RUN { 2>BACKUP AS BACKUPSET 3>FORMAT '/u01/db01/backup/%d_%s_%p' 4> DURATION 10:00 MINIMIZE LOAD 5>(DATABASE); 6>SQL 'alter system archive log current'; 7>} M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 15 / 29
Recovery Manager Oracle RMAN katalog LIST RMAN> LIST BACKUP OF DATABASE; RMAN> LIST BACKUP OF DATAFILE 2> "/db01/oradata/u03/users01.dbf"; RMAN> LIST COPY OF TABLESPACE "SYSTEM"; RMAN> LIST COPY OF DATABASE ARCHIVELOG 2> FROM TIME='SYSDATE-7'; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 16 / 29
Recovery Manager Oracle RMAN katalog REPORT RMAN> REPORT NEED BACKUP incremental 3; RMAN> REPORT NEED BACKUP days 3; RMAN> REPORT NEED BACKUP redundancy 2; RMAN> REPORT NEED BACKUP 2> recovery window of 3 days; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 17 / 29
Recovery Manager Oracle RMAN - ukázka obnovy tablespace run{ sql "ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE"; RESTORE TABLESPACE inv_tbs; RECOVER TABLESPACE inv_tbs DELETE ARCHIVELOG; sql "ALTER TABLESPACE inv_tbs ONLINE"; } M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 18 / 29
Recovery Manager Oracle RMAN incomplete recovery RMAN> RUN { 2> SET UNTIL TIME = '2005-11-28:11:44:00'; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; } M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 19 / 29
Flashback Flashback popis technologie Jedná se o dopln k k moºnostem klasického zálohování databáze. P íná²í celkem nedatabázové rysy: recycle bin nahlíºení postupných zm n záznamu p es n kolik transakcí fyzický ashback technologie paralelní k ºurnál m náro né na dal²í prostor rychlej²í a koncep n snaz²í návrat zp t v ase (rewind) logický ashback zaloºen an UNDO segmentech parametr undo_retention obecn není tolik náro ný na p ídavný prostor M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 20 / 29
Flashback Oracle logický ashback ukázka Jaká byla hodnota ádku v minulosti? SELECT * FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS') WHERE last_name = 'Chung'; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 21 / 29
Flashback Oracle logický ashback ukázka Jak se vyvíjela hodnota ádky b hem zpracování? SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, name, salary FROM employees VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2003-07-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2003-07-18 17:00:00', 'YYYY-MM-DD HH24:MI:SS') WHERE name = 'JOE'; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 22 / 29
Flashback Oracle logický ashback ukázka Kdo m ºe za zm ny a jak to vrátit zpátky? SELECT xid, operation, start_scn,commit_scn, logon_user, undo_sql FROM flashback_transaction_query WHERE xid = HEXTORAW('000200030000002D'); M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 23 / 29
Flashback Oracle Recycle bin Pat í taktéº do kategorie logický ashback. p íkaz DROP TABLE ve skute nosti tabulku pouze p ejmenuje. návrat je moºný pomocí p íkazu: FLASHBACK TABLE <table_name> TO BEFORE DROP [RENAME TO <new_name>]; vysypat ko² lze p íkazem: PURGE [USER_ DBA_]RECYCLEBIN prohlíºení ko²e je moºné p es pohledy: DBA_RECYCLEBIN nebo USER_RECYCLEBIN p íkaz DROP je roz²í en o klauzuli PURGE DROP TABLE <table_name> [PURGE]; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 24 / 29
Flashback Oracle fyzický ashback nastavení Je velmi náro né na diskový prostor. Doporu uje se dvojnásobem velikosti DB. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT EXCLUSIVE; SQL> ALTER SYSTEM SET 2 DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH; SQL> ALTER DATABASE FLASHBACK ON; SQL> ALTER DATABASE OPEN; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 25 / 29
Flashback Oracle -fyzickýashback ukázka P evinutí databáze zp t. Rychlej²í alternativa k PITR. RMAN> FLASHBACK DATABASE TO TIME = 2> "TO_DATE('2004-05-27 16:00:00', 3> 'YYYY-MM-DD HH24:MI:SS')"; RMAN> FLASHBACK DATABASE TO SCN=23565; RMAN> FLASHBACK DATABASE 2> TO SEQUENCE=223 THREAD=1; M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 26 / 29
PostgreSQL PostgreSQL MVCC implementace Multi-Version Concurrency Control 1 soubor 1 tabulka WAL obsahuje podobnou informaci jako ONLINE REDO LOG v Oracle nemá speciální struktur UNDO (ROLLLBACK) segment staré kopie ádk jsou drºeny p ímo v p íslu²ném DB souboru nutnost p íkazu VACUUM detaily [Martinez] (prezentace o PosgreSQL) slides 29-30 detaily [Stehule] (prezentace o administraci PosgreSQL) slide 8 Poznámka: Oracle má rovn º implementaci MVCC, ale pouºívá k tomu UNDO segmenty. M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 27 / 29
PostgreSQL PostgreSQL zálohování p ehled logická vs. fyzická záloha cold vs. hot backup detaily [Stehule] (prezentace o administraci PosgreSQL) slides 20-23. u men²ích databází v t²inou pg_dump (binární/textová/binární-komprimovaná) M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 28 / 29
MySQL MySQL zálohování p ehled logická vs. fyzická záloha cold vs. hot backup Doporu ení: lze do asn zastavit? ano cold backup ne velikost databáze? mén neº n kolik GB ano mysqldump ne databázový stroj? pouze MyISAM ano mysqlhotcopy InnoDB a MyISAM ano InnoDB hot bacup, mysqlhotcopy, snapshot based backup, replication based backup,... M. Valenta (FIT ƒvut) Backup and Recovery BI-AWD, 2011, P edn. 13 29 / 29