đ„ Oracle Exadata â Architecture, Performance & Exploitation
ThĂ©matique complĂšte âterrainâ : panorama â architecture â Smart Scan â RAC/ASM â perf â monitoring â HA â sĂ©curitĂ© â patching â run quotidien. Objectif : une base IDEO-Lab lisible, actionnable, et rĂ©utilisable en prod.
Introduction & Philosophie
Pourquoi Exadata existe, mythes, ROI rĂ©el (Smart Scan / IORM / Flash / rĂ©seau), et quand ne pas lâutiliser.
VisionROIGo/No-GoPanorama Exadata
Database Machine, modĂšles (on-prem / ExaCS / C@C), gĂ©nĂ©rations, racks (Full â Eighth), HC vs EF.
ModÚlesGénérationsSizingAudit Infrastructure
Audit Infrastructure & Configuration Physique.
ModÚlesGénérationsSizingArchitecture Globale
Compute nodes, Storage Cells, fabric RoCE/IB, flux SQLâCellsâDB, principes scale-out.
ComputeCellsFabricRéseau (RoCE / InfiniBand)
RDMA, latence, bande passante, interconnect RAC, erreurs qui dĂ©truisent lâoffload.
RDMALatencyInterconnectRAC & Services
Pourquoi Exadata = RAC âby designâ, services, Ă©quilibrage, Cache Fusion, anti-skew.
RACServicesCache FusionSmart Scan & Offload
Le cĆur Exadata : offload, bloom filters, Ă©ligibilitĂ© SQL, piĂšges, KPI âefficacitĂ©â.
Smart ScanOffloadKPIStorage Software, ASM & GI
Cell Server, ASM diskgroups, redundancy, Grid Infrastructure, iDB, gouvernance du stockage.
CellOSASMGIFlash / Cache / Hiérarchie
Smart Flash Cache, Flash Log, PMEM (selon génération), patterns OLTP vs DW.
FlashPMEMLatencyPerformance & Tuning
SQL éligible, partitionnement, index vs full scan, parallélisme, stats & optimizer Exadata-aware.
SQLPQStatsMonitoring & Observabilité
OEM, AWR/ASH, Cell metrics, offload %, interconnect, latences, dashboards âprodâ.
AWROEMCellsHA, DR & Backup
RAC, Data Guard, RMAN, tests de restauration, RPO/RTO, patterns âcritiqueâ.
Data GuardRMANRTO/RPOSécurité
TDE, accÚs Cell/DB, séparation des rÎles, patch sécurité, bastion, audit & traçabilité.
TDERBACAuditPatching & Maintenance
Rolling patch, exachk, patch bundles, drift, fenĂȘtre de maintenance, validations post-patch.
exachkRollingDriftExploitation quotidienne (RUN)
Checks quotidiens, incidents types, runbooks, outillage (cellcli/dcli/oem), capacity planning.
RunbookIncidentsCapacityExadata = âFunction Shippingâ
Exadata nâest pas âun SAN rapideâ. Câest un systĂšme conçu pour exĂ©cuter une partie du travail SQL au plus prĂšs des donnĂ©es : filtres, projections, certaines jointures/agrĂ©gations, compression, cache⊠afin de rĂ©duire drastiquement lâI/O et le trafic rĂ©seau.
Slogan terrain :
- Architecture classique : on "transporte" des blocs, puis on filtre cÎté DB.
- Exadata : on filtre au storage, puis on remonte le résultat utile.
/static/img/oracle/exadata/exadata_hero.pngDiagramme (modĂšle mental)
Oracle DB + RAC] B -->|iDB + RDMA| C[Storage Cells
Exadata Storage Software] C -->|Résultats filtrés
+ colonnes projetées| B B -->|Rows| A classDef b fill:#dbeafe,stroke:#1e3a8a,color:#111; classDef c fill:#fee2e2,stroke:#7f1d1d,color:#111; class B b; class C c;
(Mermaid) Si ta base nâembarque pas Mermaid, garde ce bloc : il sert de placeholder propre.
Mythes fréquents
| Mythe | Réalité terrain | Action |
|---|---|---|
| âExadata = plus besoin de tuningâ | Non. Exadata amplifie les bons patterns, mais les anti-patterns restent pĂ©nalisants. | Revoir SQL, stats, partitions, parallĂ©lisme, modĂšle. |
| âTout passe en Smart Scanâ | Non. Certaines requĂȘtes ne sont pas Ă©ligibles (row-by-row, fonctions, conversions, etc.). | Mesurer lâoffload rĂ©el + corriger les bloqueurs. |
| âExadata = stockageâ | Non. Sans rĂ©seau RDMA sain + cells bien configurĂ©es, tu perds le ROI. | Monitorer interconnect + cells + erreurs rĂ©seau. |
Sweet spots
- DW / scans massifs : Smart Scan + HCC = ROI énorme.
- Consolidation : isolation via IORM/QoS, densité.
- OLTP critique : faible latence + flash/log.
- Workload mixte : batch sans tuer la prod (si IORM bien posé).
Anti-patterns
- Micro-DB isolĂ©e (50â100 Go) sur Exadata âjuste pour le prestigeâ.
- Appli 100% row lookup (petits selects unitaires) sans scans utiles.
- Organisation incapable de patcher/tester/restaurer (risque majeur).
- Pas dâexploitation des features (0 offload, IORM absent).
RĂšgle simple :
Si Smart Scan + IORM + Flash n'apportent rien â Exadata est sous-utilisĂ©e (ROI perdu).Checklist â10 minutesâ (avant de parler tuning)
| Bloc | Question | Signal rouge |
|---|---|---|
| Offload | Le % Smart Scan est-il significatif sur les requĂȘtes âDW-likeâ ? | 0% ou âoffload inefficaceâ. |
| RAC | Les services rĂ©partissent-ils la charge ? | Un nĆud chaud, lâautre froid. |
| Réseau | RDMA / interconnect sans erreurs ? | Drops, retransmits, latence anormale. |
| Patching | exachk OK, patch level cohérent ? | Drift, retard de patch important. |
| Restore | Restore testĂ© (RPO/RTO rĂ©el) ? | âJamais testĂ©â. |
Qu'est-ce qu'une "Database Machine" ?
Ce n'est pas "du hardware certifié". C'est une stack logicielle et matérielle co-ingéniée.
- 1. Database Awareness Le stockage (Cells) "comprend" le SQL Oracle.
- 2. Scale-Out Architecture Ajout de puissance (Compute) ou de capacité (Cell) à chaud.
- 3. Unification MĂȘme machine pour OLTP (Latence flash) et DWH (Throughput).
Ăvolution Majeure (The RoCE Turning Point)
| Génération | Innovation Clé | Impact |
|---|---|---|
| V2 -> X8 | InfiniBand (40Gb) | L'Úre classique. Performant mais réseau propriétaire. |
| X8M / X9M | RoCE v2 + PMEM | Abandon InfiniBand. Latence < 19”s. AccÚs mémoire direct. |
| X10M | AMD EPYC + DDR5 | DensitĂ© cĆurs explosive (190 cores/server). Fin du PMEM (RAM DDR5 suffit). |
Le protocole iDB transporte les intentions SQL, pas juste des blocs.
| ModÚle | Location | Gestion Infra | Gestion DB | Cas d'usage idéal |
|---|---|---|---|---|
| On-Premises | Datacenter Client | Client | Client | Souveraineté totale, isolation physique stricte, CapEx. |
| Cloud@Customer (ExaC@C) | Datacenter Client | Oracle | Client | "Cloud derriĂšre mon firewall". Latence locale + ModĂšle OpEx (Pay-per-use). |
| Exadata Cloud Service (ExaCS) | OCI Public Region | Oracle | Client | Projets agiles, besoins élastiques, Disaster Recovery dans le cloud. |
| Autonomous (ADB-D) | OCI ou C@C | Oracle | Auto + Oracle | Serverless, patching zéro downtime, Dev/Test rapide. |
HC vs EF : Le grand dilemme
Le choix se fait Ă l'achat du rack et conditionne la performance pour 5 ans.
- Disques : 12x 18TB HDD + 4x NVMe Flash (Cache).
- Ratio : Enorme stockage froid, Cache chaud limité.
- Usage : DWH massif, Archivage, Consolidation généraliste.
- Smart Scan : Vital ici pour éviter de lire les HDD.
- Disques : 100% NVMe Flash. Aucun HDD mécanique.
- Ratio : IOPS démentiels, Latence < 1ms garantie.
- Usage : OLTP critique, Trading, Applications temps réel.
- Smart Scan : Ultra rapide (débit de la flash).
Sizing & Elasticité
| Taille | Compute Nodes | Storage Cells | Note |
|---|---|---|---|
| Base System | 2 | 3 | Le minimum vital pour la redondance (High Redundancy ASM = 3 copies). |
| Quarter Rack | 2 | 3 | Souvent le point de départ historique. |
| Elastic Expansion | +1 | +1 | Depuis X8M, on ajoute les serveurs à l'unité. Plus de "Half Rack" figé. |
Sur les Compute Nodes, vous pouvez activer moins de cĆurs CPU que le physique (ex: activer 10 cĆurs sur 64) pour limiter le coĂ»t des licences Oracle Database.
Séparation des Pouvoirs
Exadata sépare le SQL (Cerveau) du Stockage (Muscle).
| Couche | Composants & OS | Responsabilités Clés |
|---|---|---|
| Compute Nodes (Database Servers) | Oracle Linux (UEK) Grid Infra + RDBMS | - Gestion des sessions & Transactions (ACID) - Parsing SQL & Optimiseur - N'a PAS de disques de données locaux |
| Storage Cells (Exadata Servers) | CellOS (Optimized) CellSRV Process | - Servir les blocs (I/O classique) - Exécuter le SQL (Smart Scan) - Gérer le Flash Cache & IORM |
| Unified Fabric | Switchs RoCE (Ethernet) ou InfiniBand | - Zero-Loss Network - Bande passante massive (100Gb/s par port) |
     â      â (RoCE 100Gb)
