0% ont trouvé ce document utile (0 vote)
359 vues28 pages

Gestion Des Tablespaces 1

Ce document décrit la gestion de l'espace physique des bases de données Oracle, notamment les tablespaces, les datafiles, les tablespaces temporaires et le tablespace UNDO.

Transféré par

said
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
359 vues28 pages

Gestion Des Tablespaces 1

Ce document décrit la gestion de l'espace physique des bases de données Oracle, notamment les tablespaces, les datafiles, les tablespaces temporaires et le tablespace UNDO.

Transféré par

said
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Gestion de l’espace physique de

la base de données Oracle


Asmaa Bennouna
Université Mundiapolis Ingénierie
2020/2021
Les Tablespaces et les Datafiles
Utiliser différents tablespaces dans une même base de données permet :

• Séparer les données des utilisateurs des données du dictionnaire Oracle et


réduire ainsi les contentions en E/S.
• Séparer les données de différentes applications dans différents
tablespaces. La mise Offline d’un tablespace aura moins d’impact sur les
applications.
• Stocker les fichiers de données des différents tablespaces sur différents
disk drives afin de réduire les contentions en I/O.
• Avoir la possibilité de mettre offline un tablespace particulier sans affecter
le reste de la BD. qui reste totalement disponible
• Optimiser les performances de la BD. en réservant un tablespace pour
chaque usage particulier : high update activity, read-only activity, ou
temporary segment storage.
• Faire des sauvegardes de tablespaces individuels.
Locally Managed Tablespaces

• Fast, concurrent space operations. Space allocations and deallocations


modify locally managed resources (bitmaps stored in header files).

• Enhanced performance

• Space allocation is simplified, because when the ‪AUTOALLOCATE‬ clause is


specified, the database automatically selects the appropriate extent size.

• User reliance on the data dictionary is reduced, because the necessary


information is stored in file headers and bitmap blocks.

• Coalescing free extents is unnecessary for locally managed tablespaces.


Créer un Locally Managed Tablespace

• CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf'


SIZE 50M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; (DEFAULT)

• CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf'


SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

• CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf'


SIZE 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT
AUTO; (La gestion de l’espace libre à l’intérieur de chaque segment du
tablespace est aussi automatique, option par défaut)
Bigfile Tablespace
CREATE BIGFILE TABLESPACE bigtbs
DATAFILE '/u02/oracle/data/bigtbs01.dbf' SIZE 2T ...

• Un bigfile tablespace contient 1 et 1 seul data,file mais


qui peut atteindre des tailles bcp plus volumineuses (up
to 4G blocks)
• A bigfile tablespace with 8K blocks can contain a 32
terabyte data file. A bigfile tablespace with 32K blocks
can contain a 128 terabyte data file.
Default Temporary Tablespace
• ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;

• SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES


WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE’;

• CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE


'/u02/oracle/data/lmtemp01.dbf’ SIZE 20M REUSEEXTENT MANAGEMENT
LOCAL UNIFORM SIZE 16M;

• ‪Consulter V$TEMPFILE et DBA_TEMP_FILES

• SELECT * from DBA_TEMP_FREE_SPACE;


TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE
----------------------------------- --------------- --------------- ----------
TEMP 250609664 250609664 249561088
Utiliser un groupe de tablespaces
temporaires
• CREATE TEMPORARY TABLESPACE lmtemp2 TEMPFILE
'/u02/oracle/data/lmtemp201.dbf’ SIZE 50M TABLESPACE
GROUP group1;

• ALTER TABLESPACE lmtemp TABLESPACE GROUP group1;

• ALTER TABLESPACE lmtemp3 TABLESPACE GROUP '';

• ALTER DATABASE DEFAULT TEMPORARY TABLESPACE group2;


Non Standard Blocksize tablespaces

• CREATE TABLESPACE lmtbsb DATAFILE


'/u02/oracle/data/lmtbsb01.dbf' SIZE 50M EXTENT
MANAGEMENT LOCAL UNIFORM SIZE 128K
BLOCKSIZE 64K;
• ‪DB_CACHE_SIZE et DB_nK_CACHE_SIZE sont
initialisés
• Permet de définir un tablespace avec une taille de
blocks différente de la standard.
• Répond à des besoins exceptionnels dans la BD.‬
Modifier les caractéristiques d’un
tablespace
• Alter tablespace tbs1 nologging (ou logging);

• Alter tablespace tbs1 Offline (online);


(On peut pas mettre offline les tbs : SYSTEM, UNDO et
TEMPORARY)
• ALTER TABLESPACE flights READ ONLY;

