![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
|
Table de matières du livre Depuis environ trois ans je suis en train d'écrire un livre (roman) sur les deux aspects de mes activités de base Oracle: Le conseil en Administration et en Tuning. Cet ouvrage est un livre de cuisine dédié à tous ceux qui veulent comprendre et aller au-delà de la documentation qui est parfois très complexe. Les informations trouvées dans le livre sont pur beurre, il y a peu de syntaxes ;-)
Il est probable que le livre sortira après la sortie de la 10, vu qu'il s'approche :-) Je suis aussi sensible aux commentaires, donc n'hésitez pas !
Premièr volume
Vous avez choisi ORACLE. Et alors?
Le DBA
Le métier du DBA.
La charte du bon DBA
Nos 'typologies' du métier de DBA
Le livre
Comment est organisé ce livre ?
Ce qui n’est pas couvert par ce livre
Première Partie
L’architecture ORACLE
Base et instance
Base de données/Database
Les structures logiques d’une base
Tablespace
Tables
Les Segments
Les extents
Les blocs
Objets
Les structures physiques d’une base
Fichiers de données.
Fichiers de contrôle.
Fichiers de journalisation.
Fichiers de trace.
Fichiers maintenus par Oracle.
Instance
Les structures mémoire
SGA
PGA (PROGRAM GLOBAL AREA)
UGA (USER GLOBAL AREA)
Les process ORACLE
Les process background
DATABASE WRITER (DBW0 à DBW9)
LOG WRITER (LGWR)
CHECKPOINT (CKPT)
SYSTEM MONITOR (SMON)
PROCESS MONITOR (PMON)
Les process facultatifs
ARCHiver (ARCH)
RECOvery (RECO)
SNaPshot (SNP)
Les process de connexion
Listener (LSNR)
Les process multithread
Le Dispatcher (DXXX)
Les Serveurs partagés (SRVR)
Architectures de connexion
INIT.ORA
SQL
Le cache
Le cache CPU
Le cache disque
Les caches Oracle
La cuisine intime d’ORACLE
Les blocs
Les transactions
Le System Change Number (SCN)
Les latch
Les locks
Le CHECKPOINT
Deuxieme Partie
Le réseau
La communication
L’architecture de connexion
Le listener
Les différents types d’architecture
Serveurs dédiés
Serveurs partagés (Multithread)
Les DISPATCHERS
Les SHARED SERVERS
La configuration du réseau
Configuration rapide SQL*Net
Notions employées
Connect descriptors
Service names
LISTENER.ORA
Syntaxe
Exemple
Grand nombre de connexions
TNSNAMES.ORA
Non utilisation de tnsnames.ora
Alias SQL*Net sur NT
TWO_TASK
Multiples listeners
SQLNET.ORA
Nettoyer les connexions perdues
PROTOCOL.ORA
Comment contrôler les accès avec SQL*Net ?
Utilisation du LISTENER
Démarrer et tester le listener
Test des postes client
TNSPING
SQL*Plus
Erreurs courantes
Fichiers de log et de trace
Exemple de fichier Log
Suspendre temporairement le log Listener
Mise en place de MTS (shared servers)
Les paramètres MTS du fichier INIT.ORA
Recommandations
Modification de la SGA pour le MTS
Les vues dynamiques pour le MTS
Optimisation du MTS
Optimisation de la SGA
Description des circuits
Contention sur les dispatchers
Temps d’attente sur les dispatchers
Temps d’attente sur les process serveurs
Nombre de process serveurs actifs
Méthodes de connexions
Client Load Balancing (Multiples Listeners)
Connect-Time Failover (Multiples Listeners)
Transparent Application Failover
Service Registration
PRESPAWN
Tuning de Oracle Net (SQL*NET, NET8)
Lecture supplémentaire
Troisiéme Partie
Fonctionnement de Oracle
Les catégories de process
Process background
PMON
SMON
DBWR
LGWR
ARCH
CKPT
RECO
SNP
QMN
LCK
P000
Identifier les process
Quels process sous NT ?
Process et mémoire
Services Windows NT
Structure physique d’une base ORACLE
Les fichiers de la base
Fichiers de contrôle
Paramètrages de la base
Création des fichiers de contrôle
Modification des fichiers de contrôle
Copier les fichiers de contrôle
Modifier MAXLOGFILES, MAXDATAFILES
Fichiers redo log
Contenu des fichiers redo log
Fonctionnement des fichiers redo log
Mécanisme de SWITCH des REDO LOG
Utilisation des fichiers redo log
Fichier ALERT .LOG
Fichiers de trace
INIT.ORA
Contenu du fichier INIT.ORA
Exemple de fichier INIT.ORA
Fichiers d’export
Fichiers BFILE
Les structures mémoire
SGA
Le database buffer cache
Fonctionnement du cache des données
Dimensionnement
Fonctionnement - accès aux buffers
Allocation
Les latches du buffer cache
LRU
La dirty list
LRU ou MRU : petite ou grosse (table) ?
Positionnement spécial dans le cache
Utilisation du paramètre CACHE
Utilisation du multiple BUFFER POOL (V8)
Dimensionnement de chaque zone
Utilisation de chaque zone
Utilisation du multiple BUFFER POOL (V9)
Différentes tailles de bloc (9i+)
LRU, algorithme modifié en 8i !
La lecture consistante des blocs
Écriture des buffers
Modifier la taille du buffer cache
Incidence de l'ajout de buffers (8.0)
Incidence de l'ajout de buffers : db_cache_advice (9i)
REDO LOG BUFFER CACHE
Optimisation du log buffer
SHARED POOL
LIBRARY CACHE
SHARED SQL AREA
PRIVATE SQL AREA
Dimensionnement de la zone SQL privée
Traitement du PL/SQL
Stockage du SQL et du PL/SQL
Le DATA DICTIONARY CACHE
Reserver une portion du cache pour les gros objets
Gestion de l'espace dans la SHARED SQL
Vieillissement de la Shared Pool
Nettoyage complet de la Shared Pool
Les autres pools
Le LARGE POOL
Le Java pool
Les autres structures mémoire
La PGA
La UGA
La SORT AREA
Zone Mémoire de Tri et Paramètres
Sort Area - Paramètres
SORT_AREA_SIZE et segments temporaires
Sort Area – optimisation des tris
Lectures supplémentaires
Quatrieme Partie
Le monde logique ORACLE
Le catalogue
Les vues du dictionnaire
Différences entre les vues USER, ALL, DBA
Les vues dynamiques (V$)
Les vues fixes (X$)
DML sur le dictionnaire
Règles à respecter :
Packages d'ORACLE
Packages fournis par ORACLE ??? incomplet
Informations relatives aux objets stockés
La commande DESCRIBE
Lecture supplémentaire !
Principaux objets
Qu'est ce qu'une base de données ?
Qu'est ce qu'un tablespace?
Le tablespace SYSTEM
Les autres tablespaces
Configuration du tablespace temporaire
Paramètres de Stockage
Différents Tablespaces Temporaires
La vue V$SORT_SEGMENT
Striping
Tablespaces et fichiers de données
Lien Tablespace/Fichier de données
Syntaxe de création d’un tablespace
Syntaxe de modification d'un tablespace
Drop Tablespace – syntaxe et paramètres
Ajout d'espace à un tablespace
Modifier la taille d'un fichier
Déplacement d'un fichier de données
Changement de statut d'un tablespace
Mise offline ou online
Mise en lecture seule (read only)
Paramètre READ_ONLY_OPEN_DELAYED
Tablespaces Transportables
Technique d’utilisation
Gestion supplémentaire
Atélier de création
Locally Managed Tablespaces
Informations du dictionnaire
Définition dans le dictionnaire
Vues dynamiques
L’espace libre offline
La clause DEFAULT STORAGE
Minimum extent
Les extents
Contrôler les allocations d'espace
Les segments
Les segments de données
Représentation d'une ligne
Les segments d'index
Les segments temporaires
Les Rollback Segments
Fonctionnement des rollback segments
La cuisine du rollback
Le block cleanout
Types de Rollback Segment
Le rollback segment SYSTEM
Les rollback segments NON-SYSTEM
Les rollback segments différés
Les rollback segments fast start
Gestion des RBS
Création
Modification
Suppression
Vérification de la création
Les statistiques
Forcer l’utilisation d’un RBS
Dimensionnement des RBS
Nombre de rollback segments
Taille d’un rollback segment
Nombre d’extents
Acquisition lors du démarrage
Mesurer l’utilisation des RBS
Le statut d’un rollback segment
La vue DBA_ROLLBACK_SEGS:
La vue V$ROLLSTAT :
Les entrées de rollback et fonctionnement
Qui utilise quel rollback segment ?
Quel process utilise quel RBS ?
ORA-1555 snapshot is too old
Tuning des Rollback Segments
Détermination de la taille optimale
Ajouter des rollback segments ?
Clause storage pour les segments
Les ‘undo tablespaces’
Rétention undo.
Paramètres de INIT.ORA qui gèrent le Undo Management
Gestion des segments undo.
Création et gestion des Undo Tablespaces.
Choisir un autre Undo Tablespace.
Surveillance.
Définition d'un schéma
Gestion des tables
Création d'une table
Modification d'une table
Suppression d'une table
Déplacement d’une table
Drop des colonnes
La clause deallocate
Partitionnement
Tables et Index Partitionnés
Relations entre tables et tablespaces
Définitions des colonnes
Types de données
Les valeurs par défaut
NLS
Comparatif entre LONG et LOB
Le type ROWID
Format ROWID en V8
ROWID restreint
Le package DBMS_ROWID
Les collections
Les VARRAYS
Les tables imbriquées (NESTED TABLES)
Les tables organisées en index (IOT)
Les tables temporaires
Gestion des LOBS
Définition d'un LOB interne
Conversions vers des données de type LOB
Définition d'un BFILE
Définition d'un répertoire
Manipulation des LOBS
Le package DBMS_LOB
Le partitionnement
Partitionnement de type intervalle
Partitionnement de type HASH
Souspartitionnement
Création d’une table partitionnée
Création d’une table sous partitionnée
Gestion des tables partitionnées
ALTER TABLE DROP PARTITION
ALTER TABLE ADD PARTITION (range partition)
ALTER TABLE ADD PARTITION (hash partition)
ALTER TABLE ADD PARTITION (partition composite)
ALTER TABLE SPLIT PARTITION
ALTER TABLE EXCHANGE PARTITION
ALTER TABLE RENAME PARTITION
ALTER TABLE MOVE PARTITION
ALTER TABLE COALESCE PARTITION
ALTER TABLE TRUNCATE PARTITION
ALTER TABLE MERGE PARTITION
Commandes pour gérer les index partitionnés
Supprimer une partition d’index
Modifier le statut d’un index
Rendre un index inutilisable
Reconstituer une partition
Concaténer deux partitions adjacentes
Permettre le déplacement d’une ligne d’une partition vers une autre
Gestion des tables partitionnées
Gestion de l’espace
Du logique au physique
Éléments physiques
Éléments logiques
Blocs de données ORACLE
Composants d'un bloc de données
Contrôle de l'espace libre dans le bloc
PCTFREE
PCTUSED
Contrôler l'utilisation de l'espace
Choix des paramètres
La corruption des blocs
Les freelists
Les freelists transactionnels.
Les process freelists
High Water Mark
Les ITL (interested transactions list)
La constitution des blocs
Cache header
Transaction header
La zone des données
Les différents types de blocs
Les blocs de données
Les blocs de rollback
Les blocs d’index
Le remplissage des blocs
Le chaînage des lignes
La migration des lignes
La fragmentation des blocs
Les Index ORACLE
Les différents types d'index
Logique
Physique
L'index UNIQUE
L’index non UNIQUE
L’index composé
L’index à clé inversée
L’index sur les fonctions (FBI)
Les index Bitmap
Avantages
Inconvénients
Structure d'un index bitmap
Syntaxe
Types de blocs d'index B-tree
Avantages d'une structure de type B*TREE
Directives pour la création d'index
Restrictions sur les Index
Exemple de création d'un Index
Volumétrie des index
Vérification de la création des Index
Modification d’un index
Suppression d’un index
Reconstruction d'index
Les index partitionnés
Les types d'index partitionnés
Utilisation des index
Recréation des index
Surveillance et Reconstruction d’Index
Nouveautés 8i
Novalidate pour les index
Les vues
Avantages des vues
Syntaxe de création de vue
Alter et Drop View
Vérification de la Création des Vues
Relation entre table et vue
Ordres DML sur des vues avec jointure
WITH CHECK OPTION
Vues avec des jointures optionnelles
L'intégrité des vues
Vues non modifiables
Cluster Index / Hash Clusters
Les clusters
La structure des clusters
Usage des clusters
Démarche pour la mise en place
Les hash clusters
La vie des clusters
Création des clusters
Suppression d’un cluster
Création de Hash Clusters
Exemple d’index cluster
Exemple de hash cluster
Autre exemple de hash cluster
Informations sur les clusters
Utilisation des clusters
Les séquences
Les liens base de données
Les synonymes
Les SNAPSHOTS
Types de rafraîchissement
Les PROCEDURES
Création
Modification / Suppression
Les FONCTIONS
Création
Modification/Suppression
Les PACKAGES
Création de spécification
Création de corps
Modification
Suppression
Les TRIGGERS
Activation / Désactivation
Suppression
Exemple de trigger
Les triggers INSTEAD OF
Informations dans le dictionnaire
Les nouveaux triggers
Les vues matérialisées (materialized views)
But des vues matérialisées
Principe
Constitution
Privilèges
Déclenchement
Exemple
Les Pipes
Avantages du package
Intégrité des données
Les contraintes
La contrainte NOT NULL
La contrainte UNIQUE
La contrainte CHECK
La contrainte DEFAULT
Quelques notions – contraintes référentielles
La contrainte PRIMARY KEY
Primary key – un autre index la valide !
USING INDEX
La contrainte FOREIGN KEY
ON DELETE CASCADE
État des contraintes
Contraintes non différées (IMMEDIATE)
Contraintes différées (DEFERRED)
ACTIVATION DES CONTRAINTES
Rely/norely
Visualisation des informations
Les triggers
Cinquieme Partie
Sécurité Oracle
Niveaux de sécurité
La sécurité des comptes
Deux niveaux de sécurité
La sécurité au niveau système
La sécurité des objets
STRATÉGIE D'ORGANISATION DES COMPTES
Quelques mots sur OSOPER, OSDBA
Les Rôles
Utilisateurs et schémas
L’audit
Implémenter la sécurité
Les comptes ORACLE
Validation par le système d'exploitation
Validation par la base de données
Créer des comptes ORACLE
Liste de contrôle
L'ordre DDL : CREATE USER
Pièges des valeurs par défaut
Vérification de la création
Modifier un compte ORACLE
Alter user
Gestion des mots de passe sur les comptes
Modification les quotas des utilisateurs
Drop user
Interrompre des sessions utilisateurs
La commande SQL kill session
Identifier un processus à interrompre
Authentification OS
Informations dans le dictionnaire
Les Rôles
Avantages des rôles
Création / Modification d'un rôle
Utilisation des rôles
Suppression d'un rôle
Exemple :
Visualisation des informations
Les Rôles prédéfinis
Les commandes DCL Grant et Revoke
L'ordre GRANT – privilège système
Vérification des privilèges systèmes accordés
L'ordre REVOKE – privilège système
L'ordre GRANT – privilège objet
Vérification des privilèges objets accordés
L'ordre REVOKE – privilège objet
Sécurité : propagation des droits
With Grant Option/With Admin Option
Le groupe PUBLIC
Les privilèges systèmes
Privilèges systèmes : SYSDBA et SYSOPER
CONNECT INTERNAL : fichier password
La fin de connect internal
La Sécurité Windows NT
Les utilisateurs du système d'exploitation NT
Sécurité ORACLE avancée
Le Fichier Remote_Login_PasswordFile
La sécurité des logins
Les rôles du système d'exploitation
Des services réseau sécurisés
Limitations de ressources : les profils
Fonctionnement
Gestion des ressources à l'aide de profils
CREATE PROFILE
Vérification de la création d'un profil
L'ordre DDL alter profile
Suppression d’un profil : DROP PROFILE
Activation des limites de ressources
Affichage des limites de ressources
L'option COMPOSITE_LIMIT:
La notion de coût: COST
Attribution d'un coût
Gestion des mots de passe
Création du profil
Paramètres des mots de passe
Verrous des comptes
Expiration du mot de passe
Historique des mots de passe
Fonction de vérification des mots de passe
Activation de la gestion des mots de passe
Informations dans le dictionnaire
Les groupes de ressources
Création d’un plan de ressources
Administrer les plans de ressources
Manager les accès au niveau de la ligne
Audit
Directives pour l'audit
Contrôle du volume de la trace de l'audit
Protection de la trace de l'audit
Les catégories d'audit
Audit basé sur les valeurs par triggers
Activation de l'audit
Activation des options d'audit
Audit de privilège ou de commande
Audit d'objet
Audit des objets de la base
Désactivation de l'audit
Informations de l'audit
Les traces
Les vues d'options de l'audit
Visualisation des résultats de l'audit
Protection des résultats de l’audit
LES SYNONYMES
Règles générales :
Pourquoi utiliser des PUBLIC SYNONYM ?
CHECKLIST concernant la sécurité ORACLE
Vérifier la contention minimale.
Vérifier les protections des fichiers
Vérifier les protections des fichiers
Interdire l’accès FTP dans ORACLE_HOME
Interdire l’accès TELNET dans ORACLE_HOME
Vérifier les permissions des fichiers
Vérifier l’absence de mots de passe NULL.
Vérifier le cryptage des mots de passe.
Vérifier l’inexistence des autorisations OS
Vérifier les permissions objet
Vérifier la modification des mots de passe
Limiter les accès directs aux données
Devenir quelqu’un d’autre
Sécurité au niveau de l'OS
Le contrôle des privilèges
Le fonctionnement des privilèges
Les vues du dictionnaire de données
Les vues concernant les utilisateurs
Les vues concernant les ressources et profils
Les vues concernant les statistiques sur les sessions
Sixieme Partie
Traitement SQL
Les curseurs
Les trois phases de traitement SQL
Parsing et optimisation
Le hit ratio du parse
Execute
Fetch
Accès aux données
Traitement d'un ordre Select
Lecture consistante - Read Consistency
Ordres de mise à jour - Update, Delete, Insert
Pourquoi dans le rollback ?
Les transactions
Transactions ORACLE
Contrôle des transactions
Commit, Rollback et Savepoint
Géstion des transactions
Le traitement du Commit
Affectation des buffers
Points de validations (checkpoints)
Conditions d'exécution d'un checkpoint
Checkpoint incrémental
Checkpoint incremental et FAST_START_IO_TARGET
Quand les données sont-elles écrites ?
Les types de transactions
Les transactions read only
Les transactions autonomes
Les transactions discrètes
CBO/RBO
Quelques précisions concernant les optimisations Oracle
La concurrence d’accès
Les verrous (locks)
Les verrous DDL
Le verrou exclusif (X)
Le verrou partagé (S)
Le verrou de parsing
Les verrous DML
Les verrous exclusifs
Les verrous partagés
Le verrou SHARE ROW EXCLUSIVE (SRX)
Pose manuelle de verrous
Les stored outlines
Gestion de stored outlines
Gestion de stored outlines avec OUTLN_PKG
Les stored outlines dans la base
Les jointures
La table directrice "driving table"
Détermination de la table directrice
Les jointures externes
NESTED LOOPS
SORT-MERGE
CLUSTER JOIN
HASH JOIN
INDEX JOIN
Tuning
Septieme Partie
Utilitaires Oracle
Chargement des données - SQLLOADER
Les entrées et les sorties
Le fichier de contrôle
Contenu du fichier de contrôle
Les Paramètres les plus fréquents
Types de données et conversions de types
Les types de données caractère
Les données en entrée
Les chemins de SQL*LOADER
Chemin normal (traditionnel)
Chemin direct
Quelle méthode choisir ?
Les données rejetées par SQL*LOADER
Exécution de SQL*LOADER
Les arguments les plus fréquents
Réorganiser les données
Import/Export
Export par chemin conventionnel / direct
Chemin conventionnel
Chemin direct
Utilisation d'EXPORT et d'IMPORT
Réorganisation des tables
Transfert de données
Exécution d'une sauvegarde logique.
Utilisation de l'export
Syntaxe de l'utilitaire d'export
Syntaxe de l'utilitaire d'import
Comportement de l'import
Tablespace utilisé pour un objet
Règles d'utilisation
Import et character set
Ajouts
Neuvieme partie
ORACLE, haute disponibilité et volumétrie
La haute disponibilité
L’archivage multiplexé
Plusieurs destinations d’archivage
Echecs permis lors de l’archivage
Vues du dictionnaire
Plusieurs process d’archivage
La standby database (8i)
Création de la standby database
Backup des fichiers de la base
Création du fichier de contrôle
Configuration du réseau
Configurer l’archivage
Création du service (NT)
Démarrages
Vérifications
Recouvrir la standby database
Arrêt du recouvrement et ouverture en read only
Recommencer la restauration
Le concept DataGuard (9i)
Méthodes
Modes de protections de données
Etats d’âme du serveur standby
Implementation
Création de la standby database
Rappels
Démarrage de la machine standby
Switch des bases
Maitre
Standby
Maitre
Notes
Management server
Broker
Les gros volumes
Rollup et cube
Sample
Case
ORACLE Parallel Query
La mémoire et parallel query
Le dictionnaire de données et PDML
Activation de PDML
Les transactions parallélisées et les restaurations
Les transactions parallélisées et les RBS
Exemple de requêtes parallélisées
Le package DBMS_STATS
Copie des statistiques entre les bases
Le package DBMS_OLAP
Le LogMiner
Intermedia text (Oracle Text)
Les paramètres de init.ora
L’environnement
La création
L’installation des langues
Configuration de NET8
Tester le reseau
Tester l’installation
Insertion et index de plusieurs documents en format WORD
Les vues et les in-line views permettent ‘order by’.
Le tri s’effectue uniquement sur la population selectionnée.
Dimensions
Level Keys et Attributes
Definir une dimension basée sur plusieurs tables.
Reecritures des requetes et Dimensions
Activer et controler les reecritures
DBMS_OLAP
Evaluation des Sommaries existants
Recommandations
Visualiser les recommandations
Estimer les besoins en volumetrie
Benefice de l’utilisation des sommaires
NLS
Préambule
Le stockage des données
Représentation des codes dans la base
La consultation et la saisie des données (configuration du client)
Traduction client/serveur/client
Fonctionnement local
Tables de caractères
Scripts
Influence NLS sur la base, l’instance et la session
Bibliographie
Onzieme Partie
L’oracle d’ORACLE
Les n commandements du DBA
La répartition des différents types de fichiers sur disques.
Quelques règles de (auto) gestion
Commentez votre code
Surveillez les périodes de pointe
Standardisez vos bases.
Taches quotidiennes
Instances fonctionnelles ?
Alert.log
Backups
Bandes
Vérifier les ressources
Espace libre (free space)
Rollback segments
Segments
Identifier l’explosion suivante
Contentions
Standby database (data guard)
Réplication
Que suivre ? (Choses à vérifier régulièrement)
Jeu de caractères
Pourquoi copier une base ?
Aide-mémoire pour la recréation d’une base
Pas 1 - Documenter la base actuelle !
Pas 2 – Faire un backup exhaustif
Pas 3 – Détruire l’existant
Pas 4 - Vérifier les scripts
Pas 5 – Envoyez !
Pas 6 – Revoir des choses !
Pas 7 – Import !
Pas 8 - Testez la base !
Copier une base de données
Backup de la base
Création de l'environnement cible.
Copie des fichiers dans l'environnement cible
Modification du script
Modification de init.ora
Création du service (sous NT)!
Renommer la base cible
Ouvrir la base
Si full Backup à l’étape initiale:
Si Online Backup :
Effectuez un backup.
Divers
Mettre à jour oratab.
Mettre à jour les fichiers SQL*Net
Scripts
Exemple de r.sql
Voici le script original :
Renommer une base en 10 étapes faciles
Embellir vos sorties !
Combien de mémoire (utilise le package)?
Utilisation de la mémoire
Détermination du session ID courant
Que représente 'MULTIPLE CHILDREN PRESENT' dans la colonne optimizer_mode dans v$sql ?
Le nom du fichier trace
Fichier indisponible ?
Astuces
Performance monitor
Reverse Engineering ?
NT, base de registres, shutdown
Monitoriser alert.log (NT)
Environnement technique
Perl
NT
Installation
Le script
Définitions
Table de matieres
Deuxième volume
Huitieme partie
Sauvegarde et restauration
Préambule
Planification - simulation
D’où viennent les problèmes ?
Bouclier Hardware (et redondance physique)
Bouclier software (et redondance logique)
ORACLE Parallel Server
Types de backups envisageables
Divers architectures
Backup physique à froid (cold backup)
Backup physique à chaud (hot backup)
Backup logique
Proactif et réactif
La maîtrise du plan de secours ORACLE
La restauration standard et totale.
La réplication logique
La réplication physique
La maintenance du plan de secours ORACLE
Envisager une restauration programmée ?
La maintenance du recouvrement applicatif
Conclusion
Stratégies de sauvegarde
Choisir son scénario !
Sauvegarde et mécanismes de la restauration
Les fichiers de contrôle
Les fichiers de contrôle multiplexés
Sauvegarde des fichiers de contrôle
Journalisation
Archivage automatique
Démarrer l'archivage
Démarrer l'archivage automatique
Archivage / non archivage
MODE NOARCHIVELOG
MODE ARCHIVELOG
Options de restauration en mode archivelog
Affichage des informations sur les journaux
ROLLBACK segments et restauration
Sauvegarde des fichiers
Identification des fichiers
Sauvegarde complète de la base de données
Étapes d’une sauvegarde complète
Script générateur de la liste des fichiers à sauvegarder
Sauvegardes partielles de la base
Sauvegardes avec les tablespaces offline
La sauvegarde à chaud (HOT BACKUP)
Full backup obligatoire ?
Le hot backup – toute une stratégie
Restaurations (à la main)
Étapes de la restauration
Comment se prend ORACLE au démarrage ?
Cuisine de la restauration
Optimiser le processus de restauration
Divers types de pannes
Panne d'instance
Panne matérielle
Que restaurer ?
Identifier les fichiers à restaurer
Déplacer les fichiers
Déplacer les fichiers de données
Déplacer les fichiers journaux
Restauration et alter database
La clause RECOVER
Types de restauration
SERVER MANAGER et ALTER DATABASE
Utilisation des fichiers journaux archivés
Appliquer les fichiers journaux
Avec SERVER MANAGER
Avec ALTER DATABASE RECOVER
Application automatique des fichiers journaux
Avec SERVER MANAGER
Avec ALTER DATABASE RECOVER
Explosion en mode NOARCHIVELOG
Incidents en mode noarchivelog
Perte d’un fichier de contrôle multiplexé
Perte d’un fichier de données
Restaurations en mode NOARCHIVELOG
Restauration d’une sauvegarde complète
Explosion en mode Archivelog
Incidents en ARCHIVELOG et leurs conséquences
Perte de fichiers de contrôle
Pas de sauvegarde disponible
Sauvegarde disponible
Perte d’un fichier de contrôle multiplexé
Perte de tous les fichiers de contrôle
Perte du fichier journal en ligne
Déterminer l'état d'un fichier journal.
Perte d’un membre redo log
Perte d’un fichier redo log
Perte du redolog actif
Perte d’un redolog inactif
Redolog archivé
Redolog non archivé
Perte d’une archive
Perte du tablespace SYSTEM
Perte d’un fichier avec rollbacks actifs
Perte d’un autre fichier de données
Restaurations en mode ARCHIVELOG
Restauration complète
Etapes de la restauration complète
Restauration de la base
Restauration d’un tablespace
Restauration d’un fichier
Restauration partielle (incomplète)
Restauration terminée par CANCEL
Restauration basée sur une heure
Restauration basée sur un SCN
Comment déterminer le SCN ?
Réinitialisation des fichiers journaux
NORESETLOGS ou RESETLOGS ?
Vérification de la restauration
Détermination du cas de figure
Le mode d’archivage
L’état des fichiers
L’état des redo logs
Perte de fichiers en mode NOARCHIVELOG
Fichier des données (Cas n°1)
Solution A1 : restauration complète
Solution A2 (petit volume perdu)
Solution A3 : (données inutiles)
Fichier temporaire (Cas n°2)
Solution B1 : données temporaires
Perte d’un fichier avec rollbacks (Cas n°3)
ORA-01545 Rollback segment cassé
Tablespace SYSTEM (Cas n°4)
Cas de figure en mode Archivelog
Perte d’un fichier sans rollbacks (Cas a.1)
Recover database
Recover datafile
Recover tablespace
Recover avec la base ouverte
Perte d’un fichier avec rollbacks (Cas n°5)
Perte d’un redo log non archivé (Cas n°6)
15 heures
17 heures
20 heures
Catastrophe pendant un HOT backup (Cas n°7)
Recovery et Backup Controlfile (Cas n°8)
Perte d’un fichier de données sans backup
Création des fichiers (Cas n°8)
Recovery et tablespaces offline (Cas n°9)
Recovery et tablespaces READ ONLY (Cas n°10)
Cas A (R/O au backup et avant le crash)
Cas B (R/O au backup, R/W avant le crash)
Cas C (R/W au backup, R/O avant le crash)
Cas D, E, F
Conclusion
Recovery et standby database ( non fait 16) (Cas n°11)
Perte d’une partition: ORACLE 8 et > (non fait 17) (Cas n°12)
Recovery d’un fichier temporairement offline (Cas n°13)
Perte d’un rollback segment (Cas n°14)
Restauration et resetlogs (non fait a505) (Cas n°15)
Fichiers ORACLE et Begin Backup (Cas n°16)
Point in time recovery (Cas n°17)
ROLL-FORWARD et EXPORT
IMPORT (base initiale)
Restrictions, vérifications
Restauration des objets perdus (Cas n°18)
Restauration sur une autre machine (Cas n°19)
La corruption de blocs
Checksum des blocs
La réparation des blocs corrompus
Douzieme Partie
Tuning Oracle
Que optimiser ?
Optimiser le code
Design des tables.
Design applicatif
SQL optimisé
Optimiser le noyau
La SGA
La SORT AREA
Le balancement des entrées/sortie sur disques.
La contention des segments rollback.
L’utilisaion des segments temporaires.
La fragmentation des objets.
Les fichiers redolog.
Les attentes des ressources.
Tuning SGBD
Pourquoi optimiser ?
Quand optimiser ?
Les axes d’Optimisation
Comment optimiser ?
Planifier le systeme
Optimiser le code
Design des tables.
Design applicatif
Optimiser le SQL
Optimiser les index
Optimiser le noyau
Tester votre systeme
Monitorisez les performances
S’arrêter, mai quand ?
L’Approche méthodologique du tuning
Plan d’intervention détaillé
Applicatif
Mémoire
DISK I/O et Hot Spots
Comment choisir la taille du bloc Oracle ?
Reduire les entrees / sorties!
Raw device
TABLESPACES
LMT (locally managed tablespaces)
VOLUMETRIE
Les fichiers REDO LOG
Les outils de mesure
Explain PLAN
V$SQL_PLAN
Traces de requêtes SQL (et tkprof)
Mise en oeuvre
Optimisation des ordres SQL et PL/SQL
Les vues dynamiques
UTLBSTAT/UTLESTAT
TKPROF
TKPROF : Considérations de tuning
STATSPACK – nouveau en 8i
Tuning global du cache Oracle (la SGA)
Tuning du database buffer cache
Mesurer les performances du buffer cache
Le hit ratio
Ameliorer le hit ratio
Les attentes système concernant le cache
Occupation du buffer cache
Utilisation des buffers
Repartition des pools et hit ratio des buffers
Le cache et DBWR
Mieux utiliser le cache
Scotchez les données en mémoire
Tuning du library cache
Rappel de l'utilisation du cache
Mesurer les performances du library cache.
Hit ratio du parse
Miss Ratio du cache
Les attentes système concernant le shared pool
Modifier la taille du library cache.
Utilisation de la sql area : V$SQLAREA
Utilisation du library cache : V$LIBRARYCACHE
Déterminer la mémoire disponible dans le shared pool:
Déterminer le volume occupé par un objet :
Objets qui occupent plus de …
Code qui nécessite de la mémoire contiguë :
Requêtes semblables :
Interpreter les analyses de V$LIBRARYCACHE
Reduire les ratés dans le Library Cache
Agrandir la taille du Library Cache
Utiliser du code optimisé
Accelerer l'acces au shared pool
Mieux ranger le code dans le cache
Utiliser la partie reservée du shared pool
Scotcher l'ordre dans le shared pool
Scotcher un package dans le shared pool
Fixer le code rebelle dépisté en pleine production
Cacher les curseurs
Tuning du DATA DICTONARY CACHE
Hit ratio du dictionary cache
Utilisation du dictionary cache : V$ROWCACHE
Tuning du LOG_BUFFER
Mesurer les performances du cache redo log
Le Hit ratio
Recherche des contentions du buffer redo
Les attentes système concernant le redo log
Optimisation du redo log buffer cache
Accélération des écritures dans le buffer
Contention sur les fichiers redo log
Compteurs dans V$SYSSTAT
Checksum lors de l'ecriture
Checkpoint not complete
Réduction des opérations Redo
Profiter du nologging
SQL*Loader et Mode NOLOGGING
Direct Load Insert et mode NOLOGGING
Ordres SQL et NOLOGGING
Tuning de la mémoire de tri (Sort Area)
Qui utilise la SORT_AREA ?
SORT_AREA_SIZE.
Taille de la sort_area_size
PGA_AGGREGATE_TARGET (9i+)
Accelerer les tris
Gestion des tris
Suivi des process
Tuning du DBWR
Paramètres concernant database writer
Détecter la fragmentation
Le chaînage des lignes
La migration des lignes
Analyse de la répartition des E/S
Les statistiques d’E/S.
Optimisation des entrées / sorties
Manual striping
Les Segments d’Annulation (Rollback)
Rôle
Fonctionnement interne
Utilisation
Allocation par les transactions
Pourquoi créer plusieurs rollback segments
Ou placer les rollback segments ?
Taille et nombre de rollback segments
Quelques conseils
Optimisation des rollback segments
Conclusion (rollback segments)
ORA-1555 snapshot is too old
Allouer un rollback à une grosse transaction
La vue V$ROLLSTAT
Gestion des latches
Locks.
Statistiques a controler dans V$SYSSTAT
Recherche des contentions sur les segments
Segments de donnees
Contention sur les blocs d'entêtes de tables
Contention sur les blocs de donnees
Contentions sur les Rollbacks
Precautions
Optimisation du CPU
Contrôle
Code
Vérifiez les attentes au niveau du système
Vérifier les attentes au niveau des sessions
Les sessions qui utilisent plus de 10 000 octets de zone mémoire globale du programme (PGA).
utlbstat/utlestat
Gestion de l'espace
Les process qui tournent
UNIX
SUIVI
SGA
Shared pool
Paramètres qui jouent dans le calcul de la SGA
Le HIT RATIO pour les utilisateurs connectés.
Performance des appels SQL (global, utilisation du cache library).
Conclusion
Détermination du nom du fichier trace
Paramètres importants de INIT.ORA
Quelques vues dynamiques
Les tables virtuelles d’Attente
“Il y aura toujours une attente”
Les vues
Vue globale du systeme: V$SYSTEM_EVENT
V$SESSION_EVENT
La perspective de bas niveau V$SESSION_WAIT
Statistiques dans V$SYSSTAT
Classes de statistiques
Utilisation générale de la base
Verrouillages des données
Activité sur les Buffers Database
Activité sur les Buffers Redo Log
Accès aux tables :
Parsings
Tris
Statistiques a controler dans V$SYSSTAT
Les attentes critiques
Glossaire des evenements
Le stockage de type RAID
Trois concepts
Striping
Mirroring
Parité
Les types de RAID
RAID 0: concaténation
RAID 1 : miroir
RAID 3
RAID 4
RAID 5
Raid ou pas raid ?
db_file_multiblock_read_count
DBMSSTAT
STATSPACK
Tuning avec STATSPACK (8i+)
La notion de snapshot
Utilisation de STATSPACK
Installation de STATSPACK
Utilisateur PERFSTAT
Support de stockage
Installation effective de STATSPACK
Installation automatisée de STATSPACK
Utiliser PERFSTAT
Exécuter STATSPACK
Automatiser la collecte des statistiques
Reporting
Executer le rapport
Paramétrer PERFSTAT
Niveaux et limites
Modifier les valeurs par défaut des limites et du niveau
Désinstaller STATSPACK
Scripts SQL Oracle fournis en relation avec STATSPACK
Documentation Oracle
Partitions, disques
Exercices
Appendice
Bibliographie
Table de matieres
Une page parmi les 550 est présentée ici:
http://www.tafora.fr/div/tafora_livre_v3_1.pdf
Stats
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||