ââââââ©âââââââ©âââââ
â  SWITCH FABRIC â
ââââââŠâââŠâââŠâââŠâââ
     â  â  â  â
  [CELL][CELL][CELL]...
Le Changement de Paradigme : Function Shipping
Protocole iDBArchitecture classique : "Donne-moi le bloc".
Exadata : "Exécute ce prédicat".
SELECT * FROM sales WHERE amount > 1000- DB Server : Parse la requĂȘte.
- Envoi (iDB) : Envoie le prédicat (
> 1000) aux Cells. - Cell Server : Scanne et filtre localement.
- Retour : Renvoie uniquement les lignes utiles.
DB Node
Oracle Kernel
Cell Node
Smart Scan
(Offload)
Le Secret de la Latence : RDMA
| Concept | Description Technique |
|---|---|
| Kernel Bypass | Les données ne passent pas par le noyau OS. L'appli parle direct à la carte réseau. |
| Zero-Copy | Copie directe MĂ©moire Cell â MĂ©moire DB. Pas de buffers OS. |
| Protocoles | - InfiniBand (IB) : Legacy (Jusqu'Ă X8). - RoCE v2 : Ethernet standard + RDMA. |
Latence I/O (Read)
< 19 ”s
(Vs 500”s sur SAN classique)
ASM : L'Virtualisation du Stockage
Redondance ASM
- High Redundancy 3 Copies
- Normal Redundancy 2 Copies
ASM Ă©crit les blocs sur diffĂ©rentes Cells pour garantir la survie des donnĂ©es mĂȘme si un serveur entier brĂ»le.
Hiérarchie Logique
  ⳠCell Disk (LUN Logique CellOS)
    ⳠGrid Disk (Partition présentée)
      ⳠASM DiskGroup (DATA, RECO)
Le dĂ©coupage logique permet d'isoler les I/O (IORM) entre diffĂ©rentes bases sur le mĂȘme disque.
Pourquoi le TCP/IP classique tue la performance ?
Sur un réseau 100Gb classique, le CPU passerait 50% de son temps à traiter les interruptions réseau (IRQ) et copier des buffers mémoire.
Permet à la carte réseau (HCA) d'écrire directement dans la RAM du serveur distant sans réveiller le CPU distant.
| Caractéristique | TCP/IP (Standard) | RDMA (Exadata) |
|---|---|---|
| Chemin CPU | Lourd (Kernel space -> User space copy) | Kernel Bypass (Zero-Copy) |
| Latence | ~200”s - 500”s | < 20”s (Comme un accÚs mémoire local) |
| Usage CPU | ĂlevĂ© (Traitement paquets) | Quasi Nul (OffloadĂ© sur la carte) |
L'Ăvolution : De l'InfiniBand au RoCE
Current Standard: 100Gb RoCE- Techno : Réseau propriétaire Lossless.
- Débit : QDR (40Gb) -> EDR (100Gb).
- Topologie : Subnet Manager requis.
- Inconvénient : Cùbles et switchs spécifiques, difficile à intégrer au réseau d'entreprise.
- Techno : RDMA over Converged Ethernet (UDP).
- Débit : 100Gb -> 200Gb+.
- Standard : Utilise des switchs Ethernet et cĂąblage standard.
- Secret : Utilise PFC (Priority Flow Control) pour garantir "Zero Packet Loss" sur Ethernet.
Architecture Physique & Redondance
     |    |                    |    |
     |    +--------------------+    |
     |                              |
[DB NODE (Active/Active Bonding)]
   Port 1 (re0) --------> Switch 1
   Port 2 (re1) --------> Switch 2
Active-Active : Les 2 ports 100Gb sont utilisés simultanément (200Gb total).
Réseaux Séparés (Isolation)
- Client Network Ethernet 10/25Gb
- Private Network (RoCE/IB) Interconnect + Storage
- Management (ILOM) 1Gb Ethernet
Le trafic d'application (Client) ne touche jamais le réseau de stockage (Private).
Quand le réseau tousse, la base s'étouffe
| SymptÎme Oracle | Cause Réseau Possible | Outil / Commande |
|---|---|---|
Wait: gc cr block 2-way (Cluster) | Latence Interconnect élevée, perte paquets. | oswatcher (netstat), traceroute |
| Smart Scan lent ou désactivé | Lien RoCE "Flapping" ou congestionné. | cellcli -e list metriccurrent attributes name, metricvalue where name like '.*I_MB_S.*' |
| Crash Node (Eviction) | Heartbeat réseau manqué > 30s. | /var/log/messages, CSSD log. |
# dcli -g cell_group "netstat -s | grep 'packet receive errors'" Ce chiffre doit ĂȘtre Ă 0 ou stable. S'il augmente chaque seconde, appelez le support rĂ©seau.Philosophie "Shared Everything"
Contrairement aux clusters "Sharding" (oĂč chaque nĆud possĂšde ses donnĂ©es), dans RAC, tous les nĆuds voient toutes les donnĂ©es simultanĂ©ment.
- Grid Infrastructure (GI) Le fondement GÚre le Clusterware + ASM. Démarre avant la DB.
- Voting Disks Stockés sur les Cells Les disques "témoins" qui décident qui survit en cas de coupure réseau.
- Interconnect RoCE / IB Le canal privé vital pour le "Heartbeat" et les échanges de blocs.
La "Cuisine" RAC
Imaginez une cuisine avec 4 chefs (NĆuds) travaillant sur le mĂȘme plan de travail.
Classique : Le chef A crie au chef B de lui passer le sel.
Exadata : Le chef A tend le bras et prend le sel dans la main du chef B sans mĂȘme lui parler (RDMA).
Cache Fusion : Transférer la RAM, pas le Disque
Latence critiqueLes Wait Events Ă surveiller (AWR)
| Wait Event | Signification | Action |
|---|---|---|
gc cr block 2-way | Lecture saine via Cache Fusion. | Normal si < 1ms. |
gc current block busy | Contention. NĆud 1 tient le verrou, NĆud 2 attend. | Tuner l'appli (Hot blocks). |
gc lost blocks | DANGER. Perte paquets réseau. | Vérifier Switchs / Cùbles. |
UPDATE sur la mĂȘme table depuis tous les nĆuds en mĂȘme temps, Cache Fusion va saturer. Solution : Partitionner les workloads par Service.
Services : Ne JAMAIS utiliser le service par défaut
Le service par défaut (db_unique_name) ne permet ni HA, ni contrÎle, ni statistiques précises.
  -service GOLD_APP \
  -preferred INST1,INST2 \
  -available INST3,INST4 \
  -clbgoal LONG -rlbgoal SERVICE_TIME \
  -failovertype AUTO -commit_outcome TRUE
Concepts Clés
- Preferred vs Available :
DĂ©finit sur quels nĆuds le service tourne en temps normal vs en cas de panne. - Application Continuity (AC) :
Rejoue les transactions in-flight en cas de crash d'un nĆud. L'utilisateur ne voit pas l'erreur.
Répartition de charge
Server-Side LB : Le Listener redirige vers l'instance la moins chargée (LBA).
Node Eviction (Le crash du nĆud)
Pour protĂ©ger l'intĂ©gritĂ© des donnĂ©es, si un nĆud ne rĂ©pond plus ("Split-Brain"), le cluster doit le tuer (Reboot immĂ©diat).
| Le Juge | Mécanisme |
|---|---|
| Network Heartbeat | Chaque seconde, les nĆuds se disent "Je suis vivant" via l'interconnect. Si silence > 30s (misscount) -> Eviction. |
| Disk Heartbeat | Chaque nĆud Ă©crit sur le Voting Disk (sur les Cells). Si un nĆud ne peut plus Ă©crire -> Il se suicide. |
alert.log(Database) : "IPC Send timeout"/var/log/messages(OS) : ProblÚmes réseau ou kernel panic.cssd.log(Grid) : Le journal détaillé du Clusterware qui explique qui a tué qui.
La Condition Sine Qua Non : Direct Path Read
Le processus :
- L'optimiseur choisit un Full Table Scan (ou Fast Full Index Scan).
- Oracle décide de bypasser le cache (car table trop grosse).
- Il envoie un paquet iDB contenant le SQL (Prédicats + Colonnes).
- La Cellule lit, filtre, et renvoie un Result Set compacté.
| Fonction Offloadée | Gain |
|---|---|
| Predicate Filtering | Seules les lignes WHERE zone='EU' remontent. |
| Column Projection | Seules les colonnes SELECT id, nom remontent (pas les 200 autres). |
| Encryption Decrypt | Le déchiffrement TDE se fait sur le CPU de la Cell (gratuit pour la DB). |
Comparatif Flux I/O
Les Accélérateurs Invisibles
Une structure en mémoire sur la Cellule (pas sur disque !) qui maintient les valeurs Min/Max pour chaque 1MB de données.
- But : I/O Avoidance. Si je cherche
ID=50et que le SI dit "Bloc A : Min 100, Max 200", on ne lit mĂȘme pas le bloc. - Maintenance : Automatique et transparente.
- Note : Redoutable sur les colonnes de dates ou séquences.
Transforme une Jointure (Join) en Filtre (Scan).
1. DB crée un vecteur binaire (Bloom) des clés de T1.
2. DB envoie ce vecteur aux Cells.
3. Cells scannent T2 et éliminent tout ce qui ne matche pas le vecteur.
Prouver l'efficacité (ou l'inefficacité)
| Niveau | Indicateur Clé | Interprétation |
|---|---|---|
| Session (V$) | cell smart table scan | Wait event qui confirme l'activité Smart Scan. |
| SQL Monitor | Col IO_INTERCONNECT_BYTES vs IO_CELL_OFFLOAD_ELIGIBLE_BYTES | Le ratio entre les deux donne le % d'économie. |
| Global (AWR) | "Cell Efficiency Ratio" | Si > 10, c'est excellent (10x moins de trafic). |
Le Calcul de l'Efficacité
Gain Typique DWH
(Eligible_Bytes - Return_Bytes) / Eligible_Bytes * 100 Exemple : J'ai scanné 1TB sur disque (Eligible), j'ai renvoyé 50GB au réseau (Return).
Gain = (1000 - 50) / 1000 = 95% Offload.
Pourquoi mon Smart Scan ne part pas ?
C'est la question n°1 du DBA Exadata. Voici la checklist de survie.
1. La table est trop petite
Oracle préfÚre la mettre en cache (Buffer Cache).
Fix : Forcer avec _serial_direct_read=true (pour test uniquement).
2. Row Chaining (Lignes chaßnées)
Si une ligne est éclatée sur plusieurs blocs, la Cellule ne peut pas la reconstruire. Elle renvoie le bloc brut à la DB.
Fix : Reorg de la table.
3. Types de données complexes
Les colonnes LONG (obsolĂšte) ou certains types ADT (User Types) bloquent l'offload.
4. Diskgroup Attribute 'compatible.rdbms'
Si la version ASM est trop vieille par rapport à la DB, certaines fonctions d'offload sont désactivées.
Anatomie d'une Cellule
Ce n'est pas un simple "Linux". C'est un OS durci avec 3 processus clés qui gÚrent l'intelligence.
| Processus | RĂŽle Critique |
|---|---|
| CELLSRV | Le Cerveau. Multithreaded server. - Traite les requĂȘtes iDB (Smart Scan). - GĂšre IORM (PrioritĂ© I/O). - GĂšre le Flash Cache. |
| MS | Management Server (Java). - Interface de gestion (CellCLI). - Envoie les alertes (SNMP/SMTP) en cas de panne disque. |
| RS | Restart Server. - "Watchdog" qui surveille CELLSRV et MS. - Les redémarre s'ils plantent (Haute Dispo locale). |
Architecture Logicielle
(I/O & SQL)
De l'Hardware à la Database : La Poupée Russe
Redundancy: HIGH (3x) / NORMAL (2x)DATA, le reste pour RECO.- DATA (DG) : Contient les datafiles, redo logs actifs, OCR, Voting Disk.
- RECO (DG) : Contient la Flashback Area, Archived Logs, Backups.
- SPARSE (Optionnel) : Pour les clones Exadata Snapshots.
Visible par la DB (ex: +DATA)
NVMe Flash / HDD 18TB
IORM : Le Policier du Stockage
Sans IORM, une base de développement qui lance un gros rapport peut saturer les disques et tuer la Prod. IORM gÚre la QoS au niveau du stockage.
- Inter-Database : Répartition entre plusieurs bases (ex: PROD=70%, DEV=30%).
- Intra-Database : Répartition interne (ex: Utilisateur batch vs Utilisateur interactif) via DBRM.
Si PROD n'utilise pas ses 60%, UAT et DEV peuvent récupérer le "mou". DÚs que PROD en a besoin, IORM throttle les autres immédiatement.
L'Arsenal de l'Admin : CellCLI & DCLI
| Action | Commande (Exemple) | Scope |
|---|---|---|
| Vérifier disques physiques | list physicaldisk attributes name,status | Hardware |
| Vérifier Flash Cache | list flashcache detail | Performance |
| Créer Grid Disks | create griddisk all harddisk prefix=DATA, size=500G | Configuration |
| Configurer IORM | alter iormplan objective=auto | Gouvernance |
| Exécuter sur TOUT le rack | dcli -g cell_group "cellcli -e list celldisk" | Distribué |
CellCLI> list metriccurrent attributes name, metricvalue
         where name like '.*IO_SAVED_W.*'
