0% ont trouvé ce document utile (0 vote)
162 vues15 pages

Cours Complet Sur Oracle DBA Et Linux

Le document est un cours complet sur l'administration des bases de données Oracle (DBA) et Linux, couvrant des sujets tels que les fondamentaux d'Oracle DBA, l'architecture de la base de données, l'installation, la gestion, la sauvegarde, la sécurité et l'optimisation des performances. Il aborde également les bases de Linux, l'administration système, le scripting Shell et inclut des questions fréquentes en entretien pour les DBA Oracle et les administrateurs Linux. Le contenu est structuré de manière à fournir une compréhension approfondie des compétences nécessaires pour gérer efficacement les bases de données Oracle dans un environnement Linux.

Transféré par

Aliou Alga
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
162 vues15 pages

Cours Complet Sur Oracle DBA Et Linux

Le document est un cours complet sur l'administration des bases de données Oracle (DBA) et Linux, couvrant des sujets tels que les fondamentaux d'Oracle DBA, l'architecture de la base de données, l'installation, la gestion, la sauvegarde, la sécurité et l'optimisation des performances. Il aborde également les bases de Linux, l'administration système, le scripting Shell et inclut des questions fréquentes en entretien pour les DBA Oracle et les administrateurs Linux. Le contenu est structuré de manière à fournir une compréhension approfondie des compétences nécessaires pour gérer efficacement les bases de données Oracle dans un environnement Linux.

Transféré par

Aliou Alga
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours complet sur Oracle DBA et Linux

Table des matières


1. Fondamentaux d'Oracle DBA
2. Architecture d'Oracle Database

3. Installation et configuration
4. Gestion des bases de données

5. Sauvegarde et restauration
6. Performance et optimisation

7. Sécurité des bases de données

8. Fondamentaux de Linux

9. Administration système Linux

10. Shell scripting


11. Questions fréquentes en entretien
12. Ressources complémentaires

Fondamentaux d'Oracle DBA

Rôle du DBA Oracle


Responsabilités principales : Installation, configuration, mise à jour, sauvegarde, restauration,
sécurisation et optimisation des bases de données Oracle

Objectifs : Garantir la disponibilité, les performances et la sécurité des bases de données


Types de DBA :
DBA système (installation, configuration)
DBA application (développement, optimisation)
DBA production (surveillance, maintenance)

Versions d'Oracle Database


Versions principales : 11g, 12c, 18c, 19c, 21c
Éditions :
Enterprise Edition (EE) - fonctionnalités complètes
Standard Edition (SE2) - fonctionnalités limitées
Express Edition (XE) - gratuite, capacités réduites

Concepts clés
Instance : Processus et mémoire alloués pour accéder à une base de données
Base de données : Ensemble de fichiers physiques stockant les données

Schéma : Collection d'objets appartenant à un utilisateur


Tablespace : Unité logique de stockage dans une base de données Oracle

Architecture d'Oracle Database

Structure de mémoire
System Global Area (SGA) :
Mémoire partagée entre tous les processus
Composants principaux : Buffer Cache, Shared Pool, Large Pool, Java Pool, Streams Pool

Buffer Cache : stocke les blocs de données lus depuis les fichiers de données
Shared Pool : stocke le SQL partagé et le dictionnaire de données

Program Global Area (PGA) :


Mémoire privée allouée à chaque processus serveur

Contient les données de tri et les variables de session

Processus d'arrière-plan
PMON (Process Monitor) : Nettoie les processus serveur défaillants
SMON (System Monitor) : Récupération d'instance, nettoyage des segments temporaires

DBWR (Database Writer) : Écrit les blocs modifiés du buffer cache vers les fichiers de données
LGWR (Log Writer) : Écrit les entrées de journal redo du buffer redo log vers les fichiers redo log

CKPT (Checkpoint) : Met à jour l'en-tête des fichiers de données lors des points de contrôle
ARCn (Archiver) : Archive les fichiers redo log remplis

Structure de stockage
Fichiers de contrôle : Enregistrent la structure physique de la base de données

Fichiers de données : Stockent les données utilisateur


Fichiers redo log : Enregistrent toutes les modifications apportées à la base de données

Fichiers d'archive log : Copies des fichiers redo log remplis


Fichiers de paramètres : Paramètres d'initialisation pour l'instance (pfile/spfile)

Installation et configuration

Prérequis pour l'installation


Matériel : CPU, RAM, espace disque selon les besoins
Système d'exploitation : Versions compatibles de Linux (Oracle Linux, RHEL, etc.)
Paquets système : libaio, libnsl, etc.

Configuration du système : Paramètres kernel, limites de ressources