• ALTER TABLESPACE flights READ WRITE;


Augmenter la taille d’un tablespace
• ALTER TABLESPACE lmtbsb ADD DATAFILE
'/u02/oracle/data/lmtbsb02.dbf' SIZE 1 G;

• Alter database datafile ‘/u02/oracle/data/lmtbsb02.dbf ' resize 2 G;

• Alter database datafile ‘/u02/oracle/data/lmtbsb02.dbf ' Autoextend on next 1G


maxsize 10G;
• Alter database datafile ‘/u02/oracle/data/lmtbsb02.dbf ' Autoextend off;

• ALTER TABLESPACE lmtemp ADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE


180 M REUSE;

• ALTER TABLESPACE bigtbs RESIZE 80G;

• ALTER TABLESPACE bigtbs AUTOEXTEND ON NEXT 20G;


Autres commandes de gestion des
tablespaces
• ALTER TABLESPACE users RENAME TO usersts;
Pour les tablespaces temporaires :
• ALTER TABLESPACE lmtemp1 SHRINK SPACE KEEP 20M;

• DROP TABLESPACE users INCLUDING CONTENTS AND


DATAFILES;

• ALTER DATABASE TEMPFILE


'/u02/oracle/data/lmtemp02.dbf' DROP INCLUDING
DATAFILES;
Gestion des Datafiles (autres)
1/ OFFLINE/ONLINE
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf'
ONLINE I OFFLINE (la BD doit être en mode archivelog!);

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf’


OFFLINE FOR DROP; (noarchivelog)

2/ Renaming and Relocationg Datafiles


a) ALTER TABLESPACE users OFFLINE NORMAL;
b) Rename and relocate the data files using the operating system.
c) ALTER TABLESPACE users
RENAME DATAFILE '/u02/oracle/rbdb1/user1.dbf’, '/u02/oracle/rbdb1/user2.dbf'
TO '/u02/oracle/rbdb2/users01.dbf’, '/u02/oracle/rbdb2/users02.dbf’;
d) ALTER TABLESPACE users ONLINE ;
Informations sur les Tablespaces et
Datafiles
1/ Les Datafiles
DBA_DATA_FILES‬
DBA_EXTENTS‬
DBA_FREE_SPACE‬
V$DATAFILE‬
V$DATAFILE_HEADER‬
2/ Les Tablespace
‪V$TABLESPACE‬
‪DBA_TABLESPACES
‪DBA_TABLESPACE_GROUPS‬
DBA_SEGMENTS
‪DBA_EXTENTS
DBA_FREE_SPACE
DBA_TEMP_FREE_SPACE‬
Le Tablespace UNDO
• Stocke les données d'annulation qui :

– sont une copie des données d'origine avant une modification


– sont capturées pour toute transaction qui modifie des données
– sont conservées au minimum jusqu'à la fin de la transaction
– permettent :
• les opérations d'annulation
• des interrogations cohérentes en lecture
• les opérations Oracle Flashback Query,
Oracle Flashback Transaction et Oracle
Flashback Table
• la récupération suite à l'échec
de transactions
Transactions et données d'annulation
Segment
d'annulation
Données Données "anciennes"
du cache du tablespace d'annulation
de tampons

Opérations LMD Tampon de Informations nouvelles sur


UPDATE journa- Fichiers de
lisation les modifications dans journalisation
les fichiers de journalisation

– Chaque transaction est affectée à un seul segment


d'annulation.
– Un segment d'annulation peut être utilisé par plusieurs
transactions simultanément.
Stockage des informations d'annulation

• Les informations d'annulation sont stockées dans des


segments d'annulation, lesquels sont à leur tour stockés dans
un tablespace d'annulation. Les tablespaces d'annulation :
– sont utilisés uniquement pour les segments d'annulation
– présentent des exigences particulières en termes de
récupération
– sont associés à une seule instance
– nécessitent qu'un seul tablespace d'annulation soit
accessible en écriture pour une instance donnée à un
instant précis
– Paramètres : UNDO_TABLESPACE, UNDO_RETENTION
Données d'annulation et données de journalisation

Annulation Données de journalisation

Enregistrement de Mode d'annulation d'une Mode de reproduction d'une


modification modification
Utilisation pour Annulation, cohérence en Réimplémentation des
lecture, flashback modifications de la base de
données
Stockage dans Segments d'annulation Fichiers de journalisation

Protection contre Lectures incohérentes dans Pertes de données


les systèmes
multiutilisateurs

