Manuel TP Admin Bases DN Oracle LP

Vous aimerez peut-être aussi

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 34

Filière (LP) : Génie Informatique /S6

Département : Génie Informatique

Manuel de TP :
Administration de Bases de Données sous
Oracle

Préparé par :

Idriss CHANA
Enseignant chercheur au Département GI
EST-UMI Meknès
i.chana@umi.ac.ma

Au Profit des Etudiants de La Première Année de la filière LP


DSIC inscrits en semestre S6

Années Universitaires : 2018/2019 à 2023/2024


TP1: ADMINISTRATION BASE DE DONNÉES ORACLE LP DSIC

- Installation client/serveur oracle 11g R2 PAR MR :


I.CHANA
- configuration de Listener et tnsname

- Création d’un compte et établissement des connexions des


clients vers le serveur

- Gestion de processus d’écoute lsnrctl

Introduction : Dans ce TP nous allons procéder à l’installation d’oracle Client/serveur et puis nous
allons configurer de fichier de résolution du non du service tnnsname.ora coté client et du fichier de
résolution de processus d’écoute listener.ora à l’aide d’Oracle Net manager, nous allons aussi
manipuler la gestion des processus d’écoute par la commande lsnrctl

NB : durant ce TP exécuter les commandes dos (CMD) avec l’option « en tant qu’administrateur

Préparation de l’environnement

Avant l’installation, réaliser un réseau local dans la salle à l’aide de retour, puis configurer vos
machines en attribuant à chacune une adresse IP, choisir une machine comme serveur

I- Installation client/serveur oracle 11g R2


Suivre le tutoriel joint à ce TP pour l’installation d’oracle Client/serveur et la configuration des du
fichier de résolution de processus d’écoute listener.ora coté serveur et de fichier de résolution du
non du service tnnsname.ora coté clients à l’aide d’Oracle Net manager

II- Connexion et gestion de processus d’écoutes


III-1 Connexion
A- Coté serveur :
- Créer l’utilisateur lpdsic avec le mot de passe lpdsic
- Créer une table NOS_MONS ( num_etudiant, nom ,prenom)
- Afficher le SID de l’instance active.
B- Coté clients :
- Pour configurer le tnsname.ora a fin de se connecter au serveur qu’il sont les information
requise.
- En se basant sur ces informations, configurer le tnsname.ora avec le nom de résolution TP1
pour se connecter à l’instance active de serveur.
- Se connecter au serveur Base de données par le login lpdsci/lpdsic
o En utilisant le sqlplus (invite DOS)
o En utilisant de sqldevloper
- Chaque étudiant (client) connecté insère son ( num_etudiant, nom ,prenom)
- Faites des select sur la table pour visualiser les insertions de vos collègues
III-2 Gestion de processus d’écoutes :

Pour s’entrainer à la gestion de Listener, je vous invite à suivre les étapes suivantes :
Étape 1 : Coté serveur :
- Dans les commandes dos (CMD) lancer : lsnrctl

Cette commande va vous rediriger vers une invite de gestion de listener par les commandes
suivantes :

lsnrctl status [nom_de_listener] : pour vérifier son état


lsnrctl stop [nom_de_listener] : pour arrêter le listenner
lsnrctl start [nom_de_listener] : pour démarrer le listenner
- Quel est le nom de listener verifier coté serveur ?
- Visualiser son état ! commenter !
- Arrêter le listener!
Étape 2 Coté clients :

- Se connecter au serveur Base de données par le login lpdsci/lpdsic


- Est-ce que la connexion est rétablie ? pourquoi ?
Etape 3 Coté serveur :

- Configurer un autre listener (du nom est LIST2) à l’aide de l’assistance de configuration
oracle net ou à l’aide de Net manager d’oracle
- À l’aide de la commande lsnrctl, démarrer le nouveau listener LIST2 !
Étape 4 Coté clients :

- Se connecter au serveur Base de données par le login lpdsci/lpdsic


- Est-ce que la connexion est rétablie ? pourquoi ?
Important : Faite un Compte Rendu qui récapitule ce que vous avez vu et exercé durant cette séance de
TP
TP2: ADMINISTRATION BASE DE DONNÉES ORACLE LP DSIC

- Création de la base de données : PAR MR : I.CHANA

- par DBCA
- et manuellement

Introduction : Dans ce TP nous allons procéder la création d’une instance base de donnée à l’aide de
l’assistant de configuration de base de données (DBCA) et aussi manuellement en utilisant l’order
create database

NB : Un compte rendu est à remettre au professeur à la fin de la séance contenant les réponses aux
questions Q1 à Q21

I- Création de l’instance à l’aide de DBCA :

I.1 lancement de DBCA

On peut lancer l’assistant de configuration de base de données (DBCA) par deux méthodes :

- La première méthode
Aller dans : Démarrer  et aller vers  Oracle-OraDb11home assistant de configuration de
base de données

- La Deuxième methode :
À partir d’une console DOS (commande cmd ) exécuter cmd en tant qu’administrateur
I.2 Après lancement de DBCA :

Après lancement de DBCA on suit les étapes suivantes

La création d'une base passe par 12 étapes

I.2.1 Écran d'accueil

I.2.2 Création de la base


I.2.3 Modèle de base de données
I.2.4 Nom de la base et le SID

I.2.5 Options de management


I.2.6 Information s’identification
13.7 Options de stockage

13.8 Répertoire de destination des fichiers de données


I.2.9 la configuration de la restauration et récupération

I.2.10 Le contenu de la base de données


13.11 Paramètres d'initialisation

13.12 Résultat final


I.2.13 Détail des datafiles ( fichier de données)
I.2.14 Création finale ( Go)

I.2.15 Déroulement de la création


I.3 - Après Création de la base de données et l’instance
1- Q1) Vérifier est ce que le fichier tnsname.ora est modifier ?
2- Sous une invite DOS de Windows (Ou un terminal Unix) suivre les étapes suivantes
Positionner les variable d’environnement par :
set ORACLE_SID=ESTM (export ORACLE_SID=ESTM pour linux)
Sqlplus sys / as sysdba (entrer le mot de passe s’il est demandé)
3- Pour vérifier le nom et le statut de l’instance active
Exécuter la requêtes (consultation de la vue v$instance) Select instance_name, status from
v$instance
4- Vérification de la taille de la SGA :
Q2) lancer la commande Show SGA , commenter ?
Q3) Lancer la commande select * from v$sgainfo ; commenter ?
5- Consulter les vus v$log et v$logfile , v$datafile et v$controlfile , pour localiser les
fichier log les fichiers de données et ceux de contrôle .
6- Sortir de mode sql ( tapper quit)
7- Q2 : Quel était l’état de l‘instance
8- Si l’instance est Ouverte essayer de la fermer par :
sqlplus /nolog
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
9- Consulter la vue v$instance pour vérifier l’état de l’instance,
Q3) Que remarquez-vous et pourquoi ?
10- Maintenant essayons de démarrer la base pas à pas
SQL> startup nomount
11- Consulter la vue v$instance pour vérifier l’état de l’instance,
Q4) c’est quoi le résultat?
12- Q 5) Quel est l’état qui suit l’état (nomount)
13- Q 6) Changer ensuite l’état de la base en cet état
14- Consulter la vue v$instance pour vérifier l’état de l’instance,
Q7) c’est quoi le résultat?
15- Quel est l’état qui suit l’état précédent
16- Changer ensuite l’état de la base en cet état
17- Consulter la vue v$instance pour vérifier l’état de l’instance,
Q8) c’est quoi le résultat?
18- Arrêter l’instance de la base de données
Q9) écrire la commande utilisée
19- Exécuter la commande qui permet de mètre la base en état ouverte directement
Q10) écrire la commande utilisée
20- Consulter la vue v$instance pour vérifier l’état de l’instance,
Q11) c’est quoi le résultat?
21- Sortir de l’invite sql
I.4 Instances et services :
22- Quels sont les services oracle lancés ? indication (Cliquer bouton droit sur pote de
travail  gerer  services et application
23- Q12) Combien des instances base de données tournent sur votre PC, quel est leurs noms
24- Q13) Expliquer comment on fait pour se connecter à l’une d’elles.
I.5 Suppression de la base de données
A l’aide de DBCA supprimer la base que vous venez de créé
Q14) vérifier est ce que le service de cette instance tourne encore sur votre PC
II- Création de la base manuellement
1- Ouvrir le cours chapitre 3 : création d’une base de données manuelle
Q15 – Citer les étapes à suivre pour créer une base de données manuellement de A à Z
2- En suivant ces étapes, créer la base de données BDMAN
3- Une fois la création est terminée, vérifier le statut (l’état) de l’instance
Q16) Comment faire, et quel est son statut (l’état)
4- Consulter la table DATABASE_PROPERTIES pour voir les propriétés de votre base de
données BDMAN ,
Q17) Quelles sont les tablespace temporaire et permanent par défaut
5- Configurer le listener.ora et le tnsname.ora
6- Q18) Qu’il est le mode de démarrage appliqué à une base de données pour pouvoir la
supprimer
Q19) mettez la base de données DBMAN dans ce mode (écrire les commande dans le
Compte rendu)
Q20) Supprimer la base de données BDMAN (écrire la commande dans le Compte
rendu)
 NB : Si la création échoue, visualiser le fichier d'alertes (show parameter user_dump)

 Arrêter l'instance
 Supprimer les fichiers crées pendant la tentative
 Relancer l’ordre create database …… de nouveau
7- Test de différents mode d’ arrêt
- On redémarre la base (soit celle que vous venez de créer ou bien celle de oracle (ORCL-
XE) en mode normal :
- Test avec une session ouverte :
a) Arrêt En mode normal :
SQL> shutdown normal
Les utilisateurs ne sont pas déconnectés, et aucune nouvelle connexion n’est acceptée.
SQL> connect scott/tiger
ERROR:
ORA-01090: shutdown in progress - connection is not permitted
Dès que le dernier utilisateur se déconnecte la base s’éteint.

Test avec une transaction en cours :

On crée une table de test à laquelle on applique un « insert », une transaction est donc
en cours. La transaction n’est pas arrêtée tant que l’utilisateur n’est pas déconnecté.

b) En mode Transactional :

SQL> shutdown Transactional


Les utilisateurs sont déconnectés si aucune transaction n’est en cours.

Test avec une transaction en cours :

La base de données attend que la transaction soit terminer ( COMMIT ou ROLLBACK)


c) En mode Immediate.
Les utilisateurs sont déconnectés. Mais on ne le voit pas au niveau client.

Test avec une transaction en cours :

On ne voit rien niveau client, cependant si on souhaite valider la transaction on obtient l’


erreur suivante :
SQL> commit;
commit
*
ERREUR à la ligne 1 :
ORA-12571: TNS : échec à l'écriture du paquet
Et la base s’arrête proprement
SQL>

shutdown immediate
Base de données fermée.
Base de données démontée.
Instance ORACLE arrétée.
d) En mode Abort
Idem que précédemment
SQL> shutdown abort

Instance ORACLE arrêtée.

Dans ce cas la mise à niveau avec les redo log n’est pas faite contrairement au mode d’arrêt
shutdown immédiate.

Q21- En quelques lignes, citer la différence entre les 4 modes d’arrêt

Q22 – faites un récapitulatif de ce que nous avons vu dans ce TP !


TP3 : ADMINISTRATION DE BASE DE DONNÉES LP : DSIC

Requêtes SQL avancées PAR MR : I.CHANA

- L’utilitaire SQLLOADER
- Transaction et gestion de concurrences.

NB : Rendre un Compte Rendu à la fin de la séance


Partie I – L’outils SQLLOADER

L’Utilitaire SQL Loader permet de charger des données provenant d’autres sources de données dans Oracle.
Par exemple, si vous avez une table dans FoxPro, ACCESS ou SYBASE ou de toute autre base de données de
tiers, vous pouvez utiliser SQL Loader pour charger les données dans les tables Oracle. SQL Loader va
seulement lire les données à partir de fichiers plats. Donc, si vous voulez charger les données à partir de
FoxPro ou de toute autre base de données ou si vous avez un fichier de données à insérer, vous devez d'abord
convertir ces données en format fichier plat dont les champs sont délimités par un caractère ou fichier plat de
format dont les champs on une longueur fixe et connue, puis utilisez SQL Loader pour charger les données
dans Oracle.

Voici la procédure pour charger les données de base de données tierce dans Oracle en utilisant SQL Loader.

A- Convertir les données dans un fichier plat utilisant la commande de base de données tiers .
B- Créer la structure de la table dans la base de données Oracle en utilisant les types de données appropriés
C- Écrire un fichier de contrôle, décrivant comment interpréter le fichier plat et les options pour charger les
données.
D- Exécuter utilitaire SQL Loader spécifiant le fichier de commande dans l'argument de ligne de commande
Pour mieux comprendre ces étapes, prenons le cas suivant.

Supposant que nous avons dans MS ACCES la table ARTISTE, Cette table contient plus de 4000 lignes

Et ayant la structure suivante

ID INTEGER
NOM TEXT(50)