Méthodes d'installation
Oracle Universal Installer (OUI) : Installation graphique

Installation silencieuse : Utilisation de fichiers de réponse


Oracle RAC : Installation en cluster pour haute disponibilité

Configuration post-installation
Oracle Net Configuration Assistant : Configuration du réseau

Database Configuration Assistant (DBCA) : Création de bases de données


Configuration des listeners : listener.ora, tnsnames.ora

Configuration des paramètres d'initialisation : Modification du spfile

Gestion des bases de données

Création d'une base de données


Méthodes :
Utilisation de DBCA (Database Configuration Assistant)

Scripts SQL manuels (CREATE DATABASE)

Commandes SQL*Plus

Étapes clés :
Planification (taille, structure, paramètres)

Création de fichiers de paramètres

Allocation d'espace de stockage


Création de tablespaces et utilisateurs

Démarrage et arrêt
États d'une instance :
SHUTDOWN : Arrêtée

NOMOUNT : Instance démarrée, base non montée

MOUNT : Base montée, non ouverte


OPEN : Base ouverte et accessible

Commandes de démarrage :
STARTUP : Démarrage complet
STARTUP NOMOUNT : Démarre l'instance sans monter la base

STARTUP MOUNT : Démarre l'instance et monte la base

STARTUP FORCE : Force le démarrage après un arrêt anormal

Commandes d'arrêt :
SHUTDOWN NORMAL : Attend que les sessions se terminent

SHUTDOWN IMMEDIATE : Termine les transactions en cours

SHUTDOWN TRANSACTIONAL : Attend la fin des transactions

SHUTDOWN ABORT : Arrêt immédiat sans nettoyage

Gestion des objets de la base de données


Tablespaces :
Création : CREATE TABLESPACE

Modification : ALTER TABLESPACE

Suppression : DROP TABLESPACE

Types : permanent, temporaire, undo

Tables, index et contraintes :


Création, modification, suppression

Gestion des clés primaires et étrangères

Partitionnement des tables

Utilisateurs et privilèges :
Création d'utilisateurs : CREATE USER

Attribution de privilèges : GRANT

Révocation de privilèges : REVOKE

Rôles et profils de sécurité

Sauvegarde et restauration

Types de sauvegardes
Sauvegarde physique :
Cold backup (base arrêtée)

Hot backup (base en fonctionnement)

RMAN (Recovery Manager)

Copie d'image du système de fichiers

Sauvegarde logique :
Export/Import (expdp/impdp - Data Pump)
SQL*Loader

Recovery Manager (RMAN)


Avantages : Gestion des blocs corrompus, déduplication, compression

Configuration : Catalogue de récupération, canaux, politiques de rétention

Commandes principales :
BACKUP DATABASE : Sauvegarde complète

BACKUP INCREMENTAL : Sauvegarde incrémentielle

BACKUP ARCHIVELOG : Sauvegarde des journaux d'archives

RESTORE DATABASE : Restauration

RECOVER DATABASE : Récupération

Stratégies de sauvegarde
Sauvegarde complète : Toute la base de données

Sauvegarde incrémentielle : Uniquement les blocs modifiés

Sauvegarde différentielle : Changements depuis la dernière sauvegarde complète

Sauvegarde cumulative : Changements depuis la dernière sauvegarde incrémentielle

Récupération de la base de données


Types de récupération :
Complete recovery (récupération complète)

Incomplete recovery (récupération incomplète)

Point-in-time recovery (PITR)


Flashback Database

Scénarios de récupération :
Perte de fichiers de données

Perte de fichiers de contrôle


Perte de fichiers redo log

Corruption de blocs de données

Performance et optimisation

Outils de surveillance
Enterprise Manager : Interface graphique de gestion
Automatic Workload Repository (AWR) : Collecte de statistiques
Automatic Database Diagnostic Monitor (ADDM) : Analyse des performances

Active Session History (ASH) : Historique des sessions actives


SQL Tuning Advisor : Recommandations d'optimisation SQL

Optimisation des requêtes SQL


Plan d'exécution : EXPLAIN PLAN, AUTOTRACE

Indices : Types, création, maintenance


Statistiques : GATHER_STATS, AUTO_STATS_GATHERING

Hints SQL : Directives pour l'optimiseur

Gestion des ressources


Database Resource Manager : Allocation des ressources

Mécanismes de mise en cache : Buffer cache, result cache

Partitionnement : Amélioration des performances pour les grandes tables


Parallélisme : Exécution parallèle des requêtes

Résolution des problèmes courants


Verrouillage et blocage : Détection et résolution

Sessions longues : Identification et gestion

Requêtes lentes : Analyse et optimisation

