Oracle Maximum Availability Architecture
Disponibilité des systèmes d’informations
Technologies et recommandations
Guillaume HARRY 30/07/07 1
Qu’est-ce que Oracle Maximum Availability Architecture (MAA) ?
1. Objectif : Disponibilité des systèmes d’informations 24h/24, 7j/7
1. Éliminer les coupures prévisibles (maintenance)
2. Éviter les coupures dues à des erreurs humaines, crashs systèmes, corruption de données
2. Ensemble de bonnes pratiques
1. Architecture
2. Configuration
3. Procédures opérationnelles
3. Basé sur
1. Technologies de « Haute Disponibilité »
2. Technologies de « Grid Computing »
3. Recommandations
4. Produits Oracle (Oracle Database, Oracle Application Server, Oracle Applications, Oracle
Collaboration Suite, Grid Control)
4. Indépendant de l’OS et du matériel
Guillaume HARRY 30/07/07 2
Architecture d’un système d’information Oracle
Firewall Oracle Oracle Oracle Oracle Oracle
Application Server Application Server Application Server Database Internet
WebCache HTTP Server OC4J Server Directory
PL/SQL, PHP, ASP, …
Serveur
Cache Serveur Base
J2EE
de
WEB WEB Données
Middle Tier
CLIENTS
LDAP
Guillaume HARRY 30/07/07 3
Oracle Application Server : Description
1. OracleAS WebCache
Cache de contenu web
statique : HTML, CSS, JavaScript, XML, PDF, images, …
dynamique : JSP, ASP, PL/SQL Server Pages, Servlets, CGI, PHP, Python,
Cold Fusion, …
Compression de contenu web (dynamique et statique)
Accélération SSL
Load-balancer + détection fail-over sur l’indicateur « cache misses »
2. Oracle HTTP Server
Basé sur Apache 2.0
3. Oracle Container For JAVA (OC4J)
Serveur J2EE
Guillaume HARRY 30/07/07 4
Oracle Application Server : MAA
Actif / Actif
HTTP
WebCache OC4J …
Server
Load Cluster Cluster
CLIENTS
Balancer WebCache OC4J
HTTP
WebCache OC4J …
Server
Guillaume HARRY 30/07/07 5
Oracle Application Server : MAA
Actif / Passif
HTTP
WebCache OC4J …
Server
Load
CLIENTS
Balancer
HTTP
WebCache OC4J …
Server
Guillaume HARRY 30/07/07 6
Oracle Database Server : Description
Instance
System Global Area Shared Pool
Reserved Pool
Data Structures de contrôle
Database Buffer Cache Buffer Pool Buffer Pool Dictionary
Keep Recycle Cache Fixed SGA
Taille de bloques
par défaut Large Pool Library Cache
Java Pool PL/SQL
Tailles de bloques Shared
Streams Pool Procédures
supplémentaires SQL Area
Packages
Redo Log Buffer Cache
Serveurs DBW0 Processus
partagés PGA LGWR SMON REC0
Serveur CKPT ARC0 PMON LCK0
D000 dédié PGA
Listener
init.ora
Control
Redolog Archivelog et / ou password
Datafiles files spfile.ora
Base de données Fichiers locaux
Guillaume HARRY 30/07/07 7
Oracle Database Server : Description
1. Instance
1. Mémoire
a. Zones tampons de la base de données (System Global Area)
b. Zone mémoire allouée aux processus (Program Global Area)
2. Processus
a. D’arrière plan (PMON, SMON, DBW0, CKPT, LGWR, ARC0, REC0, LCK0)
b. De gestion des clients
1. Listener
2. Processus serveur de sessions dédiés par session
3. Pool de processus serveurs de sessions et dispatcher
2. Fichiers
1. De base de données
a. Fichiers de données (Datafiles)
b. Fichiers de contrôles (control files)
c. Fichiers de journaux de reprise (redo logs)
2. Locaux
a. Fichiers de paramétrage (init.ora et spfile.ora)
b. Fichiers de mot de passe
c. Archive logs
Guillaume HARRY 30/07/07 8
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
Disponibilité
Guillaume HARRY 30/07/07 9
Oracle Database Server : MAA
Fonctionnalités offertes en standard
Réorganisation online (réorganisation des tables, partions, index)
Redéfinition online (redéfinition des tables et des attributs)
Bonnes pratiques
Redo logs
a. Multiplexer les membres de chaque groupe
b. Tailler pour tourner 1 fois par heure
c. Minimum 4 groupes
Automatic Shared Memory Management (paramètre SGA_TARGET)
Parallel Recory
a. Paramètre PARALLEL_EXECUTION_MESSAGE = 4096
b. Paramètre PARALLEL_MIN_SERVERS > nombre de CPU
Checksums sur les blocks
a. Paramètre DB_BLOCK_CHECKSUM = TYPICAL (checksum calculé, enregistré et
vérifié pour les bloques de données et de redo)
b. Paramètre DB_BLOCK_CHECKING = FULL
Fast-Start Fault Recover
a. Paramètre FAST_START_MTTR_TARGET pour définir le temps de redémarrage après
recover
Guillaume HARRY 30/07/07 10
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
Disponibilité
Réorganisation online
Bonnes pratiques
Redéfinition online
Guillaume HARRY 30/07/07 11
Oracle Database Server : MAA
Flashback
Objectifs
a. Réparer les erreurs humaines sur les données avec la base ouverte
b. Interroger une ligne, une table, une transaction, un tablespace ou une base
de données complète à une époque révolue
Principe
a. Au niveau ligne ou table
1. Hors DROP les informations UNDO sont utilisées
2. Avant DROP d’une table, la corbeille est utilisée
b. Au niveau base de données, les journaux de Flashback sont utilisés
Bonnes pratiques
a. Paramétrer DB_FLASHBACK_RETENTION_TARGET pour définir jusqu’à
quand on peut remonter
b. Suivre l’indicateur de performances « flashback free buffer waits »
c. Configurer Undo Management
1. UNDO_MANAGEMENT=AUTO
2. UNDO_RETENTION=« temps en secondes »
3. UNDO_TABLESPACE=« nom de tablespace »
Guillaume HARRY 30/07/07 12
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
Disponibilité
Flashback
Réorganisation online
Bonnes pratiques
Redéfinition online
Guillaume HARRY 30/07/07 13
Oracle Database Server : MAA
Automatic Storage Management
Objectifs
a. Ajouter/supprimer de l’espace de stockage sans arrêter la base de données
b. Bouger les fichiers de données sans arrêter la base de données
c. Équilibrage des I/O
d. Mirroring sur les disques et fichiers
e. Reconstruction après crash disque
f. Reconstruction de blocs corrompus
Principe
a. Une base de données dédiée stocke et gère les fichiers de base de données
Bonnes pratiques
a. Créer 2 groupes de disque, 1 pour les fichiers de bases de données, 1 pour
la flash recovery area
b. Mettre en place de la redondance à plusieurs niveaux
a. Disques RAID pour éviter les problèmes sur les disques
b. Redondance ASM pour se protéger des problèmes sur les groupes
Guillaume HARRY 30/07/07 14
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
Disponibilité
ASM ASM
Flashback
Réorganisation online
Bonnes pratiques
Redéfinition online
Guillaume HARRY 30/07/07 15
Oracle Database Server : MAA
Real Application Cluster
Objectifs
a. Tolérance aux pannes d’instance et de serveur et redémarrage rapide
b. Répartition de charge entre les instances
c. Possibilité d’ajouter des instances pour faire face aux montées en charge
Principe
a. Plusieurs instances accèdent à la même base de données physique
b. Chaque instance possède son propre tablespace UNDO
c. Oracle Clusterware est responsable de la répartition de charge et de la détection de
pannes
Bonnes pratiques
a. Utiliser des adresses virtuelles (VIP) pour faciliter la reprise sur incidents
b. Utiliser la répartition de charge aux niveaux serveur et client
c. Sauvegarder régulièrement Oracle Cluster Registry
d. Protéger Oracle Cluster Registry des problèmes disque
e. Optimiser les paramètres de recovery
1. Transaction : alter system set FAST_START_PARALLEL_ROLLBACK=HIGH
2. Instance : FAST_START_INSTANCE_RECOVERY_TARGET
Guillaume HARRY 30/07/07 16
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
RAC RAC
Disponibilité
ASM ASM
Flashback
Réorganisation online
Bonnes pratiques
Redéfinition online
Guillaume HARRY 30/07/07 17
Oracle Database Server : MAA
Data Guard
Objectifs
a. Minimiser la durée des arrêts planifiés et de reprise sur incidents
b. Ne pas prévoir de plage de sauvegarde sur la base primaire
c. Permettre de faire du reporting sans surcharger la base primaire
d. Resynchroniser une base de données primaire après incident
Principe
a. Standby physique
1. Réplique physique de la base de données primaire
2. Application des archives logs de la base primaire sur la base
secondaire
b. Standby logique
a. Application des ordres SQL envoyés vers la base primaire sur la
base secondaire
Guillaume HARRY 30/07/07 18
Oracle Database Server : MAA
Data Guard
Bonnes pratiques
a. Transport des archive logs
1. Augmenter le paramètre LOG_ARCHIVE_MAX_PROCESSES
2. Positionner le paramètre MAX_CONNECTIONS à 5
b. Réseau
1. Taille DSU à 32Ko
2. Tampons TCP = 3xbande passante
c. Surveiller les indicateurs de recovery avec la vue
V$RECOVERY_PROGRESS
1. Average Apply Rate : Redo aplied / Elapsed time
2. Active Apply Rate : Redo applied / Active time
3. Apply Time per log
4. Checkpoint Time per log
Guillaume HARRY 30/07/07 19
Oracle Database Server : MAA
Arrêt planifié Arrêt imprévu
Modification Système Modification des données Panne Système Problème de données
Data Guard Data Guard
RAC RAC M
Disponibilité
ASM ASM
A
Réorganisation online
Flashback
A
Bonnes pratiques
Redéfinition online
Guillaume HARRY 30/07/07 20
Exemple d’implémentation : MAA (1/2)
1. Technologies Oracle
1. RAC
2. ASM
3. Data Guard
4. Flashback
5. RMAN
2. Règles de bonnes pratiques opérationnelles tout aussi importantes
Guillaume HARRY 30/07/07 21
Exemple d’implémentation MAA (2/2)
Guillaume HARRY 30/07/07 22
Et en dehors des technologies Oracle ?
1. Oracle Application Server
1. Avec load balancer matériel ou logiciel
a. Actif/Actif
b. Actif/Passif
2. Oracle Database Server : serveurs en mode Actif/Passif
1. Plantage serveur sans corruption de disque ou de bloque
a. Disques accessibles par le serveur de secours pour réouvirir la base de
données
2. Corruption de disque ou de bloque
a. Restauration quotidienne sur un serveur de secours
1. Effectuer un checksum pour valider la sauvegarde
2. Application des archive logs en cas d’incident
b. Possibilité d’ouvrir la copie en mode lecture pour les batchs d’extraction
Guillaume HARRY 30/07/07 23