Segment
d'annulation
Fichiers de
journalisation
Gestion automatique des segments d’annulations :
• Gestion complètement automatisée des données et du volume
d'annulation dans un tablespace d'annulation dédié
• Utilisation dans toutes les sessions
• Réglage automatique dans les tablespaces en auto-extension
(AUTOEXTEND) pour les besoins des interrogations de longue durée
• Réglage automatique dans les tablespaces de taille fixe pour une
conservation optimale

Tâches du DBA :
• Configurer la période de conservation des informations d'annulation
• Eviter la consommation excessive d'espace et les erreurs "Snapshot
too old"
Configurer la période de conservation
des informations d'annulation

• Le paramètre UNDO_RETENTION indique (en secondes) la


durée de conservation des informations d'annulation déjà
validées.

• Vous ne devez configurer ce paramètre que dans les cas


suivants :

– L'option AUTOEXTEND du tablespace d'annulation est activée.


– Vous souhaitez garantir la conservation des données.

DBA
Garantir la période de conservation des informations
d'annulation
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

Période garantie :
15 minutes

Données d'annulation stockées


dans le tablespace d'annulation

Les instructions SELECT Une transaction échoue si elle génère


dont l'exécution prend 15 minutes trop d'informations d'annulation
ou moins sont toujours satisfaites. par rapport à l'espace disponible.
Remarque : Cet exemple se fonde sur un paramètre UNDO_RETENTION
de 900 secondes (15 minutes).
Gestion graphique des annulations : Informations
générales

Taille de tablespace
actuelle
Les Redo Logs Online
Les Redo Logs Online
• Les fichiers de journalisation :
SGA – enregistrent les modifications
apportées à la base de données
– doivent être multiplexés afin
Tampon de journalisation d'éviter tout risque de perte

LGWR • Le processus Log Writer écrit :


– lors d'une validation (commit)
Processus Log Writer – lorsqu'un tiers du tampon de
journalisation est plein
– toutes les trois secondes
– avant une écriture par le
Groupe de fichiers Groupe de Groupe de processus DBWn
de journa- fichiers fichiers
lisation 1 de journa- de journa- – avant les fermetures "propres" de
lisation 2 lisation 3
la base
Les Redo Logs Online
• Multiplexez les groupes de
fichiers de journalisation afin de
protéger la base contre toute
défaillance physique ou perte
de données.
Disk1 Membre a Membre a Membre a

• Il est recommandé de respecter


Disk2
Membre b Membre b Membre b les règles suivantes :
– Au moins deux membres
Groupe 1 Groupe 2 Groupe 3 (fichiers) par groupe
– Emplacement de chaque
membre :
• Sur un disque ou un contrôleur
distinct
Les Redo Logs Online
SELECT * FROM V$LOG;

GROUP# THREAD# SEQ BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM


------ ------- ----- ------- ------- --- --------- ------------- ---------
1 1 10605 1048576 1 YES ACTIVE 11515628 16-APR-00
2 1 10606 1048576 1 NO CURRENT 11517595 16-APR-00
3 1 10603 1048576 1 YES INACTIVE 11511666 16-APR-00
4 1 10604 1048576 1 YES INACTIVE 11513647 16-APR-00

SELECT * FROM V$LOGFILE;

GROUP# STATUS MEMBER


------ ------- ----------------------------------
1 D:\ORANT\ORADATA\IDDB2\REDO04.LOG
2 D:\ORANT\ORADATA\IDDB2\REDO03.LOG
3 D:\ORANT\ORADATA\IDDB2\REDO02.LOG
4 D:\ORANT\ORADATA\IDDB2\REDO01.LOG
Gestion des Redo Logs Online
ALTER DATABASE
ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')
SIZE 100M;

ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;

ALTER DATABASE DROP LOGFILE GROUP 3; (groupe non actif et non courant, sinon
forcer un switch! )

ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';

ALTER SYSTEM SWITCH LOGFILE;

ALTER DATABASE CLEAR LOGFILE GROUP 3;


Déplacement des Redo Logs Online
1/ SHUTDOWN IMMEDIATE;

2/ Copy the redo log files to the new location.


mv /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
mv /diska/logs/log2a.rdo /diskc/logs/log2c.rdo

3/ Startup the database, mount, but do not open it. CONNECT / as SYSDBA
STARTUP MOUNT

4/ Rename the redo log members. ALTER DATABASE


RENAME FILE '/diska/logs/log1a.rdo', '/diska/logs/log2a.rdo'
TO '/diskc/logs/log1c.rdo', '/diskc/logs/log2c.rdo';

5/ ALTER DATABASE OPEN;


Interface EM

Cliquez sur les liens pour


afficher des informations
détaillées.

Vous aimerez peut-être aussi