### Préparation à l'Entretien DBA Oracle
#### 1. Installation et Configuration d’Oracle 19c sous Oracle Linux
- Préparer le logiciel Oracle.
- Installer l’OS (Oracle Linux) en définissant les partitions et le swap.
- Configurer les fichiers de pré-installation et le fichier `bash_profile`.
- Exécuter **DBCA** pour installer la base de données.
#### 2. Fichiers de Configuration Importants en Oracle
- **Fichier de contrôle** : Stocke la structure de la base de données.
- **Fichiers logs (redo logs, archive logs)** : Permettent la récupération après
incident.
- **Fichiers de paramètres (spfile, pfile)** : Définissent la configuration de la
base.
#### 3. Bonnes Pratiques pour Sécuriser une Base de Données Oracle
- Surveillance des utilisateurs privilégiés.
- Renouvellement des mots de passe régulièrement.
- Mise en place de l’audit (Audit Trail, Unified Auditing).
- Utilisation de **Transparent Data Encryption (TDE)**.
#### 4. Gestion des Droits d’Accès des Utilisateurs
- Utilisation de **Oracle Enterprise Manager (OEM)** pour gérer les privilèges.
- Application du principe du moindre privilège.
- Création et assignation de **rôles** :
```sql
CREATE ROLE read_only_role;
GRANT SELECT ON clients TO read_only_role;
GRANT read_only_role TO user1;
```
#### 5. Analyse et Optimisation des Performances
- Utilisation de **OEM, AWR, ADDM, ASH** pour surveiller la charge système.
- Optimisation SQL avec **EXPLAIN PLAN, SQL Tuning Advisor**.
- Gestion de la contention des ressources (sessions bloquées, verrous, redo logs).
#### 6. Stratégies de Sauvegarde en Oracle
- Programmation de sauvegardes automatiques avec **RMAN**.
- Types de sauvegarde :
- Complète : `BACKUP DATABASE PLUS ARCHIVELOG;`
- Incrémentale : `BACKUP INCREMENTAL LEVEL 1 DATABASE;`
#### 7. Restauration d’une Base après un Crash avec RMAN
- **Restaurer une sauvegarde complète** :
```sql
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
```
- **Point-In-Time Recovery (PITR)** :
```sql
RMAN> RECOVER DATABASE UNTIL TIME '2025-03-[Link]';
```
#### 8. Surveillance de la Disponibilité d’une Base 24/7
- Utilisation de **OEM Grid Control** pour surveiller en temps réel.
- Déploiement d’alertes automatiques sur l’état de la base et les performances.
#### 9. Fonctionnement des Tablespaces et Impact sur la Performance
- Un tablespace est un ensemble de **datafiles** stockant les données.
- Performance impactée par :
- L’allocation d’espace (autoextend activé/désactivé).
- La fragmentation et la gestion des **Undo Tablespaces**.
#### 10. Diagnostic et Résolution des Problèmes de Performance
- Vérifier la taille des fichiers de données avec `DBA_DATA_FILES`.
- Identifier les requêtes lentes avec **AWR** :
```sql
SELECT * FROM dba_hist_sqlstat ORDER BY elapsed_time_delta DESC FETCH FIRST 10
ROWS ONLY;
```
- Optimiser les requêtes avec **EXPLAIN PLAN et INDEXING** :
```sql
CREATE INDEX idx_montant ON transactions(montant);
```
#### 11. Gestion des Redo Logs en Cas de Corruption
- Vérification de l’état des redo logs :
```sql
SELECT group#, status FROM v$log;
```
- **Solution** : Basculer vers un groupe sain et recréer le fichier corrompu.
```sql
ALTER DATABASE CLEAR LOGFILE GROUP 2;
```
#### 12. Gestion de l’Erreur ORA-01555 (Snapshot Too Old)
- Augmenter la taille de l’Undo Tablespace :
```sql
ALTER DATABASE DATAFILE '/u01/oradata/[Link]' RESIZE 2G;
```
- Vérifier l’état des undo :
```sql
SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb FROM dba_data_files
WHERE tablespace_name = 'UNDOTBS1';
```
#### 13. Expérience en Environnement Bancaire/Microfinance
- **Sécurité** : Audit, chiffrement, gestion fine des accès.
- **Performance** : Optimisation SQL, tuning avec AWR et ADDM.
- **Sauvegarde & Haute Disponibilité** : RMAN, Data Guard, reprise après crash.
#### 14. Exemple de Gestion d’Incident
**Problème :** Lenteur critique sur une application bancaire.
**Diagnostic :**
- Analyse avec OEM et `V$SESSION` → Sessions en attente à cause d’un verrou
bloquant.
- Vérification des **locks** avec `V$LOCK`.
**Résolution :**
- **Fermeture de la session bloquante** après validation :
```sql
ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;
```
- **Ajout d’un index pour optimiser les requêtes** :
```sql
CREATE INDEX idx_nom_client ON clients(nom);
```
- **Résultat** : Temps de traitement réduit de 5 minutes à 5 secondes.
### Conclusion
Ces éléments couvrent les aspects clés d’un DBA Oracle en environnement bancaire.
Réviser ces points te permettra d’être **prêt pour ton entretien samedi**. Bonne
chance ! 🚀