Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🧠 Oracle DBA – PrĂ©paration Entretien Technique

Questions probables + rĂ©ponses attendues + scripts SQL “prĂȘt-Ă -sortir”. (IDEO-Lab / v1)

1

Architecture Oracle

Instance vs Database, SGA/PGA, processus (DBWR/LGWR/CKPT/SMON/PMON), UNDO/REDO.

InstanceSGAREDO
2

RMAN / Backup & Recovery

Archivelog, full/incr, restore datafile/controlfile, PITR, tests de restauration, RPO/RTO.

RMANDGPITR
3

Perf & Tuning (AWR/ASH)

Wait events, Top SQL, plans rĂ©els, SQL Monitor, diagnostic “mĂ©thode” en prod.

AWRASHWaits
4

RAC / ASM

Services, Cache Fusion, interconnect, diskgroups, rebalance, skew, “un node hot”.

RACASMGC
5

Sécurité & Gouvernance

Users/roles, privilÚges minimaux, audit, chiffrement, secrets, rotation, conformité.

Least-PrivilegeAuditTLS
6

PL/SQL (indispensable)

Packages, exceptions, bulk collect/forall, jobs scheduler, instrumentation, anti-patterns.

PackagesBulkScheduler
7

Incidents Prod (piĂšges)

Archive log full, tablespace plein, ORA- errors, “redo log switch”, deadlocks, runaway SQL.

ProdRunbookRCA
8

Entretien “comportemental”

Communication incident, priorisation, gestion du stress, décision redémarrage, reporting.

CommunicationPrioritésCalme
9

Banque de questions

Liste “interview-style” + rĂ©ponses attendues + relances typiques du recruteur.

Q&ARelancesSenior
Cheat-Sheet “DBA Oracle” (à relire avant l’entretien)
Les 12 “must say” (senior vibe)
  • Instance vs Database (SGA/PGA + datafiles/controlfiles/redo).
  • UNDO vs REDO : cohĂ©rence lecture/rollback vs durabilitĂ© (LGWR).
  • RMAN + Archivelog + tests restore (sinon backup = thĂ©orie).
  • AWR / ASH / ADDM : mĂ©thodo de diagnostic, pas d’impro.
  • Wait events : CPU vs I/O vs locks (pas “la DB est lente”).
  • Plan rĂ©el : DBMS_XPLAN.DISPLAY_CURSOR (+ stats, cardinalitĂ©).
  • Row-by-row = anti-pattern ; bulk collect / forall ; SQL set-based.
  • RAC : services, “skew”, interconnect, Cache Fusion.
  • ASM : diskgroups + rebalance + REDUNDANCY.
  • Runbook incident + communication (impact, ETA, dĂ©cision).
  • SĂ©curitĂ© : least privilege, audit, secrets, rotation.
  • Patching : GI/RDBMS, fenĂȘtre, rollback plan, conformitĂ©.
Punchlines
“Je ne redĂ©marre jamais ‘pour voir’. Je diagnostique d’abord, je mesure l’impact, puis j’agis.”
“Un backup non restaurĂ© n’est pas un backup : je teste PITR au moins trimestriellement.”
“En perf, je cherche d’abord oĂč part le temps : CPU, I/O, locks, rĂ©seau, puis seulement je tune.”
Mini-check
Avant entretien :
- connaĂźtre DBWR/LGWR/CKPT/SMON/PMON/ARCn
- savoir expliquer ‘log file sync’ / ‘TX row lock’ / ‘db file sequential read’
- 3 exemples d’incidents prod rĂ©solus (mĂ©thodo + rĂ©sultat)
Walkthrough : “La base est lente” (mĂ©thodo d’intervention)
0) Cadrage (5 min)
QuestionPourquoiExemple de réponse attendue
Depuis quand ?corrĂ©lation release / batch / infra“Depuis 10h12 aprĂšs un batch”
Impact ?prioritĂ© (prod critique vs reporting)“front KO, SLA client”
PĂ©rimĂštre ?1 base, 1 service, RAC entier ?“Instance 2 saturĂ©e”
1) Vue globale
- CPU / Load / IO wait (OS + DB)
- Sessions actives & waiting
- AWR/ASH (si dispo) sur la fenĂȘtre exacte
- Top wait events (catégories)
Signals
  • CPU 100% + top SQL → requĂȘte runaway, stats, plan.
  • I/O waits → stockage, full scans, hot segments.
  • log file sync → commits trop frĂ©quents / latency storage redo.
  • RAC GC waits → interconnect / skew / services.
