Vous êtes sur la page 1sur 7

Gestion de stockage :

*********************
faire le lien entre structures logiques (Tablespace,Segement(TS occup par objet),
extent,bloc)
et ses fichiers physique:( [fichiers de donnes], fichiers Redo Log, fichiers de c
ontrole).//
Comment oracle stock les donnes des tables et des index dans les fichiers
et comment ces donnes sont gres physiquement sur le disque ?
tablespace (un ou plusieurs fichiers physiques)
les fichiers de donnes sont dcoupes en blocs d'une taille : DB_BLOCK_SIZE.
*les segments de table.
*les segment de'index.
*les segment d'annulation(UNDO).
*les segment temporaire.
1)Organisation de stockage dans un tablespace:
********************************************
desc DBA_TABLESPACES (tablespace_name,status)
desc dba_extents (owner,segement,tablespace_name)
desc dba_data_files
desc dba_rollback_segs
Tablespace gr localement avec des extents uniformes:
******************************************************
create tablespace tbs_uniform
datafile 'c:\data_uniform.dbf' size 10M
extent management local uniform size 128k ;
Tablespace gr localement avec des extents grs par oracle:
**************************************************************
create tablespace tbs_auto
datafile 'E:\oracle\product\10.1.0\oradata\orcl\data_auto.dbf' size 10M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
Si la table suivante est cre dans un tablespace gr localement avec des extents UNIFO
RMES de 128
Ko
***
create table agent
( id_agent integer,
nom varchar2(50) not null);
***
alter table agent
add(constraint pk_agent primary key(id_agent)
using index
tablespace tbs_uniform);
*****************************
SQL> -- Afficher les tablespaces dfinis par dfaut
SQL> set pagesize 200
SQL> set linesize 200
SQL> col property_value format A30
SQL> col property_name format A30
SQL> select property_value, property_name
2 from database_properties
3 where property_name like DEFAULT%
4 /
2)Agrandir un tablespace
**********************
*Ajouter un fichier de donnes
******************************
alter tablespace tbs_uniform
add datafile 'e:\data02_uniform.dbf' size 10M;
*activation (ou modification) de la clause autoextend:*
*****************************************************
alter tablespace tbs_uniform
add datafile 'e:\data03_uniform.dbf' size 10M
autoextend on next 10M maxsize 15M;
Modifier la taille du fichier rattach au tablespace:
****************************************************
alter database
datafile 'e:\data_uniform.dbf' resize 10M;
*activation (ou modification) de la clause autoextend:*
****************************************************
alter database
datafile 'e:\data03_uniform.dbf'
AUTOEXTEND on next 10M maxsize 20M;
Dplacer un tablespace
**********************
[un fichier donne apartient un tablespace sauf que SYSTEM(contient dictionnaire d
e donne).]
alter tablespace tbs_uniform offline;
copier+coller+renommer.
alter tablespace tbs_uniform
rename datafile 'e:\data02_uniform.dbf' to 'c:\data02_uniform.dbf' ;
alter tablespace tbs_uniform online;
Dplacer un tablespace SYSTEM:
******************************
shutdown immediate
startup mount
alter database rename file 'e:\' to 'e:\deplacement'
alter datbase open;
drop un tablespace:
*******************
alter tablespace tbs_uniform offline;
drop tablespace tbs_uniform;
createion tablespace temporary:
*******************************
create temporary tablespace tbs_tem
datafile 'e:\data_temp.tmp' size 10M
autoextend on;
creation tablespace undo:
*************************
create undo tablespace tbs_undo
datafile 'e:\data_undo.dbf' size 10m
autoextend on;
alter tablespace u retention guarantee ;
voir le UNDO en cour d'utilisation:
***********************************
show parameter undo
basculer vers un nouveau undo_tablespace:
*****************************************
alter system set undo_tablespace= TBS_UNDO scope =memory ;
identifier les fichiers de UNDO:
********************************
select file_name from dba_data_files a ,dba_tablespaces b where a.tablespace_nam
e=b.tablespace_name
and CONTENTS='UNDO' ;
creation utilisateur :
/////////////////////
desc dba_users
desc dba_ts_quotas
create user user01
identified by user01
default tablespace tbs_uniform
temporary tablespace tbs_temp
quota 10M on tbs_uniform
quota 4M on tbs_temp ;
vrifier le rsultat:
////////////////////
select TABLESPACE_NAME ,USERNAME from dba_ts_quotas;

