Rendu - Administration des Bases de Données TP 2
Mabrouki Ghazi 4 TWIN 1
1- Connexion à SQL en tant qu'administrateur :
sqlplus / as sysdba
2- Création du tablespace TBL01 :
CREATE TABLESPACE TBL01
DATAFILE 'fd01tbl01.dbf' SIZE 6M,
'fd02tbl01.dbf' SIZE 4M;
3- Définir le tablespace TBL01 par défaut :
ALTER DATABASE DEFAULT TABLESPACE TBL01;
4- Création du tablespace TBL02 :
CREATE TABLESPACE TBL02
DATAFILE 'fd01tbl02.dbf' SIZE 10M,
'fd02tbl02.dbf' SIZE 10M,
'fd0xbl02.dbf' SIZE 5M;
5- Ajout d'un fichier de données à TBL01 :
ALTER TABLESPACE TBL01
ADD DATAFILE 'fd02tbl01.dbf' SIZE 20M;
6- Renommer un fichier dans TBL02 :
ALTER DATABASE RENAME FILE 'fd0xbl02.dbf' TO 'fd03bl02.dbf';
7- Afficher la liste des tablespaces :
SELECT tablespace_name FROM dba_tablespaces;
8- Bloc PL/SQL pour afficher le nom et le nombre de fichiers par tablespace :
DECLARE
CURSOR c_tablespaces IS
SELECT tablespace_name FROM dba_tablespaces;
v_count NUMBER;
BEGIN
FOR r IN c_tablespaces LOOP
SELECT COUNT(*) INTO v_count
FROM dba_data_files
WHERE tablespace_name = r.tablespace_name;
DBMS_OUTPUT.PUT_LINE('Tablespace: ' || r.tablespace_name || ' - Files: ' || v_count);
END LOOP;
END;
9- Ajouter un fichier extensible à TBL01 :
ALTER TABLESPACE TBL01
ADD DATAFILE 'fd04tlb01.dbf' SIZE 2M AUTOEXTEND ON NEXT 1M MAXSIZE 4M;
10- Création d'un tablespace temporaire MonTemp :
CREATE TEMPORARY TABLESPACE MonTemp
TEMPFILE 'montemp.dbf' SIZE 5M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE MonTemp;
11- Fonction stockée pour le nombre de tablespaces temporaires :
CREATE OR REPLACE FUNCTION FN_NBR_TAB_TEMP RETURN NUMBER IS
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM dba_tablespaces WHERE contents = 'TEMPORARY';
RETURN v_count;
END;
12- Créer un utilisateur TD3 :
CREATE USER TD3 IDENTIFIED BY '123'
DEFAULT TABLESPACE TBL01
TEMPORARY TABLESPACE MonTemp;
GRANT CONNECT, RESOURCE TO TD3;
13- Suppression du tablespace TBL01 et vérifier TD3 :
DROP TABLESPACE TBL01 INCLUDING CONTENTS;
SELECT username, default_tablespace FROM dba_users WHERE username = 'TD3';
14- Procédure stockée pour afficher les détails des tablespaces :
CREATE OR REPLACE PROCEDURE PS_DETAILS_TAB IS
BEGIN
FOR r IN (SELECT tablespace_name, SUM(bytes)/1024/1024 AS total_size_mb,
SUM(bytes - free_space)/1024/1024 AS used_size_mb
FROM dba_data_files
JOIN (SELECT tablespace_name, SUM(bytes) AS free_space FROM dba_free_space
GROUP BY tablespace_name) free_space
ON dba_data_files.tablespace_name = free_space.tablespace_name
GROUP BY tablespace_name) LOOP
DBMS_OUTPUT.PUT_LINE('Tablespace: ' || r.tablespace_name || ', Total Size: ' ||
r.total_size_mb || 'MB, Used Size: ' || r.used_size_mb || 'MB');
END LOOP;
END;
15- Connexion avec TD3 et création de la table Etudiants :
CONNECT TD3/123
CREATE TABLE Etudiants
(num_etud NUMBER(10) PRIMARY KEY,
nom_etud VARCHAR2(30),
moyenne_etud NUMBER(4,2));
BEGIN
FOR i IN 1 .. 10000 LOOP
INSERT INTO Etudiants (num_etud, nom_etud, moyenne_etud)
VALUES (i, 'Etudiant'||i, 10);
END LOOP;
END;
/
la procédure PS_DETAILS_TAB pour vérifier les différences :
EXEC PS_DETAILS_TAB;