---
# System prepended metadata

title: Untitled

---

## <span style="color:orange">Oracle</span>

## The globale shema 

![](https://i.imgur.com/cYZATJd.png)

> **Gestion de la mémoire SGA :**
>
> - Sa taille est définie par le paramètre :

``````mysql
ALTER SYSTEM SET SGA_MAX_SIZE = ?M;
``````

> **Zone de mémoire partager :** 
>
> - Elle permet de stocker :
> - les dernières instruction SQL exécuter.
> - les dernières définitions de donnes utilisées.
> - Elle est constituée de deux structures mémoire clés liées aux performances :
>  -   Cache "library".
>  -  Cache de dictionnaire de donnes.
> - Sa taille est définie par le paramètre :
``````mysql
ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;
``````

> **Cache "library".**
>
> - Le cache "library" conserve des informations sur les dernières instructions SQL et PL/SQL utilisées.
> - il est compose de deux structures:
> --  la zone SQL partage
> -- la zone PL/SQL partage
>
> - Sa taille dépend du dimensionnement de la zone de mémoire partagée.


> **Cache de dictionnaire de données**
>
>  - La Cache de dictionnaire de donnes contient les dernières définitions de donnes utilisées.
> - il contient des informations sur les fichiers, les tables, les index,les utilisateurs, les colonnes,les privilèges et d'autre objet de la base de données.
> - La taille du cache dépend du dimensionnement de la zone de mémoire partagée.

>**Cache de tampons de la base de données**
>- Ce cache conserve des copies des blocs de donnes extraits des fichiers de données.
>- il est compose de sous-cache indépendants:
>-- DB_CACHE_SIZE :
>-- DB_KEEP_CACHE_SIZE :
>-- DB_RECYCLE_CACHE_SIZE :
>- Il peut être redimensionné dynamiquement :
``````mysql
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
``````
> - Le paramètre DB_BLOCK_SIZE détermine la taille du bloc principal.
``````mysql
 ALTER SYSTEM SET DB_BLOCK_SIZE = ?M;
``````
>**Tampon de journalisation:**
>
>- Il enregistre toutes les modifications apportées aux blocs de données de la base pour récupérer les donnes en cas de panne
``````mysql
ALTER SYSTEM SET LOG_BUFFER=?M;
``````
>**Zone de mémoire Java:**
>
>- La zone de mémoire Java répond aux besoins d'analyse des commandes Java.
>- Elle est nécessaire si Java est installé et utilisé.
>- Sa taille est définie par le paramètre :
``````mysql
ALTER SYSTEM SET JAVA_POOL_SIZE=?M;
``````

>**Zone de mémoire Larg Pool:**
>
>- Zone facultative de la mémoire SGA.
>- Elle réduit la charge de la zone de mémoire partagée.
>- Sa taille est définie par le paramètre: 
``````mysql
ALTER SYSTEM SET LARGE_POOL_SIZE=?M;
``````
---
---

###  Base De Données   
![](https://i.imgur.com/6tb2v18.png)




>**Fichiers de données**
>
>* il contient les données de la base .



> **Fichier de contrôle**
>
> * contiennent les informations nécessaires au maintien et la vérification de l'intégrité de la base de données
> * Ce qui est stocké dans le **fichier de contrôle**:
>   - Date/Heure de création de la base.
>   -  Nom de la base (**DBNAME**).
>   -  L’ID de la base (**DBID**).
>   -  Chemin + Nom Fichiers de la base avec leurs statuts.
>   -  Point de reprise (**Checkpoint**).



> **Fichier de journalisation**
>
> * contiennent l'enregistrement des modifications apportées  à la base  pour récupérer les donnes en cas de panne.

> **Fichiers de paramétrés**
>
> * Le fichier de paramètres définit les caractéristiques d'une instance Oracle. Ce fichier contient, par exemple, des paramètres qui définissent la taille de certaines structures de la mémoire SGA.

> **Fichier de mots de passe**
>
> * Le fichier de mots de passe définit les utilisateurs autorisés à démarrer et à arrêter une instance Oracle.

> **Fichiers de journalisation archivés**
>
> *  sont des copies hors ligne des fichiers de journalisation pour plus de sécurité. 

> **Processus d'arrière-plan**
>
> ![Processus](/home/mahmoud/Pictures/Screenshot from 2019-11-15 21-35-31.png)
>
> * Gèrent et appliquent les relations entre les structures physiques et les structures mémoire.
> * Ils sont de deux types:
>   * Processus d'arrière-plan obligatoires.
>   * Processus d'arrière -plan facultatifs.
> * Les processus d’arriéré plan obligatoire sont :
>   * DBWN : Database Writer.
>   * LGWR : Log Writer
>   * PMON : Process Monitor.
>   * SMON : System Monitor
>   * CKPT   : CheckPoint  
> * Les processus d’arriéré plan facultatifs sont :
>   * RECO : Processus de récupération
>   * QMNn : Advanced Queuing
>   * ARCn : Processus d'archivage
>   * LCKn : RAC Lock Manager–Verrous d'instance
>   * LMON : RAC DLM Monitor–Verrous globaux
>   * LMDn : RAC DLM Monitor–Verrous à distance
>   * CJQ0 : Processus d'arrière-plan Coordinator Job Queue
>   * Dnnn : Répartiteur (Dispatcher)
>   * Snnn : Serveur partagé
>   * Pnnn : Processus esclave "Parallel Query" 

```mermaid
    graph TD
    A(oracle server)-->|autre partie|B(instance)
    A-->|partie physique|c(bd) 
```




---
> ***instance***: 
```mermaid
    graph LR
    ORACLE-->INSTANCE
    ORACLE-->DB
    INSTANCE-->|CONTAIN|SGA
    INSTANCE-->|CONTAIN|PROCESS_D'ARIER_PLAN
```
## SGA: Shared Global Area :+1:  

>La mémoire **SGA** stocke les informations de la base qui sont partagées par les processus de base de données ,elle est constituée de plusieurs structures mémoire ,et  processus d'ariere plan : 
    – **la zone de mémoire partagée**,
    – **le cache de tampons de la base de données**,
    – **le tampon de journalisation**, 

#### SGA shema :ship: 

```mermaid
    graph LR
    SGA-->A(la zone de mémoire partagée)
    A-->D(Cache libriry)
    D-->sql
    D-->pl/sql
    A-->G(Cache de ductionnaire de donnee)
    SGA-->B(le cache de tampons de la base de données)
    SGA-->C(le tampon de journalisation)
    SGA-->E(ZONE DE MEMOIRE JAVA)
    SGA-->F( LARGE POOL)
```

> - tampon == "ختم أو طابع " 
#    

## <span style="color:#0984e3">1. la zone de mémoire partagée</span> :smile: :100: 

```mermaid
    graph TD
    A(la zone de mémoire partagée)-->C(CACHE LIB)
    A-->B(Cache du dictionnaire de données)
    
```

>**Elle permet de stocker :**
– *les dernières instructions SQL exécutées*,
– *les dernières définitions de données utilisées*.
• Elle est constituée de deux structures mémoire clés
liées aux performances :
– Cache "library"

### - (a) Cache "library":

- <span style="color:#6c5ce7"> **Le role:**</span>
**conserve des informations sur les dernières instructions SQL et PL/SQL utilisées**
>exmple: 
```sql=
select * from t;
```
- <span style="color:#6c5ce7">**Composante:** </span>
```mermaid
    graph LR
    A(Cache library)-->B(la zone SQL partagée)
    A-->C(la zone PL/SQL partagée)
```
- <span style="color:#6c5ce7">**La tialle:** </span>**dependent de la taille de ZMP(zone memoire partager)**


### - (b) Cache du dictionnaire de données
- <span style="color:#6c5ce7"> **Le role:**</span>
• Il contient **des informations sur les fichiers, les tables, les index, les colonnes, les utilisateurs, les privilèges et d'autres objets** de la base de données.
• **Au cours de l'analyse, le processus serveur recherche les informations dans le cache du dictionnaire pour résoudre les noms d'objet et valider l'accès**.
• La mise en mémoire cache des informations du
dictionnaire de données **réduit le temps de réponse aux interrogations et aux instructions LMD(language de manipulation de donne) **.

>exmple:
```sql
    la tabele t ,avec tous ces columnes
```
- <span style="color:#6c5ce7">**La tialle:** </span>**La taille du cache dépend du dimensionnement de la zone de mémoire partagée**





• Sa taille (la zone de memoire partager) est définie par le paramètre
  taille  SHARED_POOL_SIZE.
  ```sql 
  ALTER SYSTEM SET SHARED_POOL_SIZE = 20MB;
  ```






## <span style="color:#0984e3">2.Cache de tampons de la base de données</span> :smile: :100: 

- <span style="color:#6c5ce7"> **Le role:**</span>
• Ce cache conserve des copies **des blocs** de
données extraits des fichiers de données.
• Il permet des gains de performances considérables
lors de l'obtention et de la mise à jour de données.
• Il est géré par un algorithme LRU.

- <span style="color:#6c5ce7"> **La taille:**</span>
**DB_BLOCK_SIZE** : var de tempons de la base de donnee 
- <span style="color:#6c5ce7"> **composant:**</span>
il ya des sous-cahe:
> - DB_CACHE_SIZE(!=0 ,intialize by defaut)
> - DB_KEEP_CACHE_SIZE(saved and need to use it again)
> - DB_RECYCLE_CACHE_SIZE(need to clean cache)
> - DB_CACHE_ADVICE(statistique about the server and cache)
> - V$DB_CACHE_ADVICE(like a view in oracle and )
```sql
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
```
## <span style="color:#0984e3">3.Tampon de journalisation</span> :smile: :100: 


- <span style="color:#6c5ce7"> **Le role:**</span>
• Il enregistre toutes les modifications apportées aux
blocs de données de la base.
• Sa principale fonction est la récupération de données.
• Les modifications enregistrées constituent des entrées
de journalisation.
• Les entrées de journalisation contiennent des
informations permettant de reconstruire des
modifications.

- <span style="color:#6c5ce7"> **composant:**</span>
il ne compose de rien

- <span style="color:#6c5ce7"> **taille:**</span>
La taille du tampon est définie par le paramètre
**LOG_BUFFER**.


```sql=
    ALTER SYSTEM SET LOG_BUFFER=?MB
```

## <span style="color:#0984e3">4. Zone de mémoire LARGE POOL</span> :smile: :100:

- <span style="color:#6c5ce7"> **Le role:**</span>
**Zone facultative de la mémoire SGA**
> facultative : اختيارية

• Elle réduit la charge de la zone de mémoire
partagée.
– la mémoire allouée par session au serveur partagé
– les processus serveur d'E/S
– les opérations de sauvegarde et de restauration ou RMAN(**Recovery MANager**)
– les mémoires tampon des messages d'exécution en
parallèle

- <span style="color:#6c5ce7"> **composant:**</span>
rien

- <span style="color:#6c5ce7"> **la taille:**</span>
Sa taille est définie par le paramètre
**LARGE_POOL_SIZE**.


```sql
ALTER SYSTEM SET LARGE_POOL_SIZE=?MB;
ALTER SYSTEM SET SHARED_POOL_SIZE=?MB;


```

## <span style="color:#0984e3">5. Zone de mémoire Java </span> :smile: :100:

- <span style="color:#6c5ce7"> **le role:**</span>
 -- La zone de mémoire Java répond aux besoins
 d'**analyse des commandes Java**.
 >(JDBC) --> Java Database Connectivity
 >(odbc)-->
-- Elle est nécessaire si Java est installé et utilisé.
- <span style="color:#6c5ce7"> **la taille:**</span>
Sa taille est définie par le paramètre
**JAVA_POOL_SIZE**.

```sql
ALTER SYSTEM SET JAVA_POOL_SIZE=?MB;
ALTER SYSTEM SET JAVA_POOL_SIZE=?MB ;
```

------------------------------------

## PGA:
- <span style="color:#6c5ce7"> **le role:**</span>
Mémoire réservée à chaque
processus utilisateur qui se
connecte à une base
de données Oracle.





 
```mermaid
    graph LR
    id1{{structure de process }}-->pu(ps utilisateur)
id1-->ps(ps serveur)

id1-->pa(Ps d'arrier plant)

```




## base de donnes

```mermaid

    graph LR
A[Base de donnes]
A-->f(fichier de parameteres )
A-->g(fichier de mots de pass)
A-->i(Base de donnee oracle)
i-->j(fichier c de donnees)
i-->k(fichier de controlle)
i-->l(fichier de journalisation)
A-->m(fichier de journalisation archives)

```


[Click](https://drive.google.com/file/d/1LBJeOLDl5ZJAjdpt9fnlwaQv9472qI7T/view?usp=sharing)
![](https://i.imgur.com/cYZATJd.png)




- **fichier de donnes**: qui contiennent les donnes de la base
* les fichiers de journalisation(log files): contiennent les enregistrement des modifications apportees a la base de donnees en cas de panne
* les fichier de controle: contiennent les informations necessaires au maintien et a la verification de la base de donnees 
* le fichier de parametres : les caracteristiques d’une instance de la base (exemple :taille de certaines structure de la memoire SGA) 



### the parts of the oracle instance other way (الوحدات المستخدمة لحساب قدر البيانات)

>1--> tablespaces
>2-->segment
>3-->extent
>4-->blocks


```mermaid
    graph TD
    A(Database)-->|containe|b(tablespaces)
    b-->c(segment)
    c-->d(extents)
    d-->e(blocks)
```


# the instance
```mermaid
    graph LR
    A-->sga(sga shared global area)
    A-->pga(pga protected global area)
```



# Rôles et privilèges :astonished: 

### les grants et les privileges:

```sql=
GRANT [systeme_privilege||rôle||ALL PRIVILEGES ] to [user ||PUBLIC||rôle ]
```


tous les privilege:

> grant all privilege to abdo ;(tout les privilege apart de select any dictionary )
> grant system_privilege to abdo ;
> to user:(utilsateure specifique)
>to public (all users)


### creatctino des roles 

```sql=
CREATE ROLE role [NOT IDENTIFIED|| IDENTIFIED BY
password ];
```



connect resource ,dba,connect





----
association  : association


association dirigée

association réflexive