Gestion de l’espace physique de la base de données Oracle Asmaa Bennouna Univer

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 – Chaque transaction est affectée à un seul segment d'annulation. – Un segment d'annulation peut être utilisé par plusieurs transactions simultanément. Données du cache de tampons Données "anciennes" du tablespace d'annulation Opérations LMD UPDATE Tampon de journa- lisation Fichiers de journalisation Informations nouvelles sur les modifications dans les fichiers de journalisation Segment d'annulation 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 modification Mode de reproduction d'une modification Utilisation pour Annulation, cohérence en lecture, flashback Réimplémentation des modifications de la base de données Stockage dans Segments d'annulation Fichiers de journalisation Protection contre Lectures incohérentes dans les systèmes multiutilisateurs Pertes de données Fichiers de journalisation Segment d'annulation 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 Une transaction échoue si elle génère trop d'informations d'annulation par rapport à l'espace disponible. Les instructions SELECT dont l'exécution prend 15 minutes ou moins sont toujours satisfaites. Données d'annulation stockées dans le tablespace d'annulation Période garantie : 15 minutes SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE; 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 : – enregistrent les modifications apportées à la base de données – doivent être multiplexés afin d'éviter tout risque de perte • Le processus Log Writer écrit : – lors d'une validation (commit) – lorsqu'un tiers du tampon de journalisation est plein – toutes les trois secondes – avant une écriture par le processus DBWn – avant les fermetures "propres" de la base Groupe de fichiers de journa- lisation 1 Groupe de fichiers de journa- lisation 3 Groupe de fichiers de journa- lisation 2 SGA Tampon de journalisation Processus Log Writer LGWR 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. • Il est recommandé de respecter les règles suivantes : – Au moins deux membres (fichiers) par groupe – Emplacement de chaque membre : • Sur un disque ou un contrôleur distinct Groupe 1 Groupe 2 Groupe 3 Membre a Membre a Membre a Membre b Membre b Membre b Disk1 Disk2 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; uploads/Management/gestion-des-tablespaces-1.pdf

  • 38
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 14, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.7687MB