privilge objets:
-----------------
grant select,update,insert on scott.emp
to user01
with grant option;
***************
*Effet cascade*
***************
conn sys/a as sysdba
grant connect to user01 with admin option;
conn user01/user01
grant connect to user02 with admin option;
conn sys/a as sysdba
revoke connect from user01;
conn user02/user02
(user02 se connect)= il n'y pas d'effet cascade.
*******************************
*retirer privilge pas accord*
*******************************
conn sys/a as sysdba
revoke connect from user02;
user02 ne peut pas se connnecter = oui on peut retir un privilge qu'on n'a pas llu
i acord.
privilge system:
----------------
grant connect,create session, resource
to user01
with admin option;
conn scott/tiger
grant select on emp to user01 with grant option;
conn user01/user01
grant select on emp to user02 with grant option;
***************
*Effet cascade*
***************
conn scott/tiger
revoke select on emp to user01;
user02 ne peut pas se connecter = il ya effet de cascade.
*******************************
*retirer privilge pas accord*
*******************************
conn scott/tiger
revoke select on emp to user02;
cannot REVOKE privileges you did not grant = non on neut peut pas.
creation d'un seul privilge:*
******************************
grant select on scott.emp to user02;
creation d'un role(plusieurs privilges):*
******************************************
create role privilge_objet_user02
;
grant select,update,delete,insert on scott.emp to privilge_objet_user02;
grant select,update,delete,insert on scott.emp to privilge_objet_user02;

SAUVEGARDE A FROID (NO ARCHIVELOG)offline(arreter la base de donne):*


************************************
select LOG_MODE from v$database; //por voir le mode
***************************************************
db_recovery_file_dest=E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
*******************************************************************
set linesize 200
set pagesize 200
set feedback on
spool c:\script_froid.txt
select 'host copy' || name || 'c:\sauve' from v$controlfile;
select 'host copy' || name || 'c:\sauve' from v$datafile;
select 'host copy' || member || 'c:\sauve' from v$logfile;
spool off
shutdown immediate
@c:\script_froid.txt
startup
*******
startup
@c:\script_froid.txt
conn scott/tiger
update emp set sal = 1500 where empno = 7834;
conn sys/dba
shudown immediate + SUPPRIMER FICHIER USER01(contient les tables de la base donne
).
= la base donne va pas dmmar le fichier appartient l'instance ).
(NoArchivelog)
on ne pouvez pas rcuprer un seul fichier de donne parce que le fichier de journalis
ation scn prcdent t cras.
on doit arreter la BD.
et restaurer tous les fichiers Oracle.
Rcupration(complte) avec sauvegardes des fichiers de journalisation + NoArchivelog
:* Simulation problme physique:
******************************************************************************
1)shutdowm immediate
2)supprimer fichier USERS01.dbf
3)startup
3)alter database datafile ' ' offline drop;
4)alter database open
//
alter tablespace USERS online;
0)SHUTDOWN ABORT
1)NoArchivelog+sauvgarde froid.
2)un fichier USER01 est perdu.
3)host copy c:\sauve_froid\*.* E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL (restaura
tion totale)
4) startup
!!!!!!les utilisateurs qu'ils devront entrer de nouveau les donnes dj entres aprs la
dernire sauvegarde.
***************************************
Rcupration(parielles) sans sauvegardes des fichier journalisation +NOARCHIVELOG :
************************************************************************
1)shutdown immediate
2)host copy c:\sauve_froid\*.dbf E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL
3)host copy c:\sauve_froid\*.ctl E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL
4)recover database until cancel|time
Restaurer les journaux archivs dans un emplacement diffrent
*************************************************************
1) ALTER SYSTEM ARCHIVE LOG START TO <new location>;
2) RECOVER FROM <new location> DATABASE
Utiliser les fichiers de journalisation archivs automatiquement lors d'une rcuprat
ion
********************************************************************************
*******
SET AUTORECOVERY ON
RECOVER datafile 4
RECOVER AUTOMATIC datafile 4
Rcupration ferm sauvegard d'un fichier qui apartient au tablespace system:
********************************************************************************
**
>shutdown abort
>host copy c:\sauvegarde_froid\system01.dbf E:\.....\
>Startup mount
>Recover database
or
>Recover datafile 'E:\.....\system01.dbf'

Rcupation Ouverte d'un fichier sauvgard qui n'apartiens ni tablespace system ni tab
le d'annulation:
********************************************************************************
********************
>alter database ts offline
>host c:\sauvegarde\db1.dbf E:\data\
>rocover datafile 'E:\data\db1.dbf'
ou
>recover tablespace ts
>alter database datafile 'E:\data\db1.dbf' online;
ou
> alter tablespace ts online;
Rcupration d'un fichier non sanvegard :
******************************************
> alter database create datafile 'E\...\user01.dbf' ;
> alter database create datafile 'E\...u01\\user01.dbf' as 'E\...u02\\user01.db
f'
>alter tablespace ts offline immediate
>ALTER DATABASE create datafile /disk2/DATA/df4.dbf ;
> ALTER TABLESPACE table_data ONLINE;
SAUVEGARDE A CHAUD + (ARCHIVELOG)/Online(sans arreter la base de donne):
*************************************************************************
set linesize 200
set pagesize 200
set feedback on
spool c:\resultat.txt
;
select 'alter tablespace' || tablespace_name || 'begin backup'; from dba_tablesp
aces where contents not like 'TEMPORARY';
select 'host copy' || name || 'c:\sauve_chaud' from v$datafile;
select 'alter tablespace' || tablespace_name || 'end backup'; from dba_tablespac
es where contents not like 'TEMPORARY';
spool off
alter tablespace backup controlfile to 'c:\sauve_chaud\f1.ctl' ;
@c:\resultat.txt

Rcupration: