Administration Oracle 12c: Vahatriniaina - 2020
Administration Oracle 12c: Vahatriniaina - 2020
Administration Oracle 12c: Vahatriniaina - 2020
Vahatriniaina - 2020
Objectifs
Architecture d’Oracle
Installation en environnement Windows
Configuration d’Oracle Net
Arrêt et démarrage d’une instance Oracle
Création d’une nouvelle base des données
Gestion de la mémoire
Gestion du stockage
Gestion de la sécurité
Sauvegardes et restaurations
Architecture d’Oracle 12c
VERSION
Enterprise Edition
Standard Edition
Personal Edition
Architecture commune pour les 03 éditions
Architecture d’Oracle 12c
STANDARD EDITION
Toutes les fonctionnalités de base
Limité à 04 processeurs
Standard Edition One : 02 processeurs
PERSONAL EDITION
Utilisation Personnelle
Mono licence
Destinée au développeur
Même fonctionnalité que l’Enterprise Edition
Architecture d’Oracle 12c
ENTERPRISE EDITION
Oracle Real application clusters (RAC)
Oracle partitioning
Oracle advanced security
Oracle Diagnostics Pack , Oracle tuning Pack
Oracle OLAP et Oracle Advanced Analytics
Oracle Real Application testing
Oracle Advanced Compression
Oracle Multitenant
Architecture d’Oracle 12c
INSTANCE
Mémoire partagée
Ensemble de processus
ORACLE_SID
BASE DES DONNÉES
Ensemble des fichiers physiques
Ouverte par une seule instance
Architecture d’Oracle 12c
Architecture d’Oracle 12c
ORACLE BASE
Répertoire d’installation des produits Oracle
ORACLE_BASE
ORACLE HOME
Répertoire d’installation d’un produit Oracle
Peut être plusieurs dans une même OS
ORACLE_HOME
Architecture d’Oracle 12c
INSTANCE
Zone de mémoire partagé System Global Area (SGA)
Ensemble des processus d’arrière-plan (Background process)
Ensemble des processus serveur (Server process)
Architecture d’Oracle 12c
INSTANCE
Zone de mémoire partagé System Global Area (SGA)
Partagé par les différents processus de l’instance
Allouée au démarrage et libérée lors de l’arrêt
Dimensionnée par un ensemble de paramètres définis dans le fichier de paramètres
Depuis la version 9, redimensionnable à chaud
Depuis la version 10, certaines structures de la SGA peuvent être gérées automatiquement
Plus la SGA et grande, meilleurs sont les performances
Architecture d’Oracle 12c
INSTANCE
Architecture d’Oracle 12c
SHARED POOL
Library cache :
Informations sur les odres SQL et PL/SQL
Texte, plan d’exécution
Dictionary cache
Description des tables
Droits des utilisateurs
…
Result cache
Seulement en Enterprise Edition
Stocke le résultat de requêtes SQL ou PL/SQL
Architecture d’Oracle 12c
SHARED POOL
Dimensionné par le paramètre SHARED_POOL_SIZE
Repartition entre LibraryCache, dictionaryCache et ResultCache assuré par Oracle
Architecture d’Oracle 12c
Les blocs sont lus en mémoire par les processus serveur et écrits dans les fichiers de données par le ou les processus
d’arrière-plan DBWn.
Toute modification (INSERT, UPDATE, DELETE) d’un bloc s’effectue en mémoire et l’écriture sur disque est différée.
Le Database Buffer Cache est un cache de données qui joue le même rôle que la Shared Pool mais pour les données.
Les données de la base de données ne sont accessibles, en lecture ou en mise à jour, qu’après avoir été chargées dans
le Database Buffer Cache.
Dans la pratique, le Database Buffer Cache ayant une taille finie, Oracle utilise un algorithme LRU pour gérer le
cache : en cas de manque de place, Oracle supprime du cache les données utilisées le moins récemment.
Architecture d’Oracle 12c
DBWn
Lancé au démarrage de l’instance.
Arrêté lors de l’arrêt de l’instance.
chargés d’écrire les blocs modifiés du Database Buffer Cache dans les fichiers de données
écritures multiblocs, en différé par rapport aux modifications en mémoire.
CKPT
A pour rôle d’enregistrer le point de reprise dans l’entête des fichiers de données et dans le fichier de contrôle
Architecture d’Oracle 12c
SMON
Récupération de l’instance après un arrêt anormal
Roll forward pour appliquer aux fichiers de données les modifications non enregistrées des transactions validées
Roll back pour enlever des fichiers de données les modifications enregistrées des transactions non validées
Architecture d’Oracle 12c
PMON
Chargé u nettoyage lors du plantage d’un processus utilisateur :
Annulation de la transaction,
Libération des verrous et ressources
Architecture d’Oracle 12c
ARCn
Archivage des fichiers de journalisations pleins
Architecture d’Oracle 12c
Processus Serveur
Chargés de traiter les requêtes des utilisateurs de charger les données nécessaires dans le « database buffer cache »
Communique (localement ou à travers le réseau) avec un processus utilisateur
Un processus serveur dédié pour chaque utilisateur
Architecture d’Oracle 12c
Vue d’ensemble
Architecture d’Oracle 12c
ASMM activé
Database buffer cache 64mo pour les blocs de 16Ko
Database buffer cache minimum 256Mo
Taille SGA : 800mo
Architecture d’Oracle 12c
Gestion automatique
Depuis la version 10
Processus arrière-plan chargés de collecter des statistiques
A chaque 60mn, enregistrement dans AWR (Automatic Workload Repository) => tables et vues
Recommandations disponibles sur l’optimisation des requêtes, l’indexation, gestion de la mémoire
Architecture d’Oracle 12c
Dictionnaire de données
Ensemble de tables et de vues qui donnent des informations sur le contenu d’une base de données :
Structures de stockage
les utilisateurs et leurs droits
Les objets (tables, bues, index, PL/SQL, …)
Appartient à SYS
Stocké dans le tablespace SYSTEM
Mis à jour par Oracle (CREATE, ALTER, DROP)
Chargé en mémoire (Dictionary Cache de Shared Pool)
Architecture d’Oracle 12c
Dictionnaire de données
Vues statiques
USER_% : informations sur les objets qui appartiennent à l’utilisateur
ALL_% : informations sur les objets auxquels l’utilisateur a accès
DBA_% : informations sur tous les objets de la base des données
DICTIONARY pour retrouver le nom des vues
Vues dynamiques de performance (v$)
SYSDBA
V$INSTANCE
V$DATABASE
V$SGA et V$SGA INFOR
V$PARAMETER
Oracle 12c
INSTALLATION
Pré-installation
Installation
Post-installation
Oracle 12c
Après installation
Base de données
Oracle net
Enterprise Manager Database Control
Oracle 12c
Post installation
patch
Recompilation PL/SQL invalide
Configuration modules (oracle net, …)
Produits supplémentaires
Configuration arrêt et démarrage automatique des composants Oracle
Oracle 12c
Oracle Home
Sous-répertoire d’Oracle Base
contient le logiciel
Possible plusieurs Oracle Home dans une même Oracle Base
Identifié par un nom (ex OraDB12HomeN)
Oracle 12c
Oracle Base
Admin : fichier d’administration
Audit : fichier d’audit
Cfgtoollogs : fichiers journaux des assistants de configuration
Checkpoints utilisé pendant l’installation (vidé après)
Diag : référentiel de diagnostic automatique
Fast_recovery_area : zone de récupération rapide
Oradata : fichier de base de données
Oracle 12c
Processus de Démarrage
Instance démarrée (NOMOUNT) :
Fichier de paramètre est lu
SGA allouée et processus d’arrière-plan démarrés
Il n’y a pas de base de données associée
Vues disponibles : V$INSTANCE, V$SGA, V$OPTION, V$PARAMETER, V$VERSION, etc.
Principalement utilisé lors de la création d’une nouvelle base de données
Oracle 12c
Processus de Démarrage
Base montée (MOUNT)
Ouvrir les fichiers de contrôles à partir de l’information dans le fichier de paramètre
Nom des fichiers de données et redo log (pas les ouvrir, né vérifie pas leurs présence)
La base de données est associée à l’instance (V$DATABASE disponible)
N’est pas ouverte pour une utilisation normale (SYSDBA, SYSOPER, SYSBACKUP)
Renommer ou déplacer un fichier des données ou redo log, activer (ou désactiver) archivelog, effectuer une récupération de la
base de données
Oracle 12c
Processus de Démarrage
Base ouverte (OPEN)
L’instance ouvre les fichiers de données et les redo log
Vérifie la cohérence des données
Si fichiers introuvable, base de données non ouverte
Si dernier arrêt n’est pas propre => lancement de SMON
Processus d’arrêt
Oracle 12c
De données : %ORACLE_BASE%\oradata
Oracle 12c
MEMORY_MAX_TARGET :
taille maximum de la mémoire utilisable par l’instance
Si pas spécifié, égal à la valeur de MEMORY_TARGET
MEMORY_TARGET :
taille de la mémoire allouée à l’instance
Oracle 12c
OPEN_CURSORS :
nombre maximum de curseurs qui peuvent être ouverts simultanément par une session.
Valeur par défaut : 50
ORA-01000: nombre maximum de curseurs ouverts dépassé => augmenter sa valeur
PROCESSES
Nombre maximum de processus qui peuvent se connecter simultanément à l’instance
un pour chaque session utilisateur simultanée
Oracle 12c
REMOTE_LOGIN_PASSWORDFILE
NONE : pas de mot de passe, seul l’authentification par le système d’exploitation est disponible
EXCLUSIVE : utilisation d’un fichier de mots de passe dédié à la base de données.
SHARED : utilisation d’un fichier de mots de passe partagé entre plusieurs bases de données.
Oracle 12c
EM Express
Processus d’écoute
EXEC dbms_xdb_config.sethttpsport(5500);
SELECT dbms_xdb_config.gethttpsport() FROM dual;
Oracle 12c
ORACLE NET
Permet à des produits Oracle situés sur des machines différentes de communiquer
Rendre le réseau transparent
Nom de service réseau (alias)
Oracle 12c
ORACLE NET
LISTENER
Processus d’écoute
listener.ora (%ORACLE_HOME%\network\admin)
Oracle 12c
ORACLE NET
Service de base de données
Liste des services (SID) pour lesquels le Listener accepte les demandes de connexions
Peut comporter plusieurs entrées pour un Listener
ORACLE NET
Résolution de nom (client)
sqlnet.ora
tnsnames.ora
Oracle 12c
GESTION INSTANCE
Paramètres d’initialisation
Dynamiques
Modifiable par SQL
Au niveau session et/ou système (toutes les sessions)
Système : immédiate ou différé
Statiques
Redémarrage nécessaire
V$PARAMETER :
ISSES_MODIFIABLE : true si modifiable au niveau session
ISSYS_MODIFIABLE :
False si non modifiable au niveau système
Deferred : différé
Immediate : immediatement
Oracle 12c
GESTION INSTANCE
ALTER SYSTEM / ALTER SESSION
DEFFERED :
Futures sessions
(si SCOPE=MEMORY)
Si ISSYS_MODIFIABLE=DEFERRED => obligatoire
SCOPE
MEMORY : mémoire seulement (immédiatement) pour les paramètres dynamiques
SPFILE : fichier de paramètre serveur seulement (paramètre statiques)
BOTH : les deux (dynamiques)
Oracle 12c
GESTION INSTANCE
Paramètres d’initialisation
ALTER SYSTEM SET PROCESSES = 400 COMMENT = ’Test Modif’ SCOPE = SPFILE;
ALTER SYSTEM SET OPEN_CURSORS = 400 SCOPE = BOTH;
Suppression d’un paramètre
ALTER SYSTEM RESET paramètre [ SCOPE = SPFILE ] ;
Dictionnaires des données
V$SYSTEM_PARAMETER : valeur actuelle des paramètres dans l’instance
V$SYSTEM_PARAMETER2 : affichage sur plusieurs lignes
V$PARAMETER et V$PARAMETER2 : session courante
V$SPPARAMETER : contenu actuel du fichier de paramètres serveur actif
Oracle 12c
GESTION INSTANCE
V$SYSTEM_PARAMETER, V$SYSTEM_PARAMETER2, V$PARAMETER et V$PARAMETER2
Oracle 12c
GESTION INSTANCE
V$SPPARAMETER
Oracle 12c
GESTION INSTANCE
>show parameter process
>select name, isses_modifiable, issys_modifiable from v$parameter where name='processes';
>alter session set processes='200'; (ERROR)
>alter system set processes='200' scope = MEMORY; (ERROR)
>alter system set processes='200' scope =SPFILE;
>show parameter process (sans changement)
>shutdown immediate
>startup
>show parameter process (valeur modifiée)
Oracle 12c
GESTION INSTANCE
Exemple
SELECT p.name, p.display_value actuel, sp.display_value spfile FROM v$parameter p, v$spparameter sp
WHERE p.name = sp.name AND p.name = ’processes’ /
SQLPLUS : SHOW PARAMETERS [chaîne] et SHOW SPPARAMETERS [chaîne]
SHOW PARAMETERS memory
Fichier de paramètre serveur endommagé ou perdu
Si l’instance est démarrée, le recréer à partir des valeurs des paramètres actuellement en mémoire ( CREATE SPFILE FROM
MEMORY).
Si un fichier de paramètres texte valide est disponible, le recréer à partir de ce fichier texte ( CREATE SPFILE FROM
PFILE).
Le restaurer à partir d’une sauvegarde (voir le chapitre Sauvegarde et récupération).
Oracle 12c
GESTION INSTANCE
Valeur erronée qui empêche le démarrage
Si l’instance démarre, modifier le paramètre erroné ou le supprimer avec l’ordre SQL ALTER SYSTEM (SET ou RESET).
Si l’instance ne démarre pas, créer un fichier de paramètres texte à partir du fichier de paramètres serveur (CREATE PFILE
FROM SPFILE)
Gestion dynamique de la mémoire
Depuis 9i, SGA et PGA sont dynamiques (augmenté ou diminué)
10g : SGA peut être géré automatiquement par Oracle
11g : la totalité de la mémoire
Oracle 12c
GESTION INSTANCE
Paramètres modifiable par ALTER SYSTEM
MEMORY_TARGET
SGA_TARGET
DB_CACHE_SIZE et éventuellement les différents paramètres DB_nK_CACHE_SIZE (n valant 2, 4, 8, 16 ou 32)
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE
STREAMS_POOL_SIZE
RESULT_CACHE_MAX_SIZE
PGA_AGGREGATE_TARGET
PGA_AGGREGATE_LIMIT
Oracle 12c
Il ne faut pas dupliquer le fichier si la base est ouverte ou après un shutdown abort
Oracle 12c
V$ARCHIVE_LOG
Oracle 12c
V$ARCHIVE_DEST
Oracle 12c
TABLESPACES
unité logique de stockage composée d’un ou plusieurs fichiers physiques
le stockage est organisé en segments, composés d’une ou plusieurs extensions (extent)
les informations sur les extensions libres et allouées sont stockées dans des tables du dictionnaire de données ou dans l’entête
du fichier des données
BIGFILE : un seul fichier de données (depuis 10g) : <32To
SMALLFILE : <32Go
SYSTEM : dictionnaires des données
SYSAUX : composant Oracle
UNDO Tablespace
TEMPORARY Tablespace
Select tablespace_name from Dba_tablespaces;
Select tablespace_name, file_name from dba_data_files;
Oracle 12c
TABLESPACES
Oracle 12c
TABLESPACES
ONLINE ou OFFLINE
READ WRITE ou READ ONLY
Autant de tablespace que possible
BIGFILE
SELECT property_value FROM database_properties WHERE property_name = ’DEFAULT_TBS_TYPE’
SELECT property_value FROM database_properties WHERE property_name =
’DEFAULT_PERMANENT_TABLESPACE’ ;
Oracle 12c
TABLESPACES
Oracle 12c
TABLESPACES
SELECT tablespace_name, block_size, bigfile, status FROM DBA_TABLESPACES;
CREATE TABLE TEST(int number, nom varchar(20)) TABLESPACE deftbs ;
SELECT TABLESPACE_NAME FROM DBA_TABLES WHERE TABLE_NAME='TEST’;
DESC DBA_SEGMENTS;
SELECT SEGMENT_NAME, TABLESPACE_NAME FROM DBA_SEGMENTS WHERE SEGMENT_NAME =
'TEST’;
DESC V$TABLESPACE;
Select name,bigfile FROM v$TABLESPACE;
DESC DBA_DATA_FILES;
SELECT TABLESPACE_NAME,FILE_NAME, BYTES/1024/1024 as MO, STATUS FROM DBA_DATA_FILES;
Oracle 12c
TABLESPACES
Oracle 12c
TABLESPACES
CREATE TABLESPACE app_data_01 DATAFILE ‘c:/app/oracle/oradata/dbtest/app_data_01.dbf’ SIZE 64M
autoextend ON NEXT 24M;
SELECT TABLESPACE_NAME,FILE_NAME, BYTES/1024/1024 as MO, STATUS FROM
DBA_DATA_FILES;
CREATE TABLESPACE app_idx_01 DATAFILE ‘c:/app/oracle/oradata/dbtest/app_idx_01.dbf’ SIZE 64M
autoextend ON NEXT 24M MAXSIZE 512M, ‘c:/app/oracle/oradata/dbtest/app_idx_02.dbf’ SIZE 64M ;
Oracle 12c
TABLESPACES
Ajouter un nouveau DATAFILE
ALTER TABLESPACE data ADD DATAFILE ’c:\app\oradata\dbtest\data02.dbf’ SIZE 100M AUTOEXTEND ON NEXT
100M MAXSIZE 500M;
Modifier la taille d’un fichier des données
ALTER DATABASE DATAFILE ’nom_complet’ | numéro_fichier [,...] RESIZE valeur [K|M|G|T];
ALTER TABLESPACE nom_tablespace_bigfile RESIZE valeur [K|M|G|T]; (BIGFILE)
Modifier l’extension automatique d’un fichier de données
Désactivation de la clause AUTOEXTEND :
TABLESPACES
ALTER TABLESPACE nom ONLINE | OFFLINE;
ALTER TABLESPACE nom DROP DATAFILE ’nom_complet’ | numéro_fichier;
DROP TABLESPACE nom [ INCLUDING CONTENTS [ AND DATAFILES ] [ CASCADE
CONSTRAINTS ] ];
ALTER TABLESPACE nom { READ ONLY | READ WRITE } ;
ALTER TABLESPACE nom LOGGING | NOLOGGING ;
ALTER TABLESPACE nom [NO] FORCE LOGGING ;
ALTER TABLESPACE nom FLASHBACK ON | OFF ;
Oracle 12c
TABLESPACES TEMPORAIRE
Lors d’un tri : utilisation du cache de PGA
SELECT ... ORDER BY ;
SELECT ... GROUP BY ;
SELECT DISTINCT ... ;
requêtes ensemblistes (UNION, INTERSECT, MINUS) ;
CREATE INDEX ;
calcul des statistiques ;
jointures par tri-fusion (sort merge join).
Si mémoire insuffisante => sur disque (segment temporaire)
Oracle 12c
TABLESPACES TEMPORAIRE
Oracle 12c
TABLESPACES TEMPORAIRE
CREATE TEMPORARY TABLESPACE tempo TEMPFILE 'c:\app\oracle\oradata\dbtest\tempo01.dbf' SIZE
100M AUTOEXTEND ON NEXT 10M MAXSIZE 1G ;
Tablespace temporaire par défaut :
Spécifié lors de la création de la base
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nom ;
SELECT property_value FROM database_properties WHERE property_name =
’DEFAULT_TEMP_TABLESPACE’ ;
Oracle 12c
TABLESPACES TEMPORAIRE
Ajout d’un fichier de données temporaire à un tablespace temporaire géré localement :
ALTER TABLESPACE nom_tablespace ADD TEMPFILE spécification_fichier ;
supprimer le fichier de données temporaire
ALTER DATABASE TEMPFILE ’c:\app/oracle/oradata\dbtest\temp01.dbf’ DROP INCLUDING DATAFILES;
Oracle 12c
TABLESPACES recommandations
Utiliser tablespace géré localement
System
Tablespace temporaire
Tablespace d’annulation
Tablespace des tables et index
définir un tablespace par défaut lors de la création de la base
Définir un tablespace d’annulation lors de la création de la base
Choisir le mode d’autoextension
Oracle 12c
Gestion sécurité
Définir les utilisateurs qui peuvent se connecter à la base
Définir dans quel(s) tablespace(s) un utilisateur peut créer des objets
limiter l’utilisation des ressources système ;
imposer une politique de gestion de mots de passe (expiration périodique, non- réutilisation avant un certain temps,
etc.) ;
définir les droits de chaque utilisateur à l’intérieur de la base de données.
PRIVILEGES
Un droit d’exécuter un ordre SQL ( privilège système );
Un droit d’accéder à un objet d’un autre utilisateur (privilège objet).
ROLES
Groupement de privilèges
Oracle 12c
Créer un utilisateur
Oracle 12c
Modifier un utilisateur
Oracle 12c
MODIFIER UN UTILISATEUR
Modification du mot de passe d’un utilisateur :
ALTER USER toto IDENTIFIED BY toto PASSWORD EXPIRE;
Modification du tablespace par défaut et attribution de quotas :
ALTER USER toto DEFAULT TABLESPACE test QUOTA UNLIMITED ON test QUOTA 10M ON data;
Verrouillage d’un compte :
ALTER USER toto ACCOUNT LOCK;
Déverrouillage d’un compte :
ALTER USER toto ACCOUNT UNLOCK;
Supprimer un utilisateur
DROP USER nom [ CASCADE ] ;
Oracle 12c
Utilisateurs
User = schema
Login/motdepasse
Dispose de son propre espace de stockage permanent
Dispose de son propre espace de stockage temporaire
Associé à un profil
Activé ou désactivé
Oracle 12c
PROFIL UTILISATEUR
ensemble nommé de limitations de ressources qui peut être attribué à un utilisateur
temps CPU par session ;
nombre de lectures logiques par session ;
nombre de sessions ouvertes simultanément par un utilisateur ;
temps d’inactivité par session ;
durée totale de la session ;
verrouillage de compte (et durée de verrouillage) au-delà d’un certain nombre d’échecs de tentative de connexion ;
durée de vie des mots de passe (avec éventuellement une période de grâce) ;
non-réutilisation d’un mot de passe avant un certain temps ou avant un certain nombre de changements ;
complexité du mot de passe.
Oracle 12c
PROFIL UTILISATEUR
Oracle 12c
PROFIL UTILISATEUR
DEFAULT :
Attribué par défaut à tous les utilisateurs
ALTER PROFILE default LIMIT SESSIONS_PER_USER 3 IDLE_TIME 30 FAILED_LOGIN_ATTEMPTS 5;
N’affecte qu’à la prochaine connexion
ALTER PROFILE exploitation LIMIT SESSIONS_PER_USER 5 IDLE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS DEFAULT;
Oracle 12c
PROFIL UTILISATEUR
CREATE PROFILE exploitation
LIMIT SESSIONS_PER_USER 3
IDLE_TIME 30
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 180
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME 3 ;
Oracle 12c
PRIVILEGE SYSTEME
Droit d’exécuter un ordre SQL
Chaque ordre SQL a (au minimum) un droit associé
CREATE ANY TABLE : droit de créer une table dans n’importe quel schéma
Faire attention aux droits relatifs à la gestion des utilisateurs et droits (create user, alter user, …)
CREATE SESSION : donne le droit de se connecter
SELECT ANY DICTIONARY : Donne le droit à l’utilisateur d’interroger n’importe quel objet du dictionnaire de
données dans le schéma SYS
Oracle 12c
PRIVILEGE SYSTEME
GRANT permet d’attribuer un droit à un utilisateur
PRIVILEGE OBJET
Droit d’accéder à un objet d’au autre utilisateur
PRIVILEGE OBJET
DBA_TAB_PRIVS : privilèges objet attribués aux utilisateurs (ou aux rôles) sur la totalité de l’objet
DBA_COL_PRIVS : privilèges objet attribués aux utilisateurs (ou aux rôles) sur certaines colonnes de l’objet uniquement ;
TABLE_PRIVILEGE_MAP : liste de tous les privilèges objet.
BONNES PRATIQUES
Limitez l’accès au serveur
Verrouillez les comptes par défaut
Utilisez des mots de passes complexes
Moins de privilèges possibles aux utilisateurs
Définissez vos propres rôles
TRANSACTION
Commence à l’ouverture de la session ou à la fin de la précédente transaction
Un ensemble atomique (ACID)
Se termine toujours par un COMMIT ou ROLLBACK
Une instruction de type LMD (INSERT UPDATE DELETE) est une transaction
Oracle 12c
TRANSACTION
Oracle 12c
ISOLATION
READ UNCOMMITED
Lire des données non encore validées par d’autre transaction
READ COMMITED
Ne lire que les transactions validées
REPEATABLE READ
Lire les données plusieurs fois avec les mêmes valeurs
SERIALIZABLE
Lire seulement les données validées avant la transaction
Oracle 12c
MODIFICATION D’ISOLATION
SET TRANSACTION ISOLATION LEVEL <niveau d’isolation>;
ALTER SESSION SET ISOLATION LEVEL = <niveau d’isolation>;
Oracle 12c
VERROUILLAGE
Oracle 12c
VERROUILLAGE
Oracle 12c
VERROUILLAGE
DESC V$LOCKED_OBJECT
SELECT XIDSUN,OBJECT_ID,SESSION_ID,ORACLE_USERNAME,LOCKED_MODE FROM
V$LOCKED_OBJECT;
SELECT OBJECT_ID,OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_ID=11111;
SELECT SID,SERIAL#, USERNAME FROM V$SESSION;
ALTER SYSTEM KILL SESSION ‘22,23435’;
SELECT WAITING_SESSION,HOLDING_SESSION, LOCK_TYPE FROM DBA_WAITERS;
Oracle 12c
ACTIVATION
AUDIT_TRAIL { none | os | db | db,extended | xml | xml,extended }
AUDIT_SYS_OPERATIONS
True : active la vérification des opérations émises par les utilisateurs sysdba et sysoper
Oracle 12c
AUDIT
AUDIT_TRAIL { none | os | db | db,extended | xml | xml,extended }
AUDIT_SYS_OPERATIONS
True : active la vérification des opérations émises par les utilisateurs sysdba et sysoper
Oracle 12c
AUDIT_TRAIL
none : audit désactivé
os : répertoire spécifié dans le paramètre AUDIT_FILE_DEST
db : dans la table SYS.AUD$
db,extended dans la table SYS.AUD$ + colonnes SQLBIND et SQLTEXT
xml : format xml (répertoire ADUMP)
xml, extended : xml + colonnes SQLBIND et SQLTEXT
Oracle 12c
ACTIVATION AUDIT
ARRET DE L’AUDIT
NOAUDIT ALL;
ALTER SYSTEM SET AUDIT_TRAIL=none SCOPE=SPFILE;
TRUNCATE TABLE SYS.AUD$;
Oracle 12c
Permet d’exporter
Une base complète (export FULL)
Un schéma ou plusieurs schémas
Une ou plusieurs tables
Un ou plusieurs tablespaces
Oracle 12c
SAUVEGARDE ET RECUPERATION
Protection des fichiers sensibles de la base
Fichiers de contrôle
multipléxage
fichiers de journalisation
multiplexage
Stratégie de sauvegarde/restauration
Adaptée aux contraintes de l’entreprise
Est-il acceptable de perdre des données ?
Est-il possible d’arrêter périodiquement la base?
Est-il possible de réaliser une sauvegarde complète de la base pendant l’arrêt ?
Les données sont-elles mise à jour quotidiennement ?
Testée et documentée
Oracle 12c
SAUVEGARDE ET RECUPERATION
Sauvegarde cohérent :
pendant que la base est arrêtée (après un arrêt propre)
Mode : noarchivelog
Sauvegarde incohérente :
base ouverte
Mode : Archivelog
Sauvegarde complète : la totalité de la base
Sauvegarde partielle : une partie de la base des données
Sauvegarde incrémentale : ne contient que les modifications modifiés depuis la dernière sauvegarde
Oracle 12c
SAUVEGARDE ET RECUPERATION
Oracle 12c
STRATEGIE DE SAUVEGARDE
Réaliser des sauvegardes fréquentes (tous les jours au minimum)
Conserver plusieurs cycles de sauvegarde
Si possible, sauvegarder complète tous les jours, sinon sauvegarde incrémentale
Oracle 12c
RMAN
Outil en ligne de commande
Permet de réaliser des sauvegardes et des récupérations
Utilise un « référentiel » pour le stockage des informations sur sa configuration, les fichiers sauvegardés, …
Référentiel stocké dans le fichier de contrôle
Permet de sauvegarder :
Fichiers des données
Fichiers de contrôle
Fichier de journalisations archivés
Fichier de paramètre serveur
Utilise la zone de récupération rapide : DB_RECOVERY_FILE_DEST et DB_RECOVERY_FILE_DEST_SIZE
Oracle 12c
rman sys/password
Chaque base de données possède un identifiant DBID
Show all;
Configurer la politique de conservation
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS ;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2 ;
Sauvegarde automatique du fichier de contrôle
CONFIGURE CONTROLFILE AUTOBACKUP ON ;
Commande VALIDATE
Database
Tablespace
Backupset
…
Oracle 12c
Commande BACKUP
RESTAURATION
RESTORE : restaurer les fichiers à partir des sauvegardes
RECOVER : procéder à récupération complète (ou incomplète)
Oracle 12c
SAUVEGARDE INCREMENTALE
Ne sauvegarder que les blocs qui ont été modifiés depuis la dernière sauvegarde
Réduire la taille des sauvegardes (surtout pour les bases à faible activité de mise à jour)
Exemple :
BACKUP INCREMENTAL LEVEL 0 DATABASE TAG=’dbinc0’ ;
BACKUP INCREMENTAL LEVEL 1 DATABASE TAG=’dbinc1’ ;
Niveau 0 = sauvegarde complète
Différentielle de Niveau 1 : tous les blocs modifiés depuis une sauvegarde incrémentale de niveau 0 ou 1
Cumulative de niveau 1 : tous les blocs modifiés depuis la dernière sauvegarde incrémentale de niveau 0
Rapidité de la récupération mais nécessite plus d’espace
Activer la trace des blocs modifiés :
RMAN> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE ’c:\oradata\dbtest\
block_change_tracking.trc’;
SELECT * FROM v$block_change_tracking;
Oracle 12c
SAUVEGARDE INCREMENTALE
Oracle 12c
SAUVEGARDE INCREMENTALE