Ce que l’intervieweur veut
Une “mĂ©thode”. Pas une liste d’outils.
D’abord localiser le temps perdu (waits), ensuite seulement optimiser.
2) SQL / Sessions
- Top SQL (CPU/elapsed/gets/reads)
- VĂ©rifier plan RÉEL (DISPLAY_CURSOR)
- SQL Monitor pour long running
- Vérifier stats, bind peeking, cardinalité
Expliquer :
- “estimated vs actual rows”
- “full scan” peut ĂȘtre correct si DW
- index = pas toujours solution (write overhead)
3) Locks / Contention
- blocking_session / blocked sessions
- enq: TX row lock contention
- deadlocks (trace + application fix)
- latch/mutex (shared pool / parse storm)
“Je cherche d’abord QUI bloque QUI, puis la transaction racine,
puis je dĂ©cide : kill session ? escalade app ? fenĂȘtre ?”
4) Actions sûres (prod)
ActionQuandRisque
Kill session runawaySQL unique qui tue toutrollback long si grosse txn
Switch service RACskew sur un nodeimpact sessions courantes
Plan bascule / DGstorage KO / corruptionRTO/RPO selon mode
Restartdernier recours (fuite mémoire avérée)downtime + recovery
SQL Pack – commandes “interview” (V$ / diagnostics)
Sessions actives / attente
-- Sessions actives (simple)
SELECT sid, serial#, username, status, event, wait_class, seconds_in_wait
FROM v$session
WHERE type='USER'
ORDER BY status DESC, seconds_in_wait DESC;

-- Top events (instance)
SELECT event, total_waits, time_waited/100 time_waited_s
FROM v$system_event
ORDER BY time_waited DESC;
Blocking sessions / verrous
-- Qui bloque qui
SELECT sid, serial#, blocking_session, event, seconds_in_wait
FROM v$session
WHERE blocking_session IS NOT NULL
ORDER BY seconds_in_wait DESC;

-- Détails verrous (TX/TM)
SELECT l.sid, l.type, l.id1, l.id2, l.lmode, l.request, l.block
FROM v$lock l
WHERE l.block = 1 OR l.request > 0
ORDER BY l.block DESC, l.request DESC;
Top SQL (gets/reads/elapsed)
SELECT *
FROM (
  SELECT sql_id, executions, elapsed_time/1e6 elapsed_s, cpu_time/1e6 cpu_s,
         buffer_gets, disk_reads, rows_processed
  FROM v$sql
  ORDER BY elapsed_time DESC
)
WHERE ROWNUM <= 15;
Plan réel (DBMS_XPLAN)
-- Plan réel (avec stats)
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST +PEEKED_BINDS'));

-- “Estimated vs Actual rows” est LA discussion senior.
RAC / ASM
-- RAC : instances + services (selon contexte)
SELECT inst_id, instance_name, host_name, status
FROM gv$instance
ORDER BY inst_id;

-- ASM : diskgroups
SELECT name, state, type, total_mb, free_mb
FROM v$asm_diskgroup;

