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 Datafiles Archived logs
Backup Method Operating system utility Operating system utility
Control files
SQL statement
Initialization parameter file
SQL statement
Network and password files
Operating system utility
Logical objects (tables, indexes, PL/SQL units)
Export utility
Example % cp df3.f df3.bak % cp log_1_23.arc log_1_23.bak SQL> ALTER DATABASE BACKUP CONTROLFILE TO cf1.bak SQL> CREATE PFILE = init.ora.bak FROM SPFILE; % 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í
1) 2) 3) 4) 5)
6)
Pokud můžeme databázi vypnout SHUTDOWN NORMAL| IMMEDIATE| TRANSACTIONAL % cp /disk1/oracle/dbs/*.dbf /disk2/backup % cp /disk1/oracle/dbs/*.cf /disk2/backup % cp /disk1/oracle/network/admin/*.ora /disk2/backup % cp /disk1/oracle/rdbms/admin/*.ora /disk2/backup STARTUP
SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'users'; ALTER TABLESPACE users BEGIN BACKUP; % cp /oracle/dbs/tbs_21.f /oracle/backup/tbs_21.backup % cp /oracle/dbs/tbs_22.f /oracle/backup/tbs_22.backup ALTER TABLESPACE users END BACKUP; Zálohování logů (současných i archivovaných)
1)
2) 3) 4) 5) 6)
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) 2) 3) 4)
STARTUP MOUNT RESTORE DATABASE; RECOVER DATABASE 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
1)
2) 3) 4)
Pro obnovení části DB ALTER TABLESPACE users OFFLINE IMMEDIATE; Zkopírovat dané soubory ze zálohy RECOVER TABLESPACE users ALTER TABLESPACE users ONLINE Obnovení celé DB
Nutně potřebujeme datové soubory a logy
Aktualizace datových souborů
Kompletní obnova STARTUP MOUNT SELECT NAME,STATUS FROM V$DATAFILE; ALTER DATABASE DATAFILE '/oracle/dbs/tbs_10.f' ONLINE; RECOVER (AUTOMATIC) DATABASE
1) 2) 3)
4)
5)
Díky (archivovaným) aktuálním redo logům
RECOVER TABLESPACE tsname
ALTER DATABASE OPEN;
1) 2) 3) 4)
STARTUP MOUNT SELECT NAME,STATUS FROM V$DATAFILE; ALTER DATABASE DATAFILE '/oracle/dbs/tbs_10.f' ONLINE; RECOVER DATABASE UNTIL 1.
CANCEL 1. Po provedení je třeba vykonat příkaz CANCEL.
TIME '2012-11-19:12:00:00'; 3. CHANGE 10034; 2. 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