Sunteți pe pagina 1din 18

CAP.

Arhivarea, crearea copiilor


de siguranţă şi restaurarea
unei baze de date
Tipuri de caderi intr-o baza de date

acţiuni ale utilizatorilor;


căderi ale instanţei;
căderi ale suporturilor fizice de stocare a bazei de
date.
Restaurarea automată a bazei de date (SMON)
1. Determinarea fişierelor nesincronizate din baza
de date.
2. Recuperearea modificărilor tranzacţiilor
consemnate în fişierele redo log şi nescrise în
fişierele de date.
3. În baza de date sunt consemnate atât
tranzacţiile comise cât şi cele necomise.
4. Anularea tranzacţiilor necomise.
5. În baza de date sunt consemnate numai
tranzacţiile comise.
6. În final toate fişierele bazei de date sunt
sincronizate.
Sincronizarea fişierelor - rolul procesului CKPT
 Evenimentul checkpoint înseamnă că toate toate
buffer-ele modificate din DB buffer cache şi log
buffer au fost scrise pe disc - evenimentul care
sincronizează operaţiile de scriere dintre LGWR
şi DBWR
 Procesul CKPT este întotdeauna activ şi
actualizează antetul fişierelor după încheierea
cu succes a unui checkpoint, adică după ce
DBWR a trimis toate bufferele modificate pe
disc, iar LGWR a scris în fişierele redo log toate
intrările din log buffer.
Strategii de backup şi recovery
 Backup-uri logice care implică salvarea într-un
fişier de siguranţă doar a unui set determinat de
înregistrări din baza de date, indiferent de
locaţia fizică a acestora (EXP –> IMP).
 Backup-uri fizice presupun copierea fişierelor ce
formează baza de date indiferent care este
conţinutul acestora:
 Backup-uri offline – ce sunt efectuate după
ce baza de date a fost închisă normal
(shutdown normal)
 Backup-uri online pentru bazele de date ce
rulează în modul ARCHIVE LOG. Aceste
backup-uri sunt efectuate când baza de date
este deschisă
Utilitarul pentru export EXP
Parametru Descriere
USERID Numele/parola contului care efectuează exportul
FILE Numele fişierului ce va rezulta în urma
exportului
FULL Y/N - Indică efectuarea unui export in modul
FULL
OWNER Lista conturilor utilizatorilor ale căror obiecte
vor fi exportate în modul USER
TABLES Lista tabelelor care vor fi exportate
LOG Numele fişierului log în care va fi consemnată
derularea procedurii de export
CONSISTENT Y/N – flag care specifică efectuarea exportului
unei versiuni consistente a bazei de date
Utilitarul pentru export EXP

C:> exp system/manager file=expdat.dmp full=Y

C:> exp system/manager file=expdat.dmp


compress=Y owner=(ANDREI, DANIELA)

C:> exp andrei/student file=expdat.dmp


tables=(PERSONAL, DEPT) INDEXES=N
Utilitarul pentru import IMP
Parametru Descriere

USERID Numele/parola contului care efectuează importul


FILE Numele fişierului de export care urmează a fi importat
FULL Flag Y/N care specifică dacă va fi efectuat sau nu import
al întregului fişier de export
FROMUSER Lista conturilor utilizatorilor ale căror obiecte vor fi
importate din fişierul de export (FULL= N)
TOUSER Lista conturilor în care vor fi importate obiectele din
fişierul de export ale conturilor specificate prin clauza
FROMUSER
LOG Numele fişierului log în care va fi consemnată derularea
procedurii de export

COMMIT Y/N – Flag care indică executarea comenzilor COMMIT


după importul fiecărui obiect
Utilitarul pentru import IMP

C:> imp system/manager file=expdat.dmp full=Y

C:> imp system/manager file = expdat.dmp