Problèmes de mémoire : ORA-04031 (mémoire insuffisante)

Sécurité des bases de données

Authentification et autorisation
Méthodes d'authentification : Mot de passe, OS, PKI, Kerberos

Gestion des utilisateurs : Création, modification, suppression


Privilèges système et objets : Administration vs accès aux données

Rôles : Regroupement de privilèges

Contrôle d'accès
Virtual Private Database (VPD) : Sécurité au niveau des lignes

Oracle Label Security : Classification des données

Transparent Data Encryption (TDE) : Chiffrement des données


Data Redaction : Masquage dynamique des données sensibles
Audit et conformité

Audit standard : Suivi des actions utilisateur


Audit unifié : Audit consolidé

Audit de valeur fine : Détection des modifications de données


Journaux d'audit : Stockage et gestion

Meilleures pratiques de sécurité


Principe du moindre privilège

Rotation des mots de passe


Patchs de sécurité réguliers

Chiffrement des sauvegardes

Fondamentaux de Linux

Architecture Linux
Noyau (Kernel) : Cœur du système d'exploitation

Shell : Interface de commande (Bash, Ksh, Zsh)


Système de fichiers : Hiérarchie, types (ext4, xfs)

Processus et services : Gestion, surveillance

Administration de base
Gestion des utilisateurs :
Création : useradd , adduser

Modification : usermod

Suppression : userdel

Changement de mot de passe : passwd

Gestion des groupes :


Création : groupadd

Modification : groupmod

Suppression : groupdel

Gestion des fichiers :


Navigation : cd , ls , pwd

Manipulation : cp , mv , rm , mkdir

Permissions : chmod , chown , chgrp


Commandes essentielles pour DBA Oracle

Gestion système :
top , htop : Surveillance des processus

free : Affichage de la mémoire disponible

df , du : Utilisation de l'espace disque

ps , pgrep : Informations sur les processus

Gestion réseau :
ifconfig , ip : Configuration réseau

netstat , ss : Connexions réseau

ping , traceroute : Diagnostic réseau

nslookup , dig : Requêtes DNS

Gestion des journaux :


tail , head : Affichage des parties de fichiers

grep , find : Recherche dans les fichiers

less , more : Affichage paginé

journalctl : Visualisation des journaux système

Administration système Linux

Gestion des services


systemd : Système d'initialisation moderne
systemctl start/stop/restart/status

systemctl enable/disable

Création d'unités systemd

Processus d'amorçage :
Séquence de démarrage

Niveaux d'exécution / targets


Gestion de GRUB

Gestion des ressources


Configuration matérielle :
CPU : lscpu , paramètres kernel

Mémoire : limites, swap, huge pages

Disques : partitionnement, LVM, RAID


Limites système :
/etc/security/limits.conf : Limites utilisateur

Configuration des paramètres noyau : sysctl

Réglage des paramètres pour Oracle

Stockage et systèmes de fichiers


Gestion des disques :
Partitionnement : fdisk , parted

LVM : pvcreate , vgcreate , lvcreate

Formatage : mkfs

Montage et démontage :
mount , umount

Configuration dans /etc/fstab

Options de montage pour les fichiers Oracle

Types de systèmes de fichiers :


ext4 : Standard pour Linux

xfs : Haute performance


ASM : Système de fichiers Oracle spécialisé

Mise en réseau
Configuration réseau :
Configuration IP statique/dynamique
Tables de routage

Pare-feu : iptables , firewalld

Résolution de noms :
Configuration DNS : /etc/resolv.conf

Fichiers hosts : /etc/hosts

Configuration pour Oracle TNS

Shell scripting

Bases du scripting Bash


Structure d'un script :
Shebang ( #!/bin/bash )

Variables et environnement
Commentaires et documentation

Variables et paramètres :
Définition et utilisation
Variables d'environnement

Paramètres positionnels ($1, $2...)

Opérateurs et expressions :
Arithmétiques : + , - , * , /

Comparaison : -eq , -ne , -gt , -lt

Logiques : && , || , !

Structures de contrôle
Conditionnelles :

bash

if [ condition ]; then
commandes
elif [ condition ]; then
commandes
else
commandes
fi

Boucles :

bash

# Boucle for
for var in liste; do
commandes
done

# Boucle while
while [ condition ]; do
commandes
done

Case :
bash

case $var in
motif1)
commandes
;;
motif2)
commandes
;;
*)
commandes par défaut
;;
esac

Scripts pour l'administration Oracle


Surveillance des bases de données :
Vérification de l'espace disque
Surveillance des processus Oracle

Alerte sur les erreurs dans les journaux

