!
!
!
!
!
!
!
!

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
Compteur

Copyright © 1998-2002 Radu Caulea, TAFORA MAJ 06/11/2006 !
Commentaires et suggestions radu[CHEZ]tafora.fr