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 I I I I
Atomicity Consistency Independence Durability
provoz stroje: archivní versus nearchivní mód zp·sob provedení zálohy: I I
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
Oracle
Architektura, vyhodnocení DML, COMMIT
Oracle architektura d·leºité £ásti log les pam¥´ové struktury I I
database buer cache redo log buer
synchonizace I I
log sequence number checkpoint number
procesy I I I I
log writer checkpoint archiver database writer
módy provozu databáze I I
nearchivní archivni
parameter le
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
3 / 29
Oracle
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 aby se uvolnila cache.
2
Na data, která mají být m¥n¥na je aplikován
database writer,
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
Oracle
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
Oracle
Instance Recovery, kategorie chyb
Instance Recovery Picture
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
6 / 29
Oracle
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
instance recovery) nebo je t°eba za£ít s archivovanými media recovery)
soubory (
2
ºurnály (
Roll forward (redo) Za£ne se od nejstar²ího SCN (v hlavi£kách DB soubor·) a postupn¥ se
3 4
p°ehraje celá transak£ní aktivita. Committed and noncommitted data in les Do²lo k obnov¥ datových i undo blok· do stavu t¥sn¥ p°ed pádem. Roll back (undo) Na transakce, které nebyly v dob¥ pádu instance potvrzené, je t°eba
5
aplikovat standardní rollback operaci. Committed data in les Databáze je synchronizovaná. Poºadavky
Durability ) z M. (Valenta (FIT VUT)
ACID jsouBackup spln¥ny. and Recovery
Atomicity a trvalosti BI-AWD, 2011, P°edn. 13
7 / 29
Oracle
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: I I I I
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
commited.
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
read
8 / 29
Oracle
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
Oracle
Klasické zálohování
Oracle zálohování klasikace
fyzická záloha (data les, control les, log les) I I
p°íkaz copy (cp) z OS pomocí nástroje Recovery Manager (RMAN) F F
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.
hot backup) nebo p°i cold backup).
Fyzickou zálohu lze provád¥t bu¤ za b¥hu databáze ( skon£ené (a synchronizované) databázi (
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
10 / 29
Oracle
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> SQL> SQL> SQL>
SHUTDOWN IMMEDIATE; STARTUP MOUNT EXCLUSIVE; ALTER DATABASE ARCHIVELOG 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
Oracle
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
Oracle
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,
M. Valenta (FIT VUT)
Backup and Recovery
LIST).
BI-AWD, 2011, P°edn. 13
13 / 29
Oracle
Recovery Manager
Oracle Recovery Manager Figure
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
14 / 29
Oracle
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
Oracle
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
Oracle
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
Oracle
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
Oracle
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
Oracle
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 I I I
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 I I I
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
Oracle
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
Oracle
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
Oracle
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
Oracle
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
TO BEFORE DROP [RENAME TO ]; 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 [PURGE];
M. Valenta (FIT VUT)
Backup and Recovery
BI-AWD, 2011, P°edn. 13
24 / 29
Oracle
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
Oracle
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
ano InnoDB a MyISAM −→ 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