-- Rebalance en cours (si ASM)
SELECT * FROM v$asm_operation;
1) Architecture Oracle (réponses attendues)
Le pitch en 45 secondes
Oracle = (Instance) + (Database)
Instance = SGA (shared memory) + background processes
Database = datafiles + controlfiles + online redo logs (+ archivelogs)
Process clés (à connaßtre)
ProcessRĂŽlePhrase simple
DBWRĂ©crit buffers → datafiles“flush du cache vers disque”
LGWRĂ©crit redo → redo logs“durabilitĂ© commits”
CKPTcheckpoint“cohĂ©rence + accĂ©lĂšre recovery”
SMON/PMONrecovery / nettoyage“hygiùne et restart propre”
ARCnarchive redo“permet recovery avancĂ©â€
UNDO vs REDO (question classique)
REDO : “ce que j’ai fait” (durabilitĂ©) → utilisĂ© par recovery
UNDO : “comment revenir en arriùre” (rollback + read consistency)
Les deux sont nécessaires, et ne se remplacent pas.
Relances typiques
- Pourquoi “log file sync” existe ?
- Que fait un checkpoint ?
- À quoi sert le controlfile ?
- Différence plan estimé vs réel ?
2) RMAN / Recovery (prod-ready)
Concepts Ă  maĂźtriser
  • ARCHIVELOG indispensable pour recovery avancĂ© (PITR).
  • Full + Incremental + backup controlfile/spfile.
  • RPO/RTO : objectifs business, pas seulement “tech”.
  • Catalog (optionnel) : centraliser historiques & mĂ©tadonnĂ©es.
Punchline :
“Je fais des backups RMAN, mais surtout je PRATIQUE des restores.
Sinon je n’ai aucune preuve que le plan fonctionne.”
Cas pratique : datafile perdu
1) Identifier le datafile / tablespace impacté
2) OFFLINE tablespace (si possible) ou datafile
3) RMAN RESTORE DATAFILE n
4) RMAN RECOVER DATAFILE n
5) ONLINE + validation applicative
Risk note :
Si grosse transaction, le recover peut ĂȘtre long (archivelogs).
PITR (Point-In-Time Recovery)
Cas : suppression logique, corruption logique, “DROP TABLE”

Principe : restaurer Ă  T0 (avant l’erreur) puis rĂ©ouvrir/extraire.
On attend de toi :
- savoir expliquer la fenĂȘtre temporelle
- savoir expliquer la perte potentielle (RPO)
- savoir isoler l’environnement de restore
Tests restore (ce qui fait senior)
TestFréquenceObjectif
Restore controlfile/spfiletrimestrielvalider basiques
Restore datafile + recovertrimestrielvalider RTO réaliste
PITR (scĂ©nario)semestrevalider plan “erreur logique”
DG switchover/failover (si DG)semestreDR “vrai”
3) Performance & Tuning (AWR/ASH/Waits)
Tri “oĂč part le temps”
SymptĂŽmeLectureAction initiale
CPUtop SQL CPU, parse stormplan réel, stats, bind
I/Osequential/scattered readsegments hot, scans
Commitlog file synclatence redo + commit pattern
LocksTX row lockblocking session + root txn
RAC GCgc cr requestservices + skew + interconnect
Ce que tu dois citer
AWR : incidents “passĂ©s”
ASH : pics courts / sessions actives
ADDM : recommandations auto (si pack)
SQL Monitor : exécution live
DBMS_XPLAN : plan réel (ALLSTATS)
Anti-patterns (piĂšges)
- Ajouter des index “au hasard”
- “Flush shared pool” en prod sans justification
- Tuner sans connaĂźtre la charge (OLTP vs DW)
- Confondre “full scan” = mauvais (pas toujours)
- Optimiser SQL alors que le vrai souci est lock/commit/storage
Question piùge : “Que fais-tu d’abord ?”
Réponse attendue :
“Je mesure. Je regarde les waits / top SQL / ASH sur la fenĂȘtre.
Je ne touche rien avant d’avoir identifiĂ© la cause dominante.”
4) RAC / ASM (ce qu’on te demande vraiment)
RAC
  • Services : orienter charge (OLTP vs batch) + Ă©quilibrage.
  • Skew : “un nƓud hot” (appli colle Ă  un node).
  • Cache Fusion : latence interconnect → waits GC.
  • Diagnostiquer : gv$ views + waits GC + latence rĂ©seau.
Question typique :
“Si un nƓud RAC est à 95% CPU et l’autre à 10% ?”
Réponse :
“Je vĂ©rifie la distribution par service, les sessions par instance,
et je corrige via services / connection strings / load balancing.”
ASM
  • Diskgroups : NORMAL/HIGH redundancy.
  • Rebalance : impact perf, planifier fenĂȘtre.
  • Surveillance : espace, opĂ©rations ASM, disques en erreur.