Automatisation des sauvegardes :


Scripts RMAN

Validation des sauvegardes


Rotation des fichiers de sauvegarde

Exemples de scripts utiles :

bash

#!/bin/bash
# Script de vérification d'espace tablespace

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=ORCL

$ORACLE_HOME/bin/sqlplus -s / as sysdba << EOF


SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT tablespace_name || ' est à ' ||
ROUND((used_space*100)/tablespace_size,2) || '% plein.'
FROM dba_tablespace_usage_metrics
WHERE ROUND((used_space*100)/tablespace_size,2) > 80;
EXIT;
EOF

Questions fréquentes en entretien


Questions techniques Oracle DBA
1. Comment démarrer une base de données en mode restreint ?

sql

STARTUP RESTRICT;
-- ou
ALTER SYSTEM ENABLE RESTRICTED SESSION;

2. Quelles sont les étapes pour migrer une base de données vers une nouvelle version ?
Évaluation de compatibilité

Sauvegarde complète
Installation du nouveau logiciel

Exécution de Pre-Upgrade Information Tool


Mise à niveau (DBUA ou manuelle)

Post-installation et tests

3. Comment résoudre un problème d'espace dans un tablespace ?


Identifier le tablespace avec DBA_TABLESPACE_USAGE_METRICS

Ajouter un datafile : ALTER TABLESPACE ts_name ADD DATAFILE...

Redimensionner un datafile existant : ALTER DATABASE DATAFILE... RESIZE...

Activer l'autoextend : ALTER DATABASE DATAFILE... AUTOEXTEND ON...

4. Expliquez la différence entre une sauvegarde à chaud et à froid


Sauvegarde à froid : Base arrêtée, cohérente, simple mais indisponibilité

Sauvegarde à chaud : Base en fonctionnement, mode ARCHIVELOG nécessaire, pas d'interruption


de service

Questions techniques Linux


1. Comment vérifier l'utilisation CPU et mémoire en ligne de commande ?

bash

# CPU et mémoire en temps réel


top

# Utilisation mémoire détaillée


free -h

# Statistiques CPU
mpstat

2. Comment configurer les paramètres kernel pour Oracle ?


Éditer /etc/sysctl.conf pour les paramètres comme :

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096

Appliquer avec sysctl -p

3. Comment diagnostiquer un problème de connectivité réseau ?

bash

# Vérifier la résolution DNS


nslookup hostname

# Tester la connectivité
ping hostname

# Vérifier l'ouverture des ports


netstat -an | grep 1521

# Tester la connexion au listener Oracle


tnsping service_name

4. Comment automatiser une tâche récurrente sous Linux ?


Utilisation de cron :

bash

# Éditer le crontab
crontab -e

# Format : minute heure jour mois jour_semaine commande


# Exemple : tous les jours à 2h du matin
0 2 * * * /path/to/backup_script.sh

Questions sur la résolution de problèmes


1. Comment diagnostiquer une base de données lente ?
Vérifier les wait events avec V$SYSTEM_EVENT

Analyser les rapports AWR/ADDM


Identifier les sessions consommatrices avec V$SESSION

Examiner les plans d'exécution des requêtes lentes

2. Comment récupérer une base de données après une panne de serveur ?


Vérifier l'état du matériel

Restaurer le système d'exploitation si nécessaire


Restaurer les fichiers Oracle (contrôle, données, redo logs)
Utiliser RMAN pour la restauration et la récupération

Valider l'intégrité de la base

3. Comment gérer un problème de verrouillage de table ?

sql

-- Identifier les verrous et sessions


SELECT l.session_id, s.serial#, s.username, s.machine, s.program,
l.lock_type, l.mode_held, l.mode_requested, o.object_name
FROM v$lock l, v$session s, dba_objects o
WHERE l.session_id = s.sid
AND l.lock_id1 = o.object_id;

-- Terminer une session bloquante


ALTER SYSTEM KILL SESSION 'sid,serial#';

Ressources complémentaires

Documentation officielle
Oracle Database Documentation

Oracle Linux Documentation


Oracle Support

Livres recommandés
"Oracle Database 19c Administration Workshop" - Oracle
"Expert Oracle Database Architecture" - Thomas Kyte
"RMAN Recipes for Oracle Database" - Darl Kuhn

"Linux Administration: A Beginner's Guide" - Wale Soyinka

Certification Oracle
Oracle Database Administration (OCA, OCP, OCM)

Parcours de certification et préparation


Examens pratiques et ressources d'étude

Communautés et forums
Oracle Community

Stack Overflow
DBA Stack Exchange
Oracle-L Mailing List

Vous aimerez peut-être aussi