TD 2 ------------------------------------------------------------------------------------------ Prenez le fichier init.ora dans $ORACLE_HOME/dbs faites une copie en inittest.ora ouvrir le fichier inittest.ora et apportez les modifications ci-dessous. Db_name=test shared_pool_size = 52132659 control_files = ("/u02/oradata/test/control01.ctl","/u02/oradata/test/control02.ctl ) undo_management=auto undo_tablespace=undo1 copier ce fichier dans /u01/app/oracle/product/10.2.0/dbs/inittest.ora Créer une base Oracle10g Création de l instance : Tapez. oraenv et répondez TEST à la question pausée. Démarrer l instance avec sqlplus sqlplus / AS SYSDBA Démarrer l instance en état nomount en se servant du fichier de paramétrage inittest STARTUP NOMOUNT pfile= /u01/app/oracle/product/10.2.0/dbs/inittest.ora Vérifier que l instance est bien démarrée, taper : SELECT * FROM v$instance; Chercher le paramètre DB_NAME SHOW PARAMETERS DB Création de la base de données test CREATE DATABASE test DATAFILE '/u02/oradata/test/test_system.dbf' SIZE 100M AUTOEXTEND ON MAXSIZE 300M SYSAUX DATAFILE '/u02/oradata/test/test_sysaux.dbf' SIZE 20M AUTOEXTEND ON MAXSIZE 200M UNDO TABLESPACE undo1 DATAFILE '/u02/oradata/test/test_undo1.dbf'
SIZE 20M AUTOEXTEND ON MAXSIZE 200M LOGFILE GROUP 1 ('/u02/oradata/test/test1a.log', '/u02/oradata/test/test1b.log') SIZE 4M, GROUP 2 ('/u02/oradata/test/test2a.log', '/u02/oradata/test/test2b.log') SIZE 4M; Essayer de taper les requêtes suivantes et noter les résultats : SELECT * FROM v$sga; SELECT name,log_mode,created FROM v$database;. SELECT * FROM fet$;. SELECT * FROM dba_free_space; La vue, dba_free_space n a pas encore été créée. SELECT * FROM dba_triggers; La vue, dba_triggers n a pas encore été créée. Lancer les deux scripts ci dessous pour créer les vues du dictionnaire: @/u01/app/oracle/product/10.2.0 /rdbms/admin/catalog.sql @/u01/app/oracle/product/10.2.0 /rdbms/admin/catproc.sql réessayer de lancer : SELECT trigger_name FROM dba_triggers; La vue a maintenant été créée. Faire la commande suivante SELECT * FROM dba_objects WHERE status = 'INVALID'; Aucune ligne ne doit être retournée si catproc a fonctionné correctement. Sinon relancer le catproc.sql SELECT * FROM dba_objects WHERE object_name = 'STANDARD'; On doit avoir 2 lignes. SELECT SUM(bytes) FROM dba_free_space WHERE tablespace_name = 'SYSTEM';
Environ 12Mo de libre dans le tablespace SYSTEM. Depuis la version 10g, il est recommandé de ne plus utiliser le init.ora pour monter l instance mais un fichier spfile. On pourra ainsi modifier certains paramètres de l instance sans avoir à l arrêter et la redémarrer. Je vous propose de le créer ci dessous: CREATE SPFILE FROM PFILE; SHUTDOWN IMMEDIATE STARTUP ALTER SYSTEM SET PROCESSES = 200; cette intruction échoue. ALTER SYSTEM SET PROCESSES = 200 SCOPE = SPFILE;. SHOW PARAMETERS PROCESSES Le paramètre n est pas changé. SHUTDOWN IMMEDIATE STARTUP SHOW PARAMETERS PROCESSES La valeur est bien passée à 200 SHOW PARAMETERS SPFILE La valeur pour spfile est positionnée au défaut Création et Gestion des Tablespaces On regarde les détails des tablespaces et fichiers déjà créés SELECT tablespace_name FROM dba_tablespaces; SELECT file_name FROM dba_data_files; Créer un nouveau tablespace : CREATE TABLESPACE users DATAFILE '/u02/oradata/test/test_user.dbf' SIZE 4M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL UNIFORM SIZE 8K
PERMANENT ONLINE; On vérifie les changements apportés à la base SELECT tablespace_name FROM dba_tablespaces; SELECT file_name FROM dba_data_files; Créer un tablespace pour les segments temporaires CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u02/oradata/test/test_temp.tmp' SIZE 2M AUTOEXTEND ON MAXSIZE 200M EXTENT MANAGEMENT LOCAL; On définie le tablespace temp comme tablespace temporaire par défaut ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; On définie le tablespace users comme tablespace de stockage par défaut ALTER DATABASE DEFAULT TABLESPACE users; CREATE TABLE cours ( id_cours number(3) not null, titre varchar2(30), duree number(2)); insert into cours values (1, 'UNIX', 25); insert into cours values (2, 'C++', 25,); insert into cours values (3, 'DELPHI', 14); insert into cours values (4, 'ORACLE', 35); insert into cours values (5, 'CITRIX', 15); insert into cours values (6, 'PERL', 25); insert into cours values (7, 'PHP', 30); insert into cours values (8, 'PLSQL', 40); insert into cours values (9, 'ANALYSE', 30); commit; Création d un utilisateur CONNECT system/manager@test Créer un utilisateur ora1 identifié par ora1
CREATE USER ora1 IDENTIFIED BY ora1; Créer un utilisateur ora2 identifié par ora2 avec un quotas de 20K sur le tablespace users CREATE USER ora2 IDENTIFIED BY ora2 DEFAULT TABLESPACE users QUOTA 20K ON user; Modifier le quotas de user2 et le passer à 2M ALTER USER ora2 QUOTA 2M on users; Visualiser les changements : SELECT * FROM dba_ts_quotas; Donner le droit à ora1 et ora2 de se connecter à la base GRANT CREATE SESSION TO ora1, ora2;