Mots-clés :
“ASM = abstraction + mirroring + striping”.
“Je surveille v$asm_operation pour Ă©viter un rebalance en pleine prod.”
5) Sécurité & Gouvernance (DBA moderne)
Ce qu’ils veulent entendre
ThĂšmeAttenduPhrase utile
PrivilĂšgesleast privilege, rĂŽles, sĂ©paration“Je n’utilise pas SYS au quotidien.”
Auditqui fait quoi, traces incident“Audit utile = exploitable.”
Secretsrotation, coffre, pas dans scripts“Les mots de passe ne vivent pas dans bash.”
ChiffrementTLS, at-rest selon besoins“J’aligne avec la conformitĂ©.”
PiĂšge :
“On veut aller vite, mets tout en DBA.”
Réponse senior :
“Je peux dĂ©panner, mais je rĂ©gularise ensuite : rĂŽles, traceabilitĂ©, rotation.”
6) PL/SQL – ce qu’un DBA doit savoir
Points incontournables
  • Packages : API stable + perf (cache) + organisation.
  • Exceptions : gestion propre, pas de “WHEN OTHERS” silencieux.
  • Perf : BULK COLLECT / FORALL si besoin (sinon SQL set-based).
  • Instrumentation : logs, DBMS_APPLICATION_INFO, trace.
  • Scheduler : DBMS_SCHEDULER + runbooks + retry.
Template “industriel” (package)
CREATE OR REPLACE PACKAGE pkg_ops AS
  PROCEDURE p_housekeeping(p_days NUMBER);
END pkg_ops;
/

CREATE OR REPLACE PACKAGE BODY pkg_ops AS
  PROCEDURE p_housekeeping(p_days NUMBER) IS
  BEGIN
    -- TODO: purge, archive, stats refresh
    COMMIT;
  EXCEPTION
    WHEN OTHERS THEN
      -- TODO: log + rethrow
      RAISE;
  END;
END pkg_ops;
/
7) Incidents Prod (questions piĂšges)
IncidentCause typiqueRéaction attendue
Archive log fullFS plein / archiver bloquéstop hémorragie, backup archivelogs, purge RMAN contrÎlée
Tablespace pleincroissance / manque autoextendajout datafile, resize, contrĂŽle objets qui explosent
Redo log switchredo trop petits / commitsanalyser fréquence, ajuster size/nb groups
Deadlockordre verrous applicatiftrace + correction cĂŽtĂ© app (pas “tuning DB”)
Runaway SQLplan, stats, paramisoler SQL, plan réel, mesures, action safe
Ce qui impressionne :
“Je suis capable d’expliquer l’incident en langage mĂ©tier + un plan d’action.”
“Je documente : timeline, cause racine, prĂ©vention (RCA).”
8) Comportemental (DBA de prod)
Questions fréquentes
  • “Tu fais quoi Ă  2h du matin ?”
  • “Tu redĂ©marres la DB ?”
  • “Comment tu annonces un ETA ?”
  • “Comment tu gĂšres un conflit app vs DB ?”
Réponses attendues (structure)
1) J’accuse rĂ©ception + j’évalue l’impact
2) Je stabilise (stop la dégradation)
3) Je diagnostique (waits / top SQL / locks)
4) J’applique une action sĂ»re + je communique
5) RCA + prévention (runbook / monitoring / capacity)
9) Banque de questions (interview-style)
QuestionCe qu’ils testentRĂ©ponse courte attendue
Instance vs Database ?fondationsSGA+process vs fichiers (data/control/redo)
UNDO vs REDO ?cohérence/durabilitérollback/consistency vs recovery/commit
Base lente, tu fais quoi ?mĂ©thodo prodwaits → SQL/sessions → locks → actions sĂ»res
AWR/ASH servent Ă  quoi ?outillagehistorique vs pics courts / sessions actives
Plan estimé vs réel ?tuningDISPLAY_CURSOR + ALLSTATS LAST
RAC : un nƓud hot ?exploitationservices, skew, interconnect, gv$
Archive log full ?incidentstop + backup + purge RMAN contrÎlée
PITR : quand ?recoveryerreur logique / restore Ă  T0
Pourquoi pas “restart” ?maturitĂ©risque + perte diag + downtime