fromuser = ANDREI touser = DANIELA tables =
PERSONAL
Strategie de BK logic (1)
1. identificarea tuturor utilizatorilor care au obiecte (tabele)
în respectivul tablespace;
select tablespace_name, Owner, COUNT(*) || ' tabele' Objects
from dba_tables
group by tablespace_name, owner
union
select tablespace_name, Owner, COUNT(*) || ' indecsi' Objects
from dba_indexes
group by tablespace_name, owner
2. identificarea obiectelor (tabelelor şi indecşi) utilizatorilor
descoperiţi anterior care se găsesc în alte tablespace-uri;
Strategie de BK logic (2)
3. distrugerea tabelelor identificate în al doilea pas (DROP
TABLE …);
4. efectuarea exportului pentru toţi utilizatorii din primul
pas;
5. distrugerea tablespace-urilor care urmează a fi restaurate
(DROP TABLESPACE … INCLUDING CONTENTS);
6. recrearea tablespace-urilor ce urmează a fi restaurate
(CREATE TABLESPACE);
7. efectuarea importului fişierului dump rezultat în urma
exportului anterior
Backup-uri fizice - Backup-uri offline sau closed
a. Închiderea normală a bazei de date
shutdown normal
b. Copierea fizică fişierelor bazei de date
set head off
set feedback off
spool C:\oracle\admin\U01\scripturi\backup_u01.bat
select 'COPY '||name||' E:\BACKUP\ /Y' from v$datafile
union
select 'COPY '||name||' E:\BACKUP\ /Y' from v$controlfile
union
select 'COPY '||member||' E:\BACKUP\ /Y' from v$logfile;
spool off
set head on
set feedback on
connect sys/u01@u01 as sysdba
shutdown
@ C:\oracle\admin\U01\scripturi\backup_u01.bat
Backup-uri fizice
Backup-uri online sau open
a. Activarea opţiunii de arhivare

-- Se invocă utilitarul sqlplus


C:>sqlplus /nolog
connect sys/sys@u01 as sysdba
-- Se porneşte instanţa în modul mount
Startup
-- Se activează opţiunea de arhivare printr-o comandă
alter database archivelog;
-- Se activează procesul ARCH pentru arhivare automată
alter system archive log start;
-- Sau simplu
archive log start;
-- Se deschide baza de date
alter database open;
Backup-uri fizice
Backup-uri online sau open
b. Parametrii de iniţializare LOG_ARCHIVE_...
Log_archive_start = TRUE
log_archive_dest = 'D:\oracle\admin\U01\archive'
Sau
log_archive_dest_1 =
"location= D:\oracle\admin\U01\archive "
log_archive_dest_2 =
"location=E:\oracle\admin\U01\archive "

log_archive_format =
%%ORACLE_SID%%T%TS%S.ARC
Backup-uri fizice
Backup-uri online sau open
c. Comenzi pentru efectuarea copiilor de siguranţă
Punerea fiecărui tablespace în starea backup:

ALTER TABLESPACE nume_tablespace BEGIN BACKUP;


Efectuarea copiilor de siguranţă pentru fişierele fiecărui tablespace:

C:>COPY cale_nume_fisier destinatie_backup /y


Aducerea tablespace-ului pentru care s-a efectuat backup-ul în starea normală

ALTER TABLESPACE nume_tablespace END BACKUP;


Forţarea unui checkpoint pentru sincronizarea fişierelor

ALTER SYSTEM SWITCH LOGFILE;


Comanda pentru crearea unei copii a fişierului de control

alter database backup controlfile to destinatie_backup_controlfile;


Scenariu de recovery (BK OFFLINE)
-- Pornirea în modul mount a instanţei:

startup mount
-- Actualizarea fişierului de control dacă fişierele de date au fost restaurate într-o
-- locaţie diferită de cea originală

ALTER DATABASE RENAME FILE


‘d:\oracle\u01data\data01.dbf’ to ‘d:\oracle\u01data\data01.dbf’,
‘d:\oracle\u01data\data02.dbf’ to ‘d:\oracle\u01data\data02.dbf’;
-- Repornirea bazei de date

alter database open;


Scenariu de recovery cu arhivare
-- Pornirea în modul mount a instanţei:

startup mount
-- Actualizarea fişierului de control dacă fişierele de date
-- au fost restaurate într-o locaţie diferită de cea originală

ALTER DATABASE RENAME FILE


‘d:\oracle\u01data\data01.dbf’ to ‘d:\oracle\u01data\data01.dbf’,
‘d:\oracle\u01data\data02.dbf’ to ‘d:\oracle\u01data\data02.dbf’;
-- Executarea comenzii RECOVER

recover automatic database;


-- Sau

recover automatic datafile cale_nume_fisier_restaurat;


-- Deschiderea bazei de date

alter database open;


Scenariu de recovery incomplet cu arhivare

-- Pornirea în modul mount a instanţei:


startup mount pfile=d:\oracle\admin\u01\pfile\init.ora
-- Actualizarea fişierului de control dacă fişierele de date
-- au fost restaurate într-o locaţie diferită de cea originală
ALTER DATABASE RENAME FILE
‘d:\oracle\u01data\data01.dbf’ to ‘d:\oracle\u01data\data01.dbf’,
‘d:\oracle\u01data\data02.dbf’ to ‘d:\oracle\u01data\data02.dbf’;
-- Executarea comenzii RECOVER
recover automatic database;
recover database until time ‘2001-05-21:20:00:00’;
--Sau
recover database until cancel;

S-ar putea să vă placă și