83
1-1 Oracle Database 10g: Administration Workshop

administration BD

Embed Size (px)

Citation preview

Page 1: administration BD

1-1

Oracle Database 10g:

Administration Workshop

Page 2: administration BD

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.

Page 3: administration BD

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.

Page 4: administration BD

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.

Page 5: administration BD

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

Page 6: administration BD

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;

Page 7: administration BD

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.

Page 8: administration BD

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.

Page 9: administration BD

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.

Page 10: administration BD

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)

Page 11: administration BD

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

Page 12: administration BD

1-12

Avec ces trois type de fichier on peut effectuer une

sauvegarde à froid (instance oracle arrêtée).

Etapes de sauvegarde à froid:

Page 13: administration BD

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

Page 14: administration BD

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

Page 15: administration BD

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’;

Page 16: administration BD

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.

Page 17: administration BD

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

Page 18: administration BD

1-18

Fichier de paramètres

(C:\oracle\product\10.2.0\admin\orcl\pfile)

Page 19: administration BD

1-19

Fichier ALERT et TRACE (C:\oracle\product\10.2.0\admin\orcl\bdump)

Page 20: administration BD

1-20

Fichier mot de passe et SPFILE (C:\oracle\product\10.2.0\db_1\database)

Page 21: administration BD

1-21

Logical and Physical Database Structures

Database

Logical Physical

Tablespace Data file

OS block

Segment

Extent

Oracle data block

Schema

Page 22: administration BD

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

Page 23: administration BD

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 ; .

Page 24: administration BD

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’;

Page 25: administration BD

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’;

Page 26: administration BD

1-28

Page 27: administration BD

Copyright © 2005, Oracle. All rights reserved.

Administration

avec Entreprise Manager EM

http://nom_machine:1158/em

Page 28: administration BD

1-30

Page 29: administration BD

1-31

Exemple:Administration creation tablespace

Page 30: administration BD

1-32

Création tablespace:

Page 31: administration BD

1-33

Choisir nom tablespace et ajouter un fichier physique .dbf

Page 32: administration BD

1-34

Page 33: administration BD

1-35

Page 34: administration BD

1-36

Page 35: administration BD

1-37

Recherche des sessions bloquées

Page 36: administration BD

1-38

Recherche des sessions bloquées

Page 37: administration BD

1-39

Affichage de la requête bloquante ALTER SYSTEM KILL SESSION

'139,112' IMMEDIATE

Page 38: administration BD

1-40

Requête bloquante

Page 39: administration BD

1-41

Gestion des utilisateurs

Page 40: administration BD

1-42

Gestion des utilisateurs

Page 41: administration BD

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

Page 42: administration BD

1-44

Utilisation du service isqlplus: http://localhost:5560/isqlplus/

Page 43: administration BD

1-45 45

Configuration de l’utilisateur OS

Page 44: administration BD

1-46 46

Configuration de l’utilisateur OS

Page 45: administration BD

1-47 47

Configuration de l’utilisateur OS

Page 46: administration BD

1-48 48

Page 47: administration BD

1-49 49

Page 48: administration BD

1-50 50

Page 49: administration BD

1-51 51

Page 50: administration BD

1-52 52

Export/import avec EM

Page 51: administration BD

1-53 53

Export/import avec EM

Page 52: administration BD

1-54 54

Export/import avec EM

Page 53: administration BD

1-55 55

Manipulation TP

Page 54: administration BD

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

Page 55: administration BD

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).

Page 56: administration BD

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.

Page 57: administration BD

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.

Page 58: administration BD

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;

Page 59: administration BD

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;

Page 60: administration BD

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’

Page 61: administration BD

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’;

Page 62: administration BD

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’;

Page 63: administration BD

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;

Page 64: administration BD

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.

Page 65: administration BD

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.

Page 66: administration BD

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

Page 67: administration BD

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

Page 68: administration BD

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

Page 69: administration BD

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

Page 70: administration BD

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 !

Page 71: administration BD

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;

Page 72: administration BD

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«

Page 73: administration BD

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).

Page 74: administration BD

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’

Page 75: administration BD

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;

Page 76: administration BD

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’;

Page 77: administration BD

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;

Page 78: administration BD

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.

Page 79: administration BD

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.

Page 81: administration BD

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.

Page 82: administration BD

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 ';

Page 83: administration BD

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.