Tomáš Hladík
User-Managed Backup RMAN (od v. 8.1)
Backup & recovery záloha a obnovení Media recovery uvedení DB do konzistentního stavu Data files Control files Redo log files Archived Current
Konzistentní zálohy Z uzavřené databáze Při zavírání nedošlo k chybě Nepotřebuje media recovery Nejsou třeba redo logy
Pokud nepoužíváme RMAN Zálohování logických částí Utility Import / Export Fyzických částí kopírování
Backup Object Backup Method Example Datafiles Operating system utility % cp df3.f df3.bak Archived logs Operating system utility % cp log_1_23.arc log_1_23.bak Control files SQL statement SQL> ALTER DATABASE BACKUP CONTROLFILE TO cf1.bak Initialization parameter file Network and password files Logical objects (tables, indexes, PL/SQL units) SQL statement SQL> CREATE PFILE = init.ora.bak FROM SPFILE; Operating system utility Export utility % cp tnsnames.ora tnsnames.bak C:\> copy tnsnames.ora tnsnames.bak % export SYSTEM/manager TABLE=hr.emp FILE=emp.dmp
Při správě databází Oracle7 a starších Pokud chceme jednotný způsob zálohování Pro lepší pochopení
Pokud můžeme databázi vypnout 1) SHUTDOWN NORMAL IMMEDIATE TRANSACTIONAL 2) % cp /disk1/oracle/dbs/*.dbf /disk2/backup 3) % cp /disk1/oracle/dbs/*.cf /disk2/backup 4) % cp /disk1/oracle/network/admin/*.ora /disk2/backup 5) % cp /disk1/oracle/rdbms/admin/*.ora /disk2/backup 6) STARTUP
1) SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'users'; 2) ALTER TABLESPACE users BEGIN BACKUP; 3) % cp /oracle/dbs/tbs_21.f /oracle/backup/tbs_21.backup 4) % cp /oracle/dbs/tbs_22.f /oracle/backup/tbs_22.backup 5) ALTER TABLESPACE users END BACKUP; 6) Zálohování logů (současných i archivovaných) 1) ALTER SYSTEM ARCHIVE LOG CURRENT;
Spustíme příkazem rman v databázi Pro připojení je potřeba SYSDBA oprávnění Základní příkazy BACKUP DATABASE (plus archivelog); LIST BACKUP OF DATABASE;
% rman TARGET SYS/oracle@trgt CATALOG rman/cat@catdb RMAN> BACKUP DATABASE; RMAN> SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; RMAN> SHOW ALL; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> LIST BACKUP;
1) STARTUP MOUNT 2) RESTORE DATABASE; 3) RECOVER DATABASE 4) ALTER DATABASE OPEN
BACKUP DATABASE VALIDATE; BACKUP VALIDATE DATABASE ARCHIVELOG ALL; RESTORE TABLESPACE TBS_1 VALIDATE
RMAN> STARTUP FORCE MOUNT; RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE DELETE ARCHIVELOG; RMAN> ALTER DATABASE OPEN; RMAN> SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE'; RMAN> RESTORE TABLESPACE users; RMAN> RECOVER TABLESPACE users; RMAN> SQL 'ALTER TABLESPACE users ONLINE'; RECOVER DATABASE UNTIL TIME '2012-11-19:12:00:00' USING BACKUP CONTROLFILE;
Fyzické poškození datových souborů SELECT * FROM V$RECOVER_FILE; Jména odpovídacích souborů a tablespace SELECT r.file# AS df#, d.name AS df_name, t.name AS tbsp_name, d.status, r.error, r.change#, r.time FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t WHERE t.ts# = d.ts# AND d.file# = r.file#
Control file ALTER DATABASE BACKUP CONTROLFILE Datové soubory + logy
Pro obnovení části DB 1) ALTER TABLESPACE users OFFLINE IMMEDIATE; 2) Zkopírovat dané soubory ze zálohy 3) RECOVER TABLESPACE users 4) ALTER TABLESPACE users ONLINE Obnovení celé DB Nutně potřebujeme datové soubory a logy
Aktualizace datových souborů Díky (archivovaným) aktuálním redo logům Kompletní obnova 1) STARTUP MOUNT 2) SELECT NAME,STATUS FROM V$DATAFILE; 3) ALTER DATABASE DATAFILE '/oracle/dbs/tbs_10.f' ONLINE; 4) RECOVER (AUTOMATIC) DATABASE RECOVER TABLESPACE tsname 5) ALTER DATABASE OPEN;
1) STARTUP MOUNT 2) SELECT NAME,STATUS FROM V$DATAFILE; 3) ALTER DATABASE DATAFILE '/oracle/dbs/tbs_10.f' ONLINE; 4) RECOVER DATABASE UNTIL 1. CANCEL 1. Po provedení je třeba vykonat příkaz CANCEL. 2. TIME '2012-11-19:12:00:00'; 3. CHANGE 10034; 5) ALTER DATABASE OPEN RESETLOGS;
http://docs.oracle.com/cd/a87860_01/doc/s erver.817/a76993/osbackup.htm http://docs.oracle.com/cd/b10501_01/server. 920/a96572/intro.htm http://docs.oracle.com/cd/b19306_01/backu p.102/b14194/rcmsynta009.htm http://docs.oracle.com/cd/b19306_01/backu p.102/b14191.pdf