Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation
Fichiers de données Occupent la majeure partie de la base de données Les fichiers de données contiennent des informations de deux types : - Le dictionnaire de données et de travail - Les données des utilisateurs La lecture de ces fichiers de données est faite à l'aide des processus utilisateurs tandis que l'écriture est assuré par le processus DBWR (Database Writer) Organisés selon une structure de stockage logique appelé tablespace. Les tablespace sont constitués d’un ou plusieurs fichiers de données Un fichier de données est propre à un seul tablespace
Tablespace Une base peut être décomposée en tablespaces : partitions logiques contenant un ou plusieurs fichiers. Un fichier appartient à 1 et 1 seul tablespace. Un tablespace peut s'étendre soit par ajout (on-line) d'un fichier, soit par auto-extension du fichier du tablespace. ordres SQL associés aux tablespaces : – SQL> CREATE TABLESPACE... – SQL> DROP TABLESPACE... – SQL> ALTER TABLESPACE...
Tablespace La taille d'un tablespace est la taille de son (ses) fichier(s) d'origine(s). Pour augmenter la taille d'un tablespace, il y a 2 solutions : – Ajouter un fichier au tablespace, qui sera chainé au premier (ALTER TABLESPACE toto ADD DATAFILE...) – mettre le fichier du tablespace en AUTO extension (ALTER DATABASE DATAFILE toto.dbf AUTOEXTEND ON NEXT … MAXSIZE …)
Les différents types de tablespaces spéciaux Tablespaces en lecture seule (READ ONLY tablespaces) Ces tablespaces sont utilisés en lecture seule. Ils permettent de stocker des données statiques. Pour modifier les données d'un Tablespace READ ONLY il est évidemment obligatoire de modifier préalablement son statut. - SQL> ALTER TABLESPACE toto READ ONLY; - SQL> ALTER TABLESPACE toto READ WRITE;
Les différents types de tablespaces spéciaux Tablespaces temporaires (temporary tablespaces) On peut créer un tablespace temporarire par défaut autre que TEMP, où seront stockées toutes les données temporaires (utilisées lors des tris, création d'index, jointures, etc). Ils sont définis lors de la création de la base. – SQL> CREATE DATABASE ma_base... DEFAULT TEMPORARY TABLESPACE mon_temp; ou – ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tempts2; En plus de ce tablespace temporaire par défaut, chaque utilisateur peut se voir assigner un tablespace temporaire particulier SQL> CREATE TEMPORARY TABLESPACE mon_temp TEMPFILE '/oracle/data/temp01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M SQL> CREATE USER toto IDENTIFIED BY toto DEFAULT TABLESPACE data QUOTA 100M ON data TEMPORARY TABLESPACE mon_temp
Les différents types de tablespaces spéciaux Tablespace d'annulation (undo tablespaces) Les UNDO tablespaces sont exclusivement réservés au stockage de segments d'images avant modification des données pour des annulations éventuelles (ROLLBACK). - SQL spécifice associé CREATE UNDO TABLESPACE undo_1 DATAFILE '/tmp/undo1.dbf' SIZE 10M AUTOEXTEND ON
Tablespace – Syntaxe CREATE [UNDO] TABLESPACE tablespace_name DATAFILE Datafile_Options Storage_Options ; UNDO : permet de créer un tablespace UNDO réservé exclusivement à l'annulation des commandes LMD ( Un ROLLBACK permet de revenir en arrière alors que le COMMIT supprimera les lignes du tablespace UNDO ) Datafile_Options: 'filename' [size] K|M [AUTOEXTEND ON|OFF [NEXT int K | M] [MAXSIZE int K | M]] La taille maximale sera illimitée si vous n’avez pas mentionné la taille maximale Storage_Options: LOGGING | NOLOGGING : définit le mode de journalisation par défaut des segments qui seront stockés dans le tablespace et pour lesquels aucun mode de journalisation n’a été défini. ONLINE |OFFLINE: permet de rendre le tablespace disponible ou non, juste après la création. PERMANENT | TEMPORARY EXTENT MANAGEMENT{ DICTIONARY | LOCAL {AUTOALLOCATE | UNIFORM [SIZE int K | M]}} AUTOALLOCATE | UNIFORM permet d'indiquer que le tablespace s'agrandit de manière uniforme ou automatiquement.
Tablespace – Interface
Datafiles spécifications - Interface
Tablespace - Exemple CREATE TEMPORARY TABLESPACE temp TEMPFILE ‘c:\oracle\oradata\oragestion\temp01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M; CREATE UNDO TABLESPACE undog DATAFILE ‘c:\oracle\oradata\oragestion\undogest.dbf' size 100M; – ALTER SYSTEM SET UNDO_TABLESPACE= undog; CREATE TABLESPACE ts_mydemo logging DATAFILE '/data/ts_mydemo01.dbf' SIZE 50M, '/data/ts_mydemo02.dbf' SIZE 64M autoextend on next 32m maxsize 2048m extent management local; CREATE TABLESPACE ts_myapp logging DATAFILE '/data/ts_myapp01.dbf' SIZE 200M, '/data/ts_myapp02.dbf' SIZE 500M autoextend off extent management local; Ajouter un fichier de données ALTER TABLESPACE ora_data ADD DATAFILE ‘c:\oracle\oradata\oragestion\FGEST01.dbf' size 100M;
Tablespace - Exemple Activer Alter Tablespace T1 ONLINE; Désactiver Alter Tablespace T1 OFFLINE; Renommer un fichier ALTER TABLESPACE T1 RENAME DATAFILE 'T:\oradata\oragestFT1.DBF‘ TO 'T:\oradata\oragest\FT2.DBF‘ Supprimer un fichier de données ALTER TABLESPACE T1 DROP DATAFILE 'T:\oradata\live\Temp02.DBF' NB. Le fichier sera physiquement supprimé par oracle selon les restrictions: - le fichier de données doit être vide (ne contient aucune extention) - ne peut pas être le premier fichier créé pour le tablespace - ne doit pas appartenir à un tablespace en lecture seule - doit être en ligne - ne doit pas appartenir au tablespace SYSTEM
Structure d’une base de données (ORACLE) tablespaces Segments extents Blocs de données Oracle Fichiers du système d’exploitation Bloc du système d’exploitation 15 Logique Physique
Les fichiers de contrôle contiennent les informations relatives à la structure physique de la base de données – Les adresses physiques d’accès aux ressources (fichiers de données et journaux) – Les dates de création Contiennent des informations sur l’état de la base Ils sont multiplexés afin de protéger la base contre toute défaillance due à la perte de ces fichiers. Ils sont nécessaires pour démarrer l’instance : au démarrage les fichiers de contrôle sont lus Leurs adresses physiques est indiqué par un paramètre d’initialisation Extension.ctl
Les fichiers de contrôle La vue V$CONTROLFILE : Affiche tous les noms des fichiers de contrôles et leurs statut qui peut être NULL ou INVALID SELECT * FROM V$CONTROLFILE; On peut aussi visualiser ces informations avec la commande : show parameter control_files