Question : Comment faire pour migrer ces données de MS-ACCES à une table ayant le même nom ARTISTE
dans oracle.

Solution : Utilisation de SQLLOADER en Appliquer la procédure ci-dessus, et ce comme suit:

A- Générer un fichier .csv à partir d’une requête SQL ou importer les données de la tables dans un
fichier .csv dans le champs son délimitées par un caractères ( ‘,’ ou ‘;’ ou bien ‘ |’ ) ; ( ce point est déjà
fait par le prof voir le fichier résultat (data_artist.csv)
B- Se connecter au schéma scott (ou autre) dans ORACLE et créer la table ARTISTE par la commande
suivante :

CREATE TABLE ARTIST


(
ID INT (38) NOT NULL,
NOM VARCHAR (30) NOT NULL
);
C- Préparer le fichier de contrôle donnes_art.ctl qui contient les lignes suivantes

1- LOAD DATA
2- INFILE 'data_artist.csv'
3- BADFILE 'mal_format.bad'
4- TRUNCATE
5- INTO TABLE ARTISTE
6- FIELDS TERMINATED BY ';' TRAILING NULLCOLS
7- (ID, NOM)

Notes: (Ne pas écrire les numéros de ligne, ils sont destinés à des fins d'explication)
1- La déclaration de LOAD DATA est nécessaire au début du fichier de contrôle.
2- L'option INFILE spécifie où le fichier d'entrée est situé
3- Spécification BADFILE est facultative. Si vous le spécifiez, les mauvais données (données mal
formatées) trouvés pendant le chargement seront stockés dans ce fichier.
4- Vous pouvez utiliser n’ importe quelle option de chargement suivante
- TRUNCATE: fait un TRUNCATE à la table puis charge les nouvelles lignes.
- INSERT: Charge seulement si la table cible est vide
- APPEND: les lignes de charge si la table cible est vide ou non.
- REPLACE: supprimer toutes les lignes existantes dans la table avant de la charger.
5- INTO TABLE, est obligatoire en Spécifiant la table cible
6- Cette ligne indique la façon dont les champs sont séparés dans le fichier d'entrée. Dans notre cas,
les champs sont séparés par des " ;" donc nous avons spécifié " ;" comme délimiteur entre des
champs. Vous pouvez remplacer ce caractère par n’importe quel caractère pour délimiter les
champs. Les délimiteurs les plus utilisés sont virgule outre que le point-virgule" ;" on trouve la
virgule "," , les deux points ":", le pipe "|", etc.
- NULLCOLS signifie que si la dernière colonne est nulle alors traiter cette valeur comme nulle,
sinon, SQL LOADER traitera cette ligne comme mauvaise et la dirigera vers le fichier ‘dad’
7- Dans cette ligne spécifiez les colonnes de la table cible.
D- Lancer le SQLLOADER à l’aide de la commande suivante :
- sqlldr userid=scott/tiger control=control_artist.txt rows=10 errors=500
NB : Le fichier control_artist.txt vous sera communiqué par le professeur.
Questions : 1- changer la valeur de rows. Qu’est ce que vous constater ?
2- changer la valeur de errors. Qu’est ce que vous constater ?
Partie II) Transaction et gestion de concurrences.
Une transaction est une suite d’instruction SQL qui se termine par un commit (validation) ou
un Rollback (annulation). Lorsqu’il y a plusieurs transactions concernant les mêmes objets ou
enregistrements on parle des accès concurrentiels qui nécessitent une gestion de verrouillage
pour éviter l’incohérence et éviter aussi le ralentissement des performances et l’inter-
blocage. Le SGBD Oracle offre de plusieurs options de gestion de transaction et de la
concurrence.
1- Les Transactions READ ONLY et READ WRITE
1.1 La transaction READ ONLY
Ci-dessous la caractéristique de cette transaction :
- La transaction devient en lecture seule (pas d’INSERT, UPDATE, DELETE)
- Garantit la cohérence en lecture pour toute la transaction.
- Cette transaction voit seulement les modifications de la base effectuées avant son début
- Utile pour des transactions qui font beaucoup de lectures successives sur des objets
modifiés simultanément par d’autres utilisateurs.
- Pour activer cette option on lance la commande suivante : SET TRANSACTION READ ONLY
1.2 La transaction READ WRITE
Cette transaction est l’option par défaut d’oracle. Ci-dessous ces caractéristiques La transaction
devient en lecture et écriture possibilité d’INSERT, UPDATE, DELETE.
- La lecture dans cette transaction non reproductible car cette transaction voit les autres
modifications effectuées par les autres utilisateurs.
- Utile pour les bases de données ou il y a très peu de transactions.
- Pour activer cette option on lance la commande suivante : SET TRANSACTION READ
WRITE

2- Pratiquer les deux Options de transactions :


Avant de commencer, je vous invite à ouvrir deux sessions S1 et S2 en se connectant au
schéma HR:
2.1 Tache 1 : COMMIT et ROLLBACK.
Dans S1 et S2 :
a- Écrire la requête qui “Donne le nom et la date d’embauche et le salaire des
Employés ayant l’id entre 102 et 110” sur la table EMPLOYEES.
b- Est-ce que vous obtenez la même chose dans les deux sessions ?
Dans S1
c- “Modifiez le salaire de l’employee_id= 104 (son nouveau salaire est 6666)
Dans S1 et S2 :
d- Écrire la requête qui “Donne le nom et la date d’embauche et le salaire des Employés
ayant l’id entre 102 et 110” sur la table EMPLOYEES.
e- Est-ce que vous obtenez la même chose dans les deux sessions ?
Dans S1
f- Faites un commit(ou un rollback) pour valider( ou annuler) la mise à jour

Dans S1 et S2 :
g- Écrire la requête qui “Donne le nom et la date d’embauche et le salaire des Employés
ayant l’id entre 102 et 110” sur la table EMPLOYEES.
h- Est-ce que vous obtenez la même chose dans les deux sessions ?
2.2 Tache 2 : READ ONLY
Dans S1
vous exécutez la transaction en mode lecture seule ( READ ONLY) en consultant la ligne de
l’employee_id=105 comme suit :
SQL>SET TRANSACTION READ ONLY
SQL> select * from employees where employee_id=105
a- Quel est le salaire de cet employé ?
b- Laisser la transaction ouverte ( et bien sur la session aussi ouverte)!
Dans S2,
c- réaliser une transaction qui faite une MAJ de salaire de l’employee_id=105 à 33333
update employees set salary =33333 where employee_id=105 ;
commit ;
d- Quel est le nouveau salaire de employee_id=105 ?
Dans S1
e- Est ce que l’utilisateur dans S1 va voir ce changement ? (consulter la table EMPLOYEES
à partir de S1)
f- Terminer la transaction dans S1 (commit ;), puis visualiser de nouveau le salaire de
employee_id=105, commenter ?
2.3 Tache 3 : READ WRITE
Refaire les mêmes étapes (requêtes) que dans la tache 1 en précisant le mode READ
WRITE dans S1. Quelle est la différence ?
2.4 Tache 4 : Atteinte mortelle ou interblocage (DEADLOCK)
On dit qu’il y a un inter blocage si les transactions qui sont en cours sont interdépendantes
Exemple : supposant qu’on a 3 transactions T1, T2 et T3 et que T1 attend la fin de T2 et T2
attend la fin de T3 et T3 attend la fin de T1, cette situation mène à un inter blocage

T2
T3
T1

a- Ouvrir au moins 3 sessions (S1, S2, S3) sur le schéma HR et lancer 3 transactions en
situation d’inter-blocage(DEADLOCK)
b- Qu’a fait oracle pour pallier à cet inter-blocage ?
TP4: ADMINISTRATION BASE DE DONNÉES ORACLE LP DSIC

- Quelques intéressantes requêtes PAR


- Création et gestion des tablesspaces et des
MR : I.CHANA
UNDO
- Gestion des fichiers de journalisation (redo
log )

NB : Un compte rendu est à remettre au professeur à la fin de la séance

I- Quelques intéressantes requêtes


1- La requête suivante permet d'afficher l'identifiant, le nom, le statut et
le tablespace des fichiers de données :
SELECT FILE_ID, FILE_NAME, STATUS, TABLESPACE_NAME
FROM DBA_DATA_FILES ORDER BY FILE_ID;
2- Les tables et la requête ci-dessous nous permettent de connaître la
taille d'un tablespace et de son espace libre ?
- DBA_DATA_FILES : permet de déterminer la taile d'un tablespace

- DBA_EXTENTS : permet de connaitre la taille de tous les


segments dans les différents datafiles,

- DBA_FREE_SPACE : indique les espaces libres dans les database


files.
La requête suivante vous permet de récupérer toutes ces informations
:

SELECT A.tablespace_Name, sum(A.Alloue), sum(B.Occupe),sum( C.Libre )


FROM (SELECT tablespace_name, sum(bytes)/1024/1024 AS ALLOUE
FROM dba_data_files GROUP BY tablespace_name) A,
(SELECT tablespace_name, Sum(bytes)/1024/1024 AS OCCUPE
FROM dba_segments GROUP BY tablespace_name) B,
(SELECT tablespace_name, Sum(bytes)/1024/1024 AS LIBRE
FROM dba_free_space GROUP BY tablespace_name) C
WHERE B.tablespace_Name = A.tablespace_Name
or C.Tablespace_Name = B.Tablespace_Name group by
A.tablespace_Name ;

Exercice 1 : exécuter ces deux requêtes sur votre base de données et


commenter !
I- Création et Gestion des tablespace et UNDO
Exercice 2 : en consultant des vues et des tables de dictionnaire,
Identifiez le tablespace permanent, temporaire et undo par défaut de
votre base de données.

Exercice 3 : tablespace
Dans votre base de données

1- Créer un Tablespace permanant "Gestion"


o Fichiers {oracle_base}/gest01.bdf et {oracle_base}/gest02.bdf et
o Taille 100 M chacun
o Fichiers du tablespace en Autoextend OFF
o Gérer localement
2- Créer Tablespace permanant "INDEX_TBS"
o Fichier et Taille {oracle_base}/index01.bdf 20 M ,
o Autoextend OFF .
o Le Stockage
- Le premier extents est de 100k, le suivant de 500k avec une
- Minimum d’extents 4 maximun 30
NB : (les deux table space ne doivent pas etre gérés par le dictionnaire car ça
va générer une erreur puisque le tablespace SYSTEM n’est pas géré par le
dictionnaire)
3- Créer Tablespace Temporaire "TMP_TBS" ( indication : create
temporary tablespace …… tempfile …..)
o Fichier et Taille {oracle_base}/tmp01.bdf 20 M
4- Vérifier le statut des tablspaces :
select status, contents, tablespace_name from dba_tablespaces

- Quel est le statut de tablespace Gestion ?


5- Changer son statut au (OFFLINE/ONLINE)
6- Remettre le statut en ONLINE
7- Créer la table Table1 ( c1 varchar2(30) , c2 number ) . puis
associer la au tablespace Gestion
8- On Souhaite renommer notre tablespace Gestion en DATA
ainsi que les fichiers de données associées
Pour cela utilisez les procédures Oracle pour:
o Renommer Gestion en DATA
o Renommer les fichiers gest01.dbf en data01.dbf et gest02.bdf en
data02.bdf
(alter database file ‘c:/exp/xxx.dbf’ to ‘ C:/ff/nexxxx.dbf‘ base
en etat mount)
9- Supprimer le tablespace DATA
Exercice 4 : le tablespace UNDO ( Rollback segment)

1- A quoi sert les rollback segment (UNDO).


2- C’est quoi l’utilité de créer un autre Undo (rollback segment) ?
3- Quelle est le nom de l’UNDO qui est configuré dans votre base de
données
4- Créez un nouveau tablespace de type UNDO : UNDOTBS2:
o Nom: UNDOTBS2
o Fichier : [Oracle_base]\undo02.dbf ( ou choisir un autre
emplacement)
o Size : 200M , Autoextend: on , Maxsize: 250M
5-Configurer votre base pour utiliser le undo tablespace UNDOTBS2
6-Reconfigurer votre base pour utiliser le undo précédent ( question 3)
et supprimez le tablepsace UNDOTBS2
Exercice 5 : le tablespace Undo cas d’utilisation
1- Créez un nouveau tablespace de type UNDO : TBS_UNDO:
o Nom: TBS_UNDO
o Fichier : [Oracle_base]\undo02.dbf (ou choisir un autre
emplacement)
o Size : 500k
o Maxsize 550K
o autoextent ON
2- Changer le mode de gestion en (MANUAL au lieu de AUTO)

alter system set undo_management = manual scope=spfile

3- Configurer votre base pour utiliser le undo tablespace TBS_UNDO


4- créer la table T_UNDO ( F1 varchar(50) ,F2 varchar(50)) ;
- Insérer 2 ligne dans cette table ( ne faites pas commit) ;
- Exécuter la requête ci-dessous plusieurs fois jusqu'à obtention
d’une erreur

insert into T_UNDO select * from T_UNDO

5- C’est quoi l’erreur ? et c’est du à quoi ?


6- Qu’est ce qu’on doit faire pour anticiper cette erreur ?
7- Proposer une solution à l’erreur
8- Appliquer la solution proposée
Exercice 6 : Gestion du stockage dans un tablespace

1- Créer le tablespace TBS_stock


o Taille 1M
o ( Ne pas mettre autoextent ON)
o Default storage est
- Le premier extents est de 50k , le suivant de 100k
- Minimum d’extents 4 maximun 6
2- Vérifiez la création du tablespace TBS_stock
3- Créer la table stock associé au tablesopace TBS_stock les champs
de la table sont comme suit :
o Id ( number)
o Libelé (varchar (30)
o Quantité
o Marque (varchar (50))
4- Via un scripte. sql ou sqlloader Insérer 10 ligne de votre choix
5- Combien est la taille libre de la tablespace TBS_stock? (dba_extents,
…..)
6- Exécuter ensuite la requête ci-dessous 5 fois

Insert into stock select * from stock ;


commit ;
7- Vérifier la taille libre de TBS_stock à combien est t elle ?
8- Exécuter ensuite la requête ci-dessous plusieurs fois jusqu’à avoir une
erreur :

Insert into stock select * from stock ;


commit ;
9- Expliquer cette erreur, pourquoi est elle survenue ?
10- Donner les solutions pour dépasser cette erreur
11- Appliquer une d’elles (vous pouvez les appliquer toutes)
12- Une fois vous appliquez la solution, continuez l’insertion par les mêmes
requêtes
13- Si on a une opération d’insertion en masse (un grand nombre des
insertions) que doit faire l’administrateur de base de données pour
anticiper cette erreur ?
II- Gestion des fichiers redo-log
Exercice 7
1. Quels sont les fichiers redo-log de votre base ?
2. Combien y a-t-il de groupes et de membres ?
3. combien de groupe et de membre doit on avoir au minimum pour
oracle
4. Ajoutez un membre à chaque groupe et vérifiez leur existence.
5. Créez un nouveau groupe et vérifiez son existence.
6. Lors de la question (4), vous avez ajouté un membre à chaque groupe.
L’intérêt de cette action est de placer ces membres sur un autre
disque. Pour le simuler, déplacez-les (en restant dans votre répertoire)
ou renommez-les.
Indication (ouvrir le chapitre 2 du cours solide Gestion Fichiers de
journalisation : déplacer / renommer des menber )

7. Supprimez le groupe que vous avez créé à l'étape (5).


8. Augmentez la taille des fichiers de redo-log à 10M.
9. Remettez tout en place comme avant la manipulation des fichiers redo-
log (2 groupes comportant chacun un membre de 6M).

III- Exercice supplémentaire


Exercice 8 Le Tablespace en mode lecture seule (Read-
Only).
1. créer le tablespace nommé LECT_SEULE dans le disque D ( ou une
la partition /U01 de linux) ( mais ne la mettez pas encore en mode
read-only). Le tablespace LECT_SEULE doit hériter les options
Oracle de stockage par défaut.
2. Vérifiez le résultat en interrogeant DBA_TABLESPACES comme
montré ici:

SELECT tablespace_name FROM dba_tablespaces;

3. Créer la table nommée TEST1 et y insérer une ligne de données


de votre choix .
CREATE TABLE test1 (column_1 CHAR(20) ) TABLESPACE Lect_seule;
INSERT INTO test1 VALUES (‘line 1’); COMMIT;

4. Mette le tablespace LECT_SEULE en mode lecture seule. Vérifier


le resulte en consultant la vue V$DATAFILE:
SELECT name, enabled FROM v$datafile WHERE enabled = ‘READ
ONLY’;
5. Essayer de créer une autre table TEST2 associé au tablespace
LECT_SEULE que ce que ce passe ? supprimer la table TEST1. que
ce que ce passe?
6. supprimer le tablespace LECT_SEULE et les fichier de données qui
lui sont associés. Vérifier que le tablespace LECT_SEULE a eté
supprimé en consultant DBA_TABLESPACES et DBA_DATA_FILES:
SELECT tablespace_name FROM dba_tablespaces;
SELECT file_name FROM dba_data_files;
TP5: ADMINISTRATION BASE DE DONNÉES ORACLE LP DSIC

- Gestion de droit et privilège : Grant, role, PAR MR :


profile I.CHANA

- Rman, sauvegarde et restauration


NB : Un compte rendu est à remettre au professeur à la fin de la séance

II- Sécurité et Droits d’accés


A- Création et gestion des utilisateurs
Se connecter par le compte system et réaliser les points suivants :
3- Créer le tablespace TP5 de taille 5Mega
4- Créer les utilisateurs suivants avec les propriétés suivantes :
A – utilisateur USER1
- Mot de passe USER1
- Tablespace par default : TP5 avec un quota de 1M
- Tablespace temporaire : TEMP
B – utilisateur USER2
- Mot de passe USER2
- Tablespace par default : USES avec un quota de 2M
- Tablespace temporaire : TEMP
- Avec le mot de passe à changer lors de la 1er connexion
C– utilisateur USER3
- Mot de passe USER3
- Tablespace par default : USES avec un quota de 2M
- Tablespace temporaire : TEMP
- Le compte sera verrouillé jusqu'à nouvel ordre
5- Essayer de se connecter avec un des utilisateurs, vous remarquez que
ça ne marche pas car il manque le droit de connexion et aussi d’autre
droits
6- Donner le droit de connexion (create session) à tous ces utilisateurs
7- Se connecter maintenant par les 3 utilisateurs, que remarquer vous ?
En tant que DBA quelle est la façon de création qui vous convient et
pourquoi ?
8- Changer le mot de passe de l’utilisateur user1 , verrouiller l’utilisateur
user2 déverrouiller l’utilisateur user3

B- Création et gestion des Profile

1- Créer un profile PROFILE_TP5 ayant les caractéristiques suivantes


 3 sessions simultanées autorisées.
 Un appel système ne peut pas consommer plus de 30 secondes de
CPU.
 Chaque session ne peut excéder 45 minutes.
 Chaque session ne peut allouer plus de 15 ko de mémoire en SGA.
 Pour chaque session, 40 minutes d'inactivité maximum sont
autorisées.
 3 tentatives de connexion avant blocage du compte.
 Le mot de passe est valable pendant 70 jours et il faudra attendre
60 jours avant qu’il puisse être utilisé à nouveau.
2- Associer ce profile à l’utilisateur USER1
3- Essayer de se connecter plus que 3 fois par USER1 avec des mot
de passes incorrects, la 4eme avec un bon mot de passe qu’est ce
que se passe ?
4- Supprimer le profile PROFILE_TP5
C- Création et gestion des privilèges :
1- Donner à tous les utilisateurs créés dans l’exercice 1 le droit de
créer des tables
2- Pour chaque utilisateur créer les tables ci-dessous avec des
champs de votre choix et y insérer des données n’oublier pas
commit ;
User1 : table TB_US11 , TB_US12

User2 : table TB_US2 ,

User3 : table TB_US3,


3- Se connecter par USER1 :
- Donner le droit de select sur TB_US11 a l’utilisateur
User2
- Donner le droit de select sur TB_US12 a l’utilisateur
User2 avec l’option graint
4- Se connecter par User2
- Essayer de Donner le droit de select sur TB_US11 a
l’utilisateur User3 ? que remarquer vous ?
- Essayer de Donner le droit de select sur TB_US12 a
l’utilisateur User3 ? que remarquer vous ?
5- Retirer le droit attribué à User2 sur TB_US11
6- Retirer le droit attribué (RESTRICT et CASCADE).
7- Donner le droit de créer des Index à l’utilisateur User3
D- Création et gestion des Rôles
1- Créer le rôle ESTM
2- Donner à ce rôle les privilèges suivants :
Création d’index, Tables, synonymes, vue
3- Associer ce rôle à l’utilisateur USER2
4- Que ce qu’on va faire pour retirer le droit de créer des Index par
l’utilisateur USER2 ? exécuter la commande et vérifier
II6 Sauvgarde et retauration / RMAN
1- Vérifier le mode d’archivage de la base
2- Mètre la base en mode archivlog avec une période d’archivage de
3 min ARCHIVE_LAG_TARGET, vérifier la génération de archive
sur votre disque
3- Supprimer les archives (backup archivelog all delete input; et
delete obsolete; )
4- Remettre la base en mode nonarchivelog
5- Faire un backup complet de la base de données, puis supprimer le
fichier de données associé à la tablespace crée dans l’exercice 1 de
ce TP
6- Faire une restauration complète, et vérifier le retour de fichier de
données supprimé
7- Refaire les deux exemples de cours :
 Exemple1 : tablespace endommagé (Cas de TBS users)
 Exemple2 : datafile endommagé

Vous aimerez peut-être aussi