administration bd
TRANSCRIPT
1-1
Oracle Database 10g:
Administration Workshop
1-2
SOMMAIRE
Installation et configuration
Architecture du SGBD Oracle
Gestion des objets et des utilisateurs
Notion de schéma.
Gestion de l'instance.
Les fichiers trace et les fichiers d'alertes.
Configuration réseau.
Gestion du fichier de contrôle.
1-3
Gestion des fichiers de journalisation.
Les espaces de disque logiques (tablespaces).
Outils d'administration (ENTREPRISE MANAGER)
Export et Import.
Mode d’archivage
Sauvegardes et restaurations (à chaud et à froid)
Restaurations après perte de fichiers.
Sauvegarde avec RMAN.
1-4
la version 10g est publiée, version qui supporte les expressions rationnelles.
Le g signifie « grid » ; un des atouts marketing de la 10g est en effet qu'elle
supporte le « grid computing ».
Une grille informatique (en anglais, grid) est une infrastructure virtuelle
constituée d'un ensemble de ressources informatiques potentiellement partagées,
distribuées, hétérogènes, délocalisées et autonomes.
Une grille garantit des qualités de service non triviales, c'est-à-dire qu'elle se
distingue des autres infrastructures dans son aptitude à répondre adéquatement à
des exigences (accessibilité, disponibilité, fiabilité, …) compte tenu de la
puissance de calcul ou de stockage qu'elle peut fournir.
1-5
System
Monitor
(SMON)
Database
Writer
(DBWn)
LogWriter
(LGWR)
Process
Monitor
(PMON)
Archiver
(ARCn)
SGA
Java pool
Zone de mémoire
partagée
Zone mémoire
Large pool Streams pool
Database
buffer cache
Redo log
buffer
Checkpoint
(CKPT)
Control files
Data files
Redo log files
Archive log files
GESTION DES INSTANCES ORACLE
1-6
Chaque processus a pour nom ora_nomduprocessus_SID où SID représente
le nom de l'instance à laquelle le processus est associé.
Les 4 principaux processus systèmes sont :
DBWR (DataBase Writer ou Dirty Buffer Writer), le processus chargé d'écrire
le contenu des buffers dans les fichiers de données
LGWR (Log Writer), le processus chargé d'écrire le contenu des buffers dans
les fichiers Redo Log
PMON (Process Monitor), le processus chargé de nettoyer les ressources, les
verrous et les processus utilisateurs non utilisés
SMON (System Monitor), le processus chargé de vérifier la cohérence de la
base de données et éventuellement sa restauration lors du démarrage si
besoin
Il existe également d'autres processus d'importance
secondaire :CKPT (CheckPoint), le processus chargé d'écrire le contenu des
buffers dans les fichiers de données
ARCH (Archiver). Ce processus est optionnel et n'existe qu'en
modeARCHIVELOG. Il permet de dupliquer les fichiers Redo-Log dans un
espace d'archivage.
Sql> select program from v$process;
1-7
Connexion utilisateur à la base de données
Deux processus permettent à un utilisateur d'interagir avec l'instance et finalement, avec la base de
données : le processus utilisateur et le processus serveur .
Chaque fois qu'un utilisateur exécute une application, telle qu’une application de gestion de
ressources humaines, de gestion financière, ou tout simplement une commande SQL , la machine
client lance, au préalable, un processus utilisateur pour établir une connexion de l'utilisateur à
l'instance Oracle.
1-8
Le processus de connexion passe par les étapes suivantes :
1. Le client contacte le listener Oracle en choisissant l’instance à laquelle il souhaite
se connecter (demande d’un nom de service).
2. Le listener démarre un processus dédié appelé processus serveur
3. Le listener envoie un accusé de réception au client avec l'adresse du processus
serveur dédié
4. Le client établit une connexion avec le processus serveur dédié
5. Le processus serveur se connecte à l'instance Oracle pour le compte
du processus utilisateur (création d’une session utilisateur)
C’est le processu serveur qui se connecte à l'instance Oracle pour servir le processus
utilisateur durant toute la session du client.
Le processus utilisateur n'entre pas directement en interaction avec le serveur Oracle.
C'est plutôt, le processus serveur qui intéragit avec le serveur Oracle, répond aux
demandes de l’utilisateur et lui renvoie les résultats.
1-9
Le processus d’écoute Oracle Listener
Le processus d’écoute Oracle listener est le principal composant Oracle coté
serveur qui permet d'établir la connexion entre les ordinateurs clients et une base de
données Oracle. Le listener peut être considéré comme une grande oreille qui
écoute les demandes de connexion aux services Oracle.
Théoriquement, une machine serveur peut héberger plusieurs bases de données
Oracle et un listener et un seul pour permettre la connexion d’un client à l’instance
Oracle de son choix. Le nom de l’instance est soumis par le client lors du processus
de connexion (étape 1).
Deux cas sont possibles :
Un processus d’écoute (Listener) peut servir plusieurs bases de données
configurées sur une même machine serveur,
Plusieurs listener peuvent être configurés sur une même machine (à des fins de
basculement ou d'équilibre de charge pour supporter des charges importantes de
demandes de connexion).
Dans une configuration de serveur dédié, le Listener lance pour chaque client un
nouveau processus serveur et lui cède le contrôle de la session du client. Chaque
connexion client est servie par son propre processus serveur.
Le schéma ci-dessus correspond à une configuration serveur dédié et pour une
application client/serveur.
1-10
Physical Database Structure .
Online redo log files
Password file
Parameter file Archive log files
Control files Data files
Alert and trace log files
Backup files
DB structures
Memory
Process
> Storage
Parameter file : (C:\oracle\product\10.2.0\admin\orcl\pfile) oracle10G
D:\app\ASUS\admin\orcl\pfile\init.ora oracle11G
Fichier ALERT et TRACE : (C:\oracle\product\10.2.0\admin\orcl\bdump)
1-11
Pour afficher les fichiers de données :
select name from v$datafile;
Pour afficher les fichiers de contrôles :
select name from v$controlfile;
Pour afficher des fichiers journaux :
select member from v$logfile ;
Emplacement physique :
C:\oracle\product\10.2.0\oradata\orcl
1-12
Avec ces trois type de fichier on peut effectuer une
sauvegarde à froid (instance oracle arrêtée).
Etapes de sauvegarde à froid:
1-13
Etapes de sauvegarde à froid:
http://oracle.bougiote.com/2012/01/sauvegarde-complete-
afroid.html
1. accéder au serveur oracle en mode administrateur :
Connect/as sysdba
2. Fermer la base : Shutdown immédiate
3. Copier les trois type de fichier dans un autre emplacement.
TEST
1. ouvrir la base : startup
2. supprimer toutes les tables
3. afficher les tables : select * from tab
4. Fermer la base : Shutdown immédiate
5. Supprimer les trois type de fichier
6. Restaurer les fichiers copiés
7. Ouvrir la base : startup
8. afficher les tables : select * from tab
1-14
Script automatique de sauvegarde à froid
Set feedback off
Set Linesize 200
Set Heading off
Set Pagesize 0
Set Trimspool off
Set Verify off
define repertoire ='d:\archive' -- répertoire de destination des fichiers
sauvegardés
define fichier_control=d:\control_backup.sql -- définition du fichier de sortie
spool &fichier_control
select 'host copy ' || name || ' &repertoire ' from v$datafile order by 1 ;
select 'host copy ' || member || ' &repertoire ' from v$logfile order by 1 ;
select 'host copy ' || name || ' &repertoire ' from v$controlfile order by 1 ;
select 'host copy ' || name || ' &repertoire ' from v$tempfile order by 1 ;
spool off
-- Fermeture de la base de données pour avoir des fichiers synchronisés
shutdown immediate @&fichier_control startup
1-15
INITIALISATION DE LA BASE DE DONNEES EN
CAS DE PROBLEME:
Startup mount pfile=’ D:
\oracle\product\10.2.0\admin\orcl2\pfile\init.ora.01720
14164111’;
CRÉATION D’UN SPFILE À PARTIR D’UN PFILE:
Create spfile from pfile=’
D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.0172
014174226’;
1-16
Starting Up an Oracle Database Instance: OPEN
OPEN
MOUNT
NOMOUNT
SHUTDOWN
All files opened as
described by the control
file for this instance
Control file
opened for this
instance
Instance
started
STARTUP
Démarre l’instance sans monter la base de
données. Dans ce mode, le fichier de paramétrage
est lu, les process sont en arrière plan, les
structures mémoires sont initialisées, mais ils ne
sont pas attachés et ne communiquent pas. Dans
ce cas, la base de données ne peut pas être utilisée.
Si la base est montée en NOMOUNT, certaines
tâches peuvent être effectuées. Accéder au fichier
contrôle file, problèmes de démarrage.
Dans ce mode, les interactions
dans la base de données ont
lieu. A ce point, Oracle obtient
des informations sur les fichiers
de contrôle et nous pouvons
maintenir les fichiers. Nous
pouvons physiquement modifier
l’emplacement des fichiers.
C’est le mode de démarrage
par défaut.
1-17
• Deux modes de démarrages sont possibles : NOMOUNT, MOUNT et OPEN
• STARTUP NOMOUNT
Démarre l’instance sans monter la base de données. Dans ce mode, le fichier
de paramétrage est lu, les process sont en arrière plan, les structures
mémoires sont initialisées, mais ils ne sont pas attachés et ne communiquent
pas. Dans ce cas, la base de données ne peut pas être utilisée. Si la base est
montée en NOMOUNT, certaines tâches peuvent être effectuées. Accéder au
fichier contrôle file, problèmes de démarrage.
• STARTUP MOUNT [pfile= =’ D:
\oracle\product\10.2.0\admin\orcl2\pfile\init.ora.0172014164111’];
Dans ce mode, les interactions dans la base de données ont lieu. A ce point,
Oracle obtient des informations sur les fichiers de contrôle et nous pouvons
maintenir les fichiers. Nous pouvons physiquement modifier l’emplacement
des fichiers.
• STARTUP OPEN
C’est le mode de démarrage par défaut.
• STARTUP FORCE
Vous pouvez utilisez cette option si vous avez des difficultés pour démarrer
une base de données. Cette option peut être utilisée quand le
démarrage d’une base avec l’option classique ne marche pas. Cette option
effectue une shutdown abort et un restart de la base.
Pour ouvrir la base : Alter database open
1-18
Fichier de paramètres
(C:\oracle\product\10.2.0\admin\orcl\pfile)
1-19
Fichier ALERT et TRACE (C:\oracle\product\10.2.0\admin\orcl\bdump)
1-20
Fichier mot de passe et SPFILE (C:\oracle\product\10.2.0\db_1\database)
1-21
Logical and Physical Database Structures
Database
Logical Physical
Tablespace Data file
OS block
Segment
Extent
Oracle data block
Schema
1-24
Comment activer l'archivage dans Oracle ?
(exemple d’application: récupération d’un fichier de données DBF)
Maintenant on peut manipuler notre base de données en toute
sécurité à moins qu’on doive aussi savoir comment récupérer nos
bases de données à partir des fichiers journaux.
On ferme la base avec la commande :
shutdown immediate;
Puis on la remonte avec :
startup mount ;
Maintenant pour confirmer la modification on tape :
alter database archivelog ;
RQ: en cas de problème, taper
startup force
1-25
Pour tester maintenant notre travail on crée une tablespace et une table :
create tablespace TB
datafile ‘D:\TB.dbf’
size 10m ;
Créer un utilisateur :
Sql>create user ali identified by ali default tablespace tb;
Sql>connect ali/ali
Puis on crée une table :
Sql> create table AA(y number) ;
Sql> insert into AA values(1) ;
Sql> commit ;
On tape « shutdown immediate; » pour fermer la base.
Maintenant on va faire un petit test : on va supprimer le fichier ou modifie
le nom de TB.dbf
On revient a notre cmd on essai d’afficher le contenu de notre table avec la
commande « select * from AA ; » , bien sûr ça va pas marché car elle n’est
pas reconnue.
Pour récupérer nos données à partir du fichier journal on tape :
sql> alter database create datafile ‘D:\TB.dbf’ ;
Puis pour confirmer on tape : recover automatic database;
Enfin on ouvre la base pour tester : alter database open ; .
1-26
INITIALISATION DE LA BASE DE DONNEES EN CAS DE PROBLEME :
Startup mount pfile=’ D: \oracle\product\10.2.0\admin\orcl2\pfile\init.ora.0172014164111’;
1-27
Création d’un spfile à partir un pfile:
Create spfile from pfile=’ D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.0172014174226’;
1-28
Copyright © 2005, Oracle. All rights reserved.
Administration
avec Entreprise Manager EM
http://nom_machine:1158/em
1-30
1-31
Exemple:Administration creation tablespace
1-32
Création tablespace:
1-33
Choisir nom tablespace et ajouter un fichier physique .dbf
1-34
1-35
1-36
1-37
Recherche des sessions bloquées
1-38
Recherche des sessions bloquées
1-39
Affichage de la requête bloquante ALTER SYSTEM KILL SESSION
'139,112' IMMEDIATE
1-40
Requête bloquante
1-41
Gestion des utilisateurs
1-42
Gestion des utilisateurs
1-43
Predefined Roles
CONNECT CREATE SESSION
RESOURCE CREATE CLUSTER, CREATE INDEXTYPE,
CREATE OPERATOR, CREATE PROCEDURE,
CREATE SEQUENCE, CREATE TABLE, CREATE
TRIGGER, CREATE TYPE
SCHEDULER_
ADMIN CREATE ANY JOB, CREATE EXTERNAL JOB,
CREATE JOB, EXECUTE ANY CLASS, EXECUTE
ANY PROGRAM, MANAGE SCHEDULER
DBA Most system privileges, several other roles. Do
not grant to nonadministrators.
SELECT_
CATALOG_
ROLE
No system privileges, but HS_ADMIN_ROLE and
over 1,700 object privileges on the data
dictionary
1-44
Utilisation du service isqlplus: http://localhost:5560/isqlplus/
1-45 45
Configuration de l’utilisateur OS
1-46 46
Configuration de l’utilisateur OS
1-47 47
Configuration de l’utilisateur OS
1-48 48
1-49 49
1-50 50
1-51 51
1-52 52
Export/import avec EM
1-53 53
Export/import avec EM
1-54 54
Export/import avec EM
1-55 55
Manipulation TP
1-56 56
Les administrateurs systèmes se connectent de la façon suivante sans mot de
passe en tant que SYSDBA :
C:/> sqlplus /nolog
Sqlplus:/> connect /as sysdba (administrateur système)
Rq: vous pouvez supprimer cette option:
il suffit de neutraliser cette ligne du fichie sqlnet.ora
# SQLNET.AUTHENTICATION_SERVICES= (NTS)
Sqlplus:> Connect sys/system as sydba
Sqlplus:/> connect system/system@orcl (administrateur de BD)
Changer mot de passe
Sqlplus:/> alter user system identified by system
Déverouiller un compte:
Sqlplus:/> alter user scott account unlock;
Créer un utilisateur
Sqlplus:/> create user mahsouna identified by mahsouna;
Donner des privilèges à un utilisateur
Sqlplus:/> grant connect, resource to mahsouna;
sqlplus:/> grant dba to mahsouna; (ne jamais donner le privilège dba)
Sqlplus:/> revoke dba from mahsouna;
Rq: pour connecter à un serveur distant sans utiliser le tnsnames.ora
Sqlplus:/> connect system/[email protected]:1521/orcl
Avec oracle 12C : sql:> alter session set ‘’ _oracle_script’’=true;
Orcl est un nom de service décrit dans le fichier tnsnames.ora
1-57 57
Fichier C:\oracle\product\10.2.0\db_1\network\ADMIN\tnsnames.ora)
Le fichier tnsnames.ora est situé sur une machine client
(au sens large, puisqu'il peut être aussi présent sur un
serveur, pour être utilisé par des programmes oracle
clients qui vont accèder à une base).
Son role est de faire le lien entre le nom symbolique (on
parle d'alias) utilisé dans les applications clientes qui font
appel à une base oracle distante.
On va donc faire correspondre à un alias, l'adresse ip de la
machine où tourne la base, son ORACLE_SID et le port
d'ecoute par lequel les demandes vont transiter (celui du
listener).
1-58 58
Fichier C:\oracle\product\10.2.0\db_1\network\ADMIN\listner.ora)
Le fichier listener.ora est uniquement coté serveur, il sert
de paramètre pour une tache, le listener, qui s'execute sur
le serveur sur lequel tourne la base Oracle.
Cette tache a comme role d'ecouter (to listen en anglais,
d'où son nom), d'attendre, qu'une demande d'accès à la
base arrive.
Cette tache surveille les demandes qui arrivent sur un port
d'écoute particulier du reseau et va rediriger la demande
vers la tache qui gère l'instance de la base sollicitée.
1-59 59
Fichier C:\oracle\product\10.2.0\db_1\network\ADMIN\listner.ora)
C'est en fait l'intermediare, le point de passage obligé de
toutes les requetes reseau vers la base. Dans le fichier
listener.ora tu auras des blocs caractèrisés par un nom
(utilisé pour lancer la tache d'ecoute), un numero de port
(par exemple le port par defaut est 1521), l'adresse reseau
utilisée et un nom d'instance d'une base Oracle.
1-60 60
CONNECTION A UNE BASE DISTANTE (BDs réparties)
1. Créer un nouveau service ‘sahar’ vers la base distante
dans le fichier
C:\oracle\product\10.2.0\db_1\network\ADMIN\tnsnames
.ora
2. Connecter en mode administrateur
:system/system@orcl
3. Donner le privilège create database link à l’utilisateur
concerné: exemple: grant create database link to scott
4. Connect scott/tiger@orcl
5. Create database link aaa connect to scott identified by
tiger using ‘sahar’ ( sahar c’est un alias vers la base
distante situé dans la machine 192.168.1.120 UTILISANT
le port 1521 et le nom de la base orcl(oracle_sid)
6. Select * from dept@aaa;
1-61 61
contrôle de maj d’une table
1. Creation d’une table archive
Create table archive_emp (x char(200));
2. Creation d’un déclencheur(trigger)
Create trigger archive_dept
before delete or update or insert
On dept
For each row
Begin
insert into archive_emp values(‘bonjour’);
End;
1-62 62
Sauvegarde à froid
1. Vérifier l’emplacement des trois types de fichier(.CTL
.LOG .DBF(tablespaces).
D’une manière générales ces fichiers se trouvent par
défaut dans le répertoire
‘c:\oracle\product\10.2.0\oradata\orcl’
1-63 63
Sauvegarde à froid
2. Fermer la base de données: « shutdown immediate »
3. Copier tous les trois type de fichiers dans un autre emplacement
4. Ouvrir la base de nouveau avec la commande « startup »
RQ: en cas de problème « startup force »
Si non essayer avec la commande suivante en utilisant le fichier
d’initialisation ‘init.ora’
Startup mount pfile=’
C:\oracle\product\10.2.0\admin\orcl2\pfile\init.ora.01720141
64111’;
1-64 64
Récupération de la base à froid
2. Fermer la base de données: « shutdown immediate »
3. Copier tous les fichiers copiés à froid dans l’emplacement d’origine
4. Ouvrir la base de nouveau avec la commande « startup »
RQ: en cas de problème « startup force »
Si non essayer avec la commande suivante en utilisant le fichier
d’initialisation ‘init.ora’
Startup mount pfile=’
C:\oracle\product\10.2.0\admin\orcl2\pfile\init.ora.01720141
64111’;
1-65
SAUVEGARDE A CHAUD
Pour faire une sauvegarde à chaud (sur une base ouverte, il est indispensable d’activer
le mode ARCHIVELOG).
Pour cela, nous allons commencer par activer le mode ARCHIVELOG sur notre base qui
est fermée.
//////En cas de plusieurs bases de donnéesC:\ SET ORACLE_SID=orcl////
Activer le mode ARCHIVELOG :
SQL> CONNECT / AS SYSDBA;
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
1-66
SAUVEGARDE A CHAUD
Sous SQL PLUS :
SQL> SELECT name, log_mode FROM v$database;
Exemple de vérification du mode ARCHIVELOG :
Une fois que le mode ARCHIVELOG est activé, nous pouvons enfin commencer notre
sauvegarde sur Base ouverte !
Le principe étant de lancer un point de sauvegarde avec la commande ALTER
DATABASE BEGIN BACKUP
Ensuite, il faut copier manuellement tous les fichiers qui constituent notre base de
données (comme pour une sauvegarde à froid).
Une fois que nous avons fini de copier tous les fichiers, on arrête le point de
sauvegarde avec la commande ALTER DATABASE END BACKUP.
1-67 67
Exemple de vérification du mode ARCHIVELOG : Sauvegarde à chaud Une fois que le mode ARCHIVELOG est activé, nous pouvons enfin commencer notre sauvegarde sur Base ouverte ! Le principe étant de lancer un point de sauvegarde avec la commande ALTER DATABASE BEGIN BACKUP Ensuite, il faut copier manuellement tous les fichiers qui constituent notre base de données (comme pour une sauvegarde à froid). Une fois que nous avons fini de copier tous les fichiers, on arrête le point de sauvegarde avec la commande ALTER DATABASE END BACKUP. ALTER TABLESPACE NomDuTABLESPACE BEGIN BACKUP Ensuite, il faut copier manuellement les fichiers (*.DBF) qui composent le TABLESPACE que nous voulons sauvegarder. Une fois que nous avons fini de copier tout le TABLESPACE, on arrête le point de sauvegarde avec la commande : ALTER TABLESPACE NomDuTABLESPACE END BACKUP. Et voilà, notre TABLESPACE est maintenant sauvegardée.
1-68
SAUVEGARDE A CHAUD
En cas de problème :
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database recover automatic
SQL> alter database open
1-69
SAUVEGARDE A CHAUD
EXPORT/IMPORT DE TABLES
CONNECT / AS SYSDBA
CREATE OR REPLACE DIRECTORY test AS ‘C:/export';
GRANT READ, WRITE ON DIRECTORY test TO scott;
Grant exp_full_database, imp_full_database to scott;
C:\> expdp scott/tiger@orcl tables=EMP,DEPT directory=TEST
dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log
C:\> impdp scott/tiger@orcl tables=EMP,DEPT directory=TEST
dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log
1-70
expdp scott/tiger@orcl schemas=SCOTT directory=TEST
dumpfile=SCOTT.dmp logfile=expdpSCOTT.log
impdp scott/tiger@orcl schemas=SCOTT directory=TEST
dumpfile=SCOTT.dmp logfile=impdpSCOTT.log
EXPORT/IMPORT DE SCHEMA
1-71
expdp system/password@orcl full=Y directory=TEST
dumpfile=DB10G.dmp logfile=expdpDB10G.log
impdp system/password@orcl full=Y directory=TEST
dumpfile=DB10G.dmp logfile=impdpDB10G.log
EXPORT/IMPORT DE BASE COMPLETE
1-72
SAUVEGARDE AVEC RMAN
Démarrer > Executer > cmd
SET ORACLE_SID=ORCL
sqlplus / nolog
SQL> CONNECT / AS SYSDBA
SQL> SHUTDOWN IMMEDIATE;
SQL> EXIT
SET ORACLE_SID=ORCL
RMAN target /
RMAN> STARTUP MOUNT;
RMAN> BACKUP FULL DATABASE;
RMAN> ALTER DATABASE OPEN;
RMAN> EXIT
A travers cet exemple, on constate que RMAN dispose des droits
permettant de stopper ou démarrer une base !
1-73
SAUVEGARDE AVEC RMAN
Etape 2 : Retournons dans SQL PLUS
Démarrer > Executer > cmd
SET ORACLE_SID=DB1
sqlplus / nolog
SQL> CONNECT TEST/TEST
SQL> TRUNCATE TABLE T1;
SQL> DROP TABLE T3;
Oups ! je voulais faire le contraire !!
Vite passons en mode panique :
SET ORACLE_SID=DB1
SQL> CONNECT / AS SYSDBA
SQL> SHUTDOWN IMMEDIATE;
1-74
SAUVEGARDE AVEC RMAN
Etape 3 : On stoppe le mode panique et on se souvient qu'on avait pris le temps
de réfléchir pour palier à ce genre de soucis
Démarrer >Executer > cmd
SET ORACLE_SID=DB1
RMAN target /
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
Si tout se passe bien, un petit message qui indique "Fin de restore dans
DD/MM/YY"
RMAN> QUIT
Encore un petit effort,
SET ORACLE_SID=DB1
sqlplus / nologSQL> CONNECT / AS SYSDBA
SQL> RECOVER DATABASE UNTIL CANCEL;
La vous recevez quelques insultes de notre ami ORACLE.
Tapez tout simplement et sans trembler CANCEL puis
SQL> ALTER DATABASE OPEN RESETLOGS;
Et la oh magie, un message indiquant "Base de données modifiée«
1-75
Sauvegarde à chaud avec RMAN
rman target sys/mdp@baseCible
ou
RMAN> connect target sys/mdp@baseCible
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
La restauration complète d’une base de données s’effectue de la manière
suivante :
RMAN> STARTUP FORCE MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
Notons de suite que pour effectuer cette opération la base doit être en mode
MOUNT (montée).
1-76
MULTIPLEXAGE DES FICHIERS DE CONTROLE
Le fichier de contrôle est un élément crucial de la base de données Oracle. Il
contient de nombreuses informations importantes à propos de votre base : son
nom, le chemin vers les fichiers de données, le chemin vers les RedoLogs, etc…
La problématique.
Avec un fichier de contrôle corrompu ou inexistant, il nous sera impossible de
démarrer complétement votre base. Il est en effet nécessaire pour passer de
l’étape NOMOUNT à MOUNT, afin qu’Oracle sache localiser les fichiers de
données et les RedoLogs.
La solution pour pallier à toute éventualité (erreur humaine, crash disque, etc…)
: multiplexer le fichier de contrôle (control file). Oracle recommande d’avoir au
moins deux fichiers de contrôle, chacun sur un disque différent.
Pour afficher les noms des fichiers de contrôle on utilise :
Sql> show parameter control_files
Sql> select name from v$controlfile;
En cas de problème consulter :’
C:\oracle\product\10.2.0\admin\orcl\bdump\alert_orcl’
1-77
MULTIPLEXAGE DES FICHIERS DE CONTROLE
CRÉATION D’UN SPFILE À PARTIR D’UN PFILE (vérifier l’existance du spfile):
Create spfile from pfile=’
D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.0172014174226’;
Première étape, modifier le paramètre CONTROL_FILE du fichier SPFILE (fichier
de paramètre serveur). On va y indiquer les différents emplacements de notre
actuel et futur fichier de contrôle.
Sql> alter system set
control_files='C:\oracle\product\10.2.0\oradata\orcl\control01.ctl' scope=spfile;
1-78
MULTIPLEXAGE DES FICHIERS DE CONTROLE
CRÉATION D’UN SPFILE À PARTIR D’UN PFILE à partir du fichier pfile (parameter
file) (vérifier l’existance du spfile):
Create spfile from pfile=’
D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.0172014174226’;
1-79
GESTION DES FICHIERS DE DONNEES (TABLESPACES)
Création de tablespace :
Create tablespace ‘nom de table’
Datafile ‘on donne le chemin d’accès’
Size ‘taille de table’
Autoextends ‘on/off’ ;
Création de tablespace temporaire :
La création de la tablespace temporaire :
Create tomporary tablespace ‘nom’
Tempfile ‘chemain’
Size ‘taille de tablespace’
Autosize ‘on/off’ ;
Gestion des utilisateurs :
Create user nom_user
Identified by mot_passe
Default tableSpace nom_tableSpace
Temporary tablespace nom table tomporaire
Les droits :
Grant connect, resource to nom_utilisateur;
1-80
GESTION DES FICHIERS DE DONNEES (TABLESPACES)
Création de tablespace :
CONNECT CREATE SESSION
RESOURCE CREATE CLUSTER, CREATE INDEXTYPE,
CREATE OPERATOR, CREATE PROCEDURE,
CREATE SEQUENCE, CREATE TABLE,
CREATE TRIGGER, CREATE TYPE
DBA Most system privileges, several other roles.
Do not grant to nonadministrators.
1-81
FICHIERS JOURNAUX
Oracle utilise les fichiers redo pour être sûr que toute modification effectuée par
un utilisateur ne sera pas perdue s'il y a défaillance du système. Les fichiers redo
sont essentiels pour les processus de restauration. Quand une instance s'arrête
anormalement, il se peut que certaines informations dans les fichiers redo ne
soient pas encore écrites dans les fichiers de données. Oracle dispose les
journaux redo en groupes.
Les fichiers redo doivent être placés sur des axes différents et des disques très
rapides.
Chaque groupe a au moins un fichier redo. On doit avoir au minimum deux
groupes distincts de fichiers redo (aussi appelés redo threads), chacun contient
au minimum un seul membre. Car, si l'on n'a qu'un seul fichier redo, Oracle
ecrasera ce fichier redo et on perdra toutes les transactions.
Chaque base de données à ses groupes de fichiers redo. Ces groupes,
multiplexés ou non, sont appelés instance du thread de redo. Dans des
configurations typiques, une seule instance de la base accède à la base Oracle.
Ainsi, seulement un thread est présent. Dans un environnement RAC, deux ou
plusieurs instances accèdent simultanément une seule base de données et
chaque instance à son propre thread de redo.
1-83
FICHIERS JOURNAUX
C’est quoi les Redo-log (Fichiers de journalisation)
Dans une base de données Oracle, toutes les transactions sont enregistrées
dans des fichiers redo-log. Ce sont ces fichiers qui permettent une restauration
en cas de panne de la base de données ou par exemple en cas d’arrêt brutal
d’un serveur.
Ces fichiers sont très importants pour la sécurité de la base ainsi que pour sa
performance. Les redo-log sont organisés en groupe et sont écrits de façon
circulaire.
Nous avons 2 groupes au minimum composés au minimum d’un membre.
Lorsque le premier groupe est plein, il y a un SWITCH (basculement) pour le
passage au deuxième groupe. Oracle écrase les données du premier groupe,
lorsqu’il a fini son tour circulaire.
C’est le processus LGWR (LOGWRITER) qui écrit dans les redo.
Il existe deux modes de fonctionnement dans Oracle pour la gestion
des fichiers de journalisation.
Le mode NOARCHIVELOG (par défaut)
Pas d’historique de journalisation (les fichiers sont périodiquement écrasés
Le mode ARCHIVELOG
Conserve les fichiers de journalisation dans des archives.
1-84
FICHIERS JOURNAUX
Pour créer un nouveau membre de fichier redo d'un groupe existant, on utilise la
commande ALTER DATABASE ADD LOGFILE MEMBER. Dans l'exemple suivant
on ajoute un nouveau membre au groupe de redo numéro 1 :
ALTER DATABASE ADD LOGFILE MEMBER
‘C:\oracle\product\10.2.0\oradata\orcl\redo11.log‘ TO GROUP 1;
Création de groupe:
On peut spécifier le numéro qui identifie le groupe en utilisant la clause GROUP :
ALTER DATA BASE ADD LOGFILE GROUP4
('C:\oracle\product\10.2.0\oradata\orcl\log04.log’,
'C:\oracle\product\10.2.0\oradata\orcl\log14.log ')
SIZE 500K;
Suppression de groupe
ALTER DATA BASE DROP LOGFILE GROUP 4;
SUPPRESSION DES MEMBRES DE FICHIERS REDO
ALTER DATA BASE DROP LOGFILE MEMBER '
'C:\oracle\product\10.2.0\oradata\orcl\log04.log ';
1-85
Difference between SYSDBA and SYSOPER:
SYSOPER:-
SYSOPER privilege allows operations such as:
Instance startup, mount & database open ,
Instance shutdown, dismount & database close ,
Alter database BACKUP, ARCHIVE LOG, and RECOVER.
This privilege allows the user to perform basic operational tasks
without the ability to look at user data.
SYSDBA:-
SYSDBA can do more than start/stop the database. It has a lot more functionality that
sysoper (Operator mode) which is normally used for basic database functions such as
start/stop.
SYSDBA privilege includes all SYSOPER privileges plus full system privileges
(with the ADMIN option), plus 'CREATE DATABASE' etc
This is effectively the same set of privileges available when
previously connected INTERNAL.
SYSDBA and SYSOPER are system privileges and don't misunderstand with DBA.DBA
is a role which includes all system privileges excluding sysdba and sysoper.
sysdba and sysoper can be granted to user for administrative tasks by sys user.