Le Principe du Tiering
Exadata déplace automatiquement les données chaudes vers les médias les plus rapides. C'est transparent pour l'application.
< 1 ”s
< 19 ”s (RDMA)
~100 ”s
~8 ms (Mécanique)
Smart Flash Cache : Bien plus qu'un cache disque
Mode: WriteBack (Recommandé)- WriteThrough (Mode Safe) : On écrit sur HDD, puis on copie en Flash pour les lectures futures. Les écritures sont lentes (vitesse HDD).
- WriteBack (Mode Turbo) : On écrit directement en Flash. La donnée est considérée comme "sauvegardée". Elle est descendue sur HDD plus tard (Lazy write).
Boost massif des IOPS en écriture !
Pour les données compressées HCC, Exadata reformate automatiquement les données en pur format colonnaire lorsqu'elles entrent dans le Flash Cache.
Résultat : Les Scans analytiques en Flash sont fulgurants.
cellcli -e list flashcache detailVérifiez la ligne
effectiveCacheSize vs size. Si la différence est grande, vous avez des secteurs défectueux ou réservés.Smart Flash Log : Sauver le COMMIT
Le goulot d'étranglement n°1 des bases OLTP est le log file sync (attente de l'écriture du Redo Log sur disque pour valider le Commit).
- Taille : Petit (512MB par Cell). C'est un buffer circulaire temporaire.
- Hardware : Utilise une zone réservée haute endurance de la carte Flash.
Persistent Memory (PMEM) : Le chaĂźnon manquant
Specifique X8M / X9MSur les générations X8M et X9M, Oracle a ajouté Intel Optane DC PMEM (1.5TB par Cell). Ce n'est pas de la RAM (elle garde les données OFF) mais c'est aussi rapide.
| Fonctionnalité PMEM | RÎle |
|---|---|
| PMEM Cache (Data Accelerator) | Cache de lecture ultra-rapide. RDMA lit directement ici sans toucher au CPU de la Cell. |
| PMEM Log (Commit Accelerator) | Ăcriture des Redo Logs 8x plus rapide que la Flash. |
Sur la Génération X10M, PMEM a été supprimé.
Pourquoi ? Les nouveaux CPU AMD EPYC + RAM DDR5 + RoCE optimisé sont devenus si rapides que le PMEM n'apportait plus de gain significatif.
Exadata Smart Exadata RDMA Memory (XRM) utilise désormais la RAM standard pour ces fonctions.
Le "Tipping Point" a changé
Sur une base classique, si vous lisez > 5% d'une table, l'index devient plus lent que le Full Scan. Sur Exadata, grĂące au Smart Scan, ce seuil est beaucoup plus bas (parfois 0.1% !).
| Scénario | Stratégie Gagnante | Pourquoi ? |
|---|---|---|
Single Row LookupWHERE ID = 123 | INDEX (Unique) | Smart Scan ne battra jamais l'accĂšs direct RowID pour 1 ligne. |
Reporting / AnalyticsWHERE DATE > '2023...' | FULL SCAN (Smart) | Le débit (GB/s) écrase la latence des "Random Reads" d'index. |
Low CardinalityWHERE STATUS = 'CLOSED' | FULL SCAN (Smart) | Les Storage Indexes filtrent ça gratuitement. |
Graphique de Coût (Conceptual)
Parallel Query : La puissance brute
Auto DOPSi vous laissez PARALLEL_DEGREE_POLICY = MANUAL et que les dĂ©veloppeurs mettent des hints /*+ PARALLEL(64) */, 3 requĂȘtes suffisent Ă mettre le serveur Ă genoux (CPU Starvation).
Best Practices Exadata
- Activer Auto DOP :
PARALLEL_DEGREE_POLICY = AUTO. Laisse Oracle calculer le degrĂ© idĂ©al selon la taille de la table. - Parallel Statement Queuing : Si le serveur est chargĂ©, la requĂȘte attend son tour (FIFO) au lieu de tuer le CPU.
Chaque Slave Process (PX) ouvre sa propre connexion directe aux Cells. Le débit est multiplié par le nombre de Slaves.
Informer l'Optimiseur (CBO)
Si l'optimiseur croit qu'il tourne sur des disques lents, il choisira toujours des index. Il faut lui dire "Je suis sur Exadata".
| Action | Commande / ParamĂštre | Effet |
|---|---|---|
| System Stats | dbms_stats.gather_system_stats('EXADATA') | Calibre la vitesse I/O (MBRC) et CPU. Indispensable post-installation. |
| Optimizer Index Cost | OPTIMIZER_INDEX_COST_ADJ | Sur Exadata, on le laisse souvent par défaut (100) ou on l'augmente pour favoriser les Scans. |
| Real-Time Stats | (Auto en 19c) | Ăvite les mauvais plans sur les tables qui changent brutalement de volume (Bulk Insert). |
DBMS_STATS.GATHER_TABLE_STATS avec METHOD_OPT=>'FOR ALL COLUMNS SIZE 1' (pas d'histogrammes) par dĂ©faut, et ajoutez des histogrammes uniquement lĂ oĂč c'est prouvĂ© nĂ©cessaire (Skewed data). Les histogrammes coĂ»tent cher au parsing.Zone Maps & Partitionnement
L'Exadata adore les données physiquement triées.
Clustering Factor
Si vous chargez vos données triées par date (ou par ID), les Storage Indexes deviennent ultra-efficaces (Min/Max disjoints).
Commande : ALTER TABLE ... ADD CLUSTERING BY LINEAR ORDER (col)... (Attribute Clustering).
Partition Pruning
Le Partitionnement reste vital. Exadata scannera une partition de 10GB en < 1s.
Ne partitionnez pas trop fin (évitez les millions de partitions de 1MB). Visez des partitions de quelques GB.
Les 3 Piliers de l'Observabilité Exadata
Ne regardez pas que le CPU DB. Regardez si le stockage travaille pour vous.
| Domaine | Métrique Clé | Seuil d'Alerte |
|---|---|---|
| 1. Offload | Cell Efficiency Ratio | < 2x (Sur Data Warehouse). Signifie que vous rapatriez trop de données brutes. |
| 2. Latence I/O | Cell Flash Cache Read Latency | > 1ms (En moyenne). Indique saturation ou usure Flash. |
| 3. Santé Hw | Predictive Failure (Disques) | DÚs apparition. Remplacement immédiat requis. |
La Métrique "North Star"
Objectif : > 80% pour DWH/Analytics
Lire un AWR "Exadata Style"
Section: Exadata Statistics- Exadata Smart Scan Efficiency :
Regardez "Flash Cache Hit %" (Doit ĂȘtre proche de 100% pour OLTP). - Top IO Reasons :
Est-ce du Smart Scan ou du Single Block Read (Index) ? - Exadata Flash Log :
Vérifiez "Writes prevented from going to disk". Si bas, le Flash Log ne sert à rien.
SQL Monitor (Active Report)
C'est l'outil ultime pour debugger une requĂȘte lente.
- Cherchez la barre bleue "Cell Offload".
- Si la barre est 100% verte (CPU DB), le Smart Scan n'a pas fonctionné !
Mode Hacker : CellCLI en temps réel
Quand OEM est trop lent ou moyenné, allez à la source sur les Storage Cells.
CellCLI> list metriccurrent attributes name, metricvalue
         where name like 'I_.*_S'
# 2. Voir si le Flash Cache sature
CellCLI> list metriccurrent attributes name, metricvalue
         where name like 'FC_BY_USED'
# 3. Voir les erreurs Hardware
CellCLI> list alerthistory where severity='critical'
dcli -g cell_group "..." pour interroger les 14 cellules d'un coup et grepper le résultat. Indispensable pour voir si UNE cellule est plus lente que les autres (Skew).Ce que votre Chef veut voir (OEM Dashboard)
Cells Up
14/14
Disks
OK
Temp
24°C
Débit Scan
Flash Hit
Latence
Le rapport mensuel (Capacity Planning)
- Projection remplissage ASM (DATA) Quand acheter une extension ?
- Top Databases par I/O Qui consomme la machine ? (Facturation interne)
Survivre Ă la panne d'un composant
Exadata est conçu pour qu'aucun composant unique (SPOF) ne puisse arrĂȘter le service. Tout est redondant.
| Panne | Mécanisme de Survie | Impact Utilisateur |
|---|---|---|
| Perte 1 Compute Node | RAC (Cache Fusion) Les connexions basculent (TAF/FAN) sur les nĆuds survivants. | Micro-gel (sec) pour le replay des transactions (Application Continuity). |
| Perte 1 Storage Cell | ASM Redundancy ASM redirige les lectures vers les miroirs sur les autres Cells. | Transparent (légÚre baisse perf I/O le temps du rebalance). |
| Perte 1 Switch RoCE | Active-Active Bonding Le trafic passe instantanément sur le 2Úme switch. | Aucun (Zéro interruption). |
Le Concept "Instant Failure Detection"
Sur un SAN classique, le serveur attend le timeout TCP (souvent 30s-60s) pour déclarer le disque mort.
Sur Exadata, la Cellule mourante envoie un message "Je meurs !" (si possible) ou le switch notifie la coupure en < 1s.
Data Guard : L'Assurance Vie
Active Data Guard (ADG) recommandé- Max Protection (SYNC)
ZĂ©ro perte de donnĂ©es (RPO=0). Si la Standby tombe, la Prod s'arrĂȘte.
Risqué si réseau instable. - Max Availability (SYNC)
RPO=0 tant que possible. Si Standby tombe, la Prod continue (devient Async). - Max Performance (ASYNC)
Standard du marché. RPO ~quelques secondes. Aucun impact perf Prod.
PRIMARY
Read/Write
STANDBY
Read Only
Pourquoi "Active" ?
La Standby est ouverte en lecture pendant qu'elle applique les logs. Idéal pour décharger les rapports lourds (Offload) de la Prod.
Backup : RMAN sur Stéroïdes
| Technologie | Avantage Exadata |
|---|---|
| Incremental Backup | Block Change Tracking (BCT) : Le fichier BCT est stocké sur Flash. RMAN ne lit QUE les blocs modifiés. Backup incrémental ultra-rapide. |
| Validation | HARD (Hardware Assisted Resilient Data) : La Cellule vérifie le checksum des blocs avant de les écrire sur disque. Corruption logique impossible. |
| ZDLRA (Recovery Appliance) | "Le Backup infini". On envoie juste le Redo en temps réel. RPO sub-seconde. Restauration virtuelle Full instantanée. |
RMAN> RESTORE DATABASE VALIDATE; Avoir un backup c'est bien. Savoir qu'il est lisible, c'est mieux. Cette commande lit tout le backup sans rien écrire. à planifier mensuellement.Quelle médaille pour votre architecture ?
Oracle classifie la résilience selon 4 niveaux MAA (Maximum Availability Architecture).
- BRONZE Single Instance / RAC One Node
Dev/Test. Redémarrage requis en cas de crash. - SILVER RAC + Application Continuity
Standard Prod. TolĂ©rance panne nĆud. RPO=0 localement. Pas de DR.
- GOLD Silver + Data Guard (Async)
Protection contre désastre site (Incendie/Inondation). RPO > 0. - PLATINUM Gold + GoldenGate / Active DG Sync
ZĂ©ro downtime, ZĂ©ro perte de donnĂ©es, maintenance rolling sans arrĂȘt. Le Graal bancaire.
Architecture Sécurisée par Défaut
Exadata applique le principe de moindre privilÚge à chaque couche matérielle et logicielle.
| Couche | Mesure de Sécurité Clé |
|---|---|
| Réseau Physique | Isolation RoCE/IB : Le réseau de stockage est 100% privé. Aucune adresse IP routable depuis l'extérieur. Impossible d'attaquer les disques directement. |
| OS (Linux) | Minimal Image : Oracle Linux est livré durci (services inutiles désactivés). AccÚs SSH restreint. |
| Stockage (Cells) | ASM Scoped Security : Seuls les serveurs DB authentifiés (via clés InfiniBand/RoCE) peuvent monter les disques ASM. |
L'Oignon de Sécurité
TDE (Transparent Data Encryption) : "Gratuit" sur Exadata
Hardware AcceleratedSur un serveur standard, chiffrer la base consomme 10-20% de CPU pour déchiffrer chaque bloc lu.
Sur Exadata, ce travail est déporté (Offloadé) sur les Storage Cells.
- Donnée stockée chiffrée sur disque (AES-256).
- Smart Scan lit le bloc chiffré.
- Cell CPU déchiffre le bloc en mémoire.
- Cell CPU applique le filtre SQL (Where clause).
- Seules les lignes résultantes (en clair ou chiffrées selon le besoin) remontent.
Le déchiffrement est géré par les instructions AES-NI des processeurs Cell.
Séparation des Devoirs (Separation of Duties)
| RÎle | Utilisateur OS | PérimÚtre |
|---|---|---|
| Compute Admin | root (Sur Compute) | Patching OS, Réseau client, Sysctl. |
| Database Admin | oracle / grid | Création DB, Tuning, Backup, Data Guard. |
| Cell Admin | celladmin / root (Cell) | Gestion disques physiques, IORM, Flash Cache. |
En mode Cloud@Customer ou OCI, vous n'avez PAS d'accĂšs root aux Storage Cells, ni aux Switchs. La gestion est assurĂ©e par Oracle (Ops Automation). Vous ĂȘtes Admin de la DB, pas du Hardware.
Prouver la conformité
- ExaChk Security Profile :
L'outil ExaChk contient un profil STIG / CIS. Lancez-le pour voir les écarts de sécurité.
./exachk -profile security - Unified Auditing :
Activé par défaut en 19c+. Capture les logins, les DDL et les accÚs sensibles. - Audit Vault (AVDF) :
Recommandé pour centraliser les logs d'audit hors de l'Exadata (inviolabilité des preuves).
Patching Trimestriel
Oracle publie les QFSD (Quarterly Full Stack Download) chaque trimestre. Inclut : Firmware, OS, Grid, DB.
Retard > 6 mois = Risque critique.
QFSD : Quarterly Full Stack Download
Une seule source de véritéSur Exadata, on ne patche pas "un bout". On applique une image trimestrielle validée par Oracle qui contient tout.
| Composant | Impact Patching | Fréquence |
|---|---|---|
| Storage Cells | Reboot Cellule (Transparent si Redundancy OK). | Trimestriel |
| Switchs (IB/RoCE) | Reboot Switch (Transparent via Bonding). | Trimestriel (souvent sauté si pas de CVE). |
| Compute Nodes (DomU) | Reboot Serveur (Transparent via RAC). | Mensuel/Trimestriel (OS + GI + DB). |
| Firmware Disques | Inclus dans le patch Cell. | Automatique au reboot Cell. |
Toujours commencer par le Stockage/Réseau avant la Base.
Rolling Patching : La danse des nĆuds
L'objectif : L'application ne doit jamais voir une coupure de service, juste une baisse de capacité temporaire.
Service Relocation
Si vous patchez l'ASM/Grid en mode "Non-Rolling" (option par dĂ©faut de certains outils si mal configurĂ©s), TOUT LE CLUSTER S'ARRĂTE. VĂ©rifiez toujours vos fichiers de rĂ©ponse (
patchmgr -rolling).L'outil Roi : patchmgr
Command Line Interface./patchmgr -cells cells_group -patch_check_prereq -rolling
# 2. Patching réel (Une par une)
./patchmgr -cells cells_group -patch -rolling
# 3. Rollback en cas de désastre
./patchmgr -cells cells_group -rollback -rolling
L'ami fidÚle pour vérifier les versions partout.
dcli -g all_group "imageinfo"Utilisé pour générer les fichiers de config XML initiaux, mais aussi pour les upgrades majeurs.
Exachk : Le "Go / No-Go"
Ne lancez jamais un patch sans un rapport Exachk vert (score > 90/100).
- Hardware Audit : Vérifie batteries RAID, ventilateurs, disques dégradés.
- Soft Config : Vérifie paramÚtres kernel, limites utilisateurs, best practices.
- Firmware Drift : Compare vos versions actuelles avec la matrice de compatibilité Oracle.
Score Santé
Si < 100, lisez les "FAIL" et "WARNING". Un warning ignoré aujourd'hui est un crash patch demain.
1.
imageinfo : Version OK ? Status 'success' ?2.
crsctl stat res -t : Toutes les ressources DB et Grid sont ONLINE ?3.
cellcli ... list flashcache : Le cache est-il remonté ?Le "Café-Check" du DBA Exadata
Avant de regarder les bases, regardez la machine. Si l'Exadata va mal, toutes les bases iront mal.
| Composant | Check Rapide | Cible |
|---|---|---|
| Hardware Global | dcli ... cellcli -e list cell attributes metricState | Tous Ă 0 (Pas d'alerte). |
| ASM Balance | Vérifier le déséquilibre (Imbalance) entre disques. | < 5%. Si >, un Rebalance est en cours ou bloqué. |
| Performance Flash | Vérifier les "Flash Cache Evictions" (Keep vs Default). | Pas d'éviction massive sur le pool Keep. |
| Backups | Rapport ZDLRA ou RMAN. | 100% Success (Exadata pardonne mal le retard de backup des archivelogs). |
La Commande "Météo"
dcli -g all_group -l root "cellcli -e list alerthistory where severity='critical' and metricState='warning'"
Le rĂ©sultat doit ĂȘtre VIDE. Une alerte hardware sur Exadata ne s'ignore pas.
Guide de Survie : Top 3 Incidents
TroubleshootingAction : 1. VĂ©rifier si une requĂȘte fait du "Cell Single Block Physical Read" massif.
2. Vérifier si le Flash Cache est en mode "Write Through" (dégradé).
3. Tuer la session coupable ou activer IORM.
Cause probable : LMS (Lock Manager) n'a pas répondu assez vite (CPU Starvation) ou perte Interconnect.
Check : Logs
oswatcher (netstat/top) au moment du crash. Chercher "Packet Loss" sur les switchs.La trousse Ă outils du Chef (DCLI)
DCLI (Distributed CLI) est votre meilleur ami pour gérer 14 serveurs comme un seul.
-g cell_group: Cible toutes les Storage Cells.-g dbs_group: Cible tous les Compute Nodes.-k: Ăchange les clĂ©s SSH (Premier setup).
dcli -g all_group "date"Chercher un fichier log
dcli -g dbs_group "ls -l /var/log/messages"Restart Services (A utiliser avec prudence !)
dcli -g cell_group "cellcli -e alter cell restart services all"Ne jamais ĂȘtre pris au dĂ©pourvu
Pourquoi ? Si un disque lĂąche, ASM doit copier les donnĂ©es sur l'espace libre (Rebalance). Si vous ĂȘtes Ă 95%, le Rebalance Ă©choue et vous perdez la redondance.
Les cartes Flash s'usent en écrivant. Surveillez l'attribut enduranceLevel.
Si < 10%, planifiez le remplacement matériel préventif avec Oracle Support.
"à +500GB/mois, le Diskgroup DATA sera plein dans 4 mois." -> C'est ça, la valeur ajoutée du RUN.
Check-up Vital (Avant tout Tuning)
Une Exadata malade physiquement ne performera jamais, quel que soit le tuning SQL.
Ne touchez à rien tant que le score Exachk est < 90/100. Il vérifie 1000+ points (Firmware disques, cohérence versions, paramÚtres kernel cachés).
| Cible | Commande Audit | Signal d'Alarme |
|---|---|---|
| Versions Image | imageinfo (via dcli) | Ăcart de version entre les nĆuds (Drift). |
| Hardware | ilomconf / ipmitool | DIMM défectueuse, PSU en échec, Temp > seuil. |
| Patching | exadbcpatchmulti | Patch QFSD vieux de > 6 mois (Risque sécurité + bugs). |
Séquence de Patching (Ordre Vital)
Jamais la DB avant le Storage !
Audit CellCLI : Le CĆur du RĂ©acteur
CritiqueSi une Cellule est pleine à 90% et les autres à 40%, ASM écrit moins vite (latence).
Commande :
list celldisk attributes name, freeSpace, sizeLe SystĂšme Nerveux (RoCE/IB)
Si le réseau tousse (erreurs physiques), le Smart Scan se désactive.
| ProblĂšme | SymptĂŽme Technique | Impact Utilisateur |
|---|---|---|
| Lien Flapping | Logs switch : LinkUp / LinkDown répétitifs. | Latences erratiques, Node Eviction (Crash). |
| Congestion | Compteurs SymbolErrors ou VL15Dropped élevés. | Effondrement du débit Smart Scan. |
| Mauvais Routing | Topologie incorrecte (vérifier via ibnetdiscover ou équivalent RoCE). | Bande passante divisée par 2. |
# imageinfo -netCheckLance une validation interne complÚte de la topologie réseau, des versions firmware switchs et des cùbles, le tout en une ligne.
Optimisation OS (Oracle Linux)
- HugePages OBLIGATOIRE
- Swap Usage Proche de 0
- NTP / Chrony Synchro critique pour RAC
- Hyper-Threading ON (Par défaut)
RĂšgle d'Or :
Sur Exadata, on ne modifie JAMAIS sysctl.conf Ă la main.
On utilise OEDA ou les scripts de validation Oracle.
