diff --git a/Cours Admin. Bases de données/Cours G. Noël.md b/Cours Admin. Bases de données/Cours G. Noël.md new file mode 100644 index 0000000..71cd715 --- /dev/null +++ b/Cours Admin. Bases de données/Cours G. Noël.md @@ -0,0 +1,202 @@ +Cours G. Noël +======================== +*04/05/2018* + +## Oracle + +### Types de données + +* Caractères + * Varchar2 + * NVarchar2 (Unicode) +* Numérique + * Number + * `Binary_float / Binary_double` +* Date + * Date + * Timestamp +* RowID + * RowID (adresse d'un tuple) + +### Compression de données + +On peut pas mettre tous les textes dnas les tables, ce serait énorme + +* Compression standard : +Sorte de zip +Transparent pour les applis + +* Compression avancée +`ALTER TABLE toto ROW STORE COMPRESS ADVANCED` + + +### Cluster de tables + +Tables distinctes qui partagent une colonne commune. Elles stockent alors les données dans les mêmes blocs. +Ça vient du fait qu'il faut éviter la redondance mais pourtant elle peut être utile pour éviter de faire des jointures. +=> Cluster de table : au lieu de stocker dux fois la data on la stocke une fois physiquement dans une colonne qui sera utilisée par plusieurs tables. + +#### Avantages inconviénients + +Les + + +* I/O réduits pour les disques + +#### Cluster indexé + +cluster qui utilise un B-Tree + + +### SYS et SYSTEM + +Deux schémas spécifiques + +SYS = compte administratif contient dictionnaire de données (données statiques utilisées dans tâches administratives) +Ne doit pas être modifiée par l'utilisateur ! + +SYSTEM = compte système (moins impostant que SYS). Contient tables d'information, utiles aux options et plugins Oracle. On passe plutôt par ce compte pour les outils du genre pour éviter de tout fusiller + +### Les index + +Index : Structure de données qui permet de retrouver la bonne donnée dans une table +Évite de devoir faire un ful scan +Cré + +principal index : B-Tree (et ses cousins du même genre de nom) + +#### B-Tree + +Arbre le plus souvent utilisé +B veut dire quelque chose qu'il a expliqué au niveau structure, les liens se font fraiment en bout d'arbre + +#### Autres structures + +##### Le bitmap +Un grand champ avec des 1 et 0 pour dire y a ou y a pas. +Indique où se trouve la donnée, proche du système de hashage + +##### Basé sur fonction +Très rare, problème: trouver bonne fonction + +##### Tables organisées par index +données directement dans l'index. + + +### Dictionnaires de données + +Tables en lectures seule avec des infos : + +* Objets schémas de BD +* Volume utilisé par les objets schémas +* nom, rôle set privilèges des utilisateurs +* modifications lors de DDL + +On va avoir plusieurs tables dont les noms vont commencer par : + +* DBA_ : tous les objets +* ALL_ : objets pour lesquels l'utilisateur a le privilège +* USER_ : Objets dont l'utilisateur est le propriétaire + +### Vues de performances Dynamiques + +Changent avec état / activité de la base (genre nombre de requetes balancées dnas la dernières heure, nb personne actuellement connectées...) +on a avec ça l'utilisation actuelle de la base. Utile à admin, pas à user + +### Instance et stockage physique + +On travaille en mémoire (instance) mais on stocke sur disqu (data storage) +=> Le boulot d'Oracle est justement de gérer le passage de l'un à l'autre. + +#### Stockages physiques + +Plusieurs types de fichiers : +: on note les data à l'intérieur +* Data files (.dbf) +Lié aux tablespaces +Contient les données +* Control files (.ctl) : qui où quoi comment ? +Fichiers de configuration de la base +Fichiers de contrôle d'intégrité au lancement +* Online redo Log +Historique des modifications effectuées +Journal des transactions + +#### SP - où sont stockés les fichiers ? + +Oracle c'est limite un OS. +Oracle ASM : il devient un Logical Volume Manager, on donne des volumes à Oracle qui va les gérer, ça permet notamment de faire du raid logicieln, duplic.... + +On peut aussi laisser l'OS (Unix/Linux) gérer + +Dernière option : Cluser File System. +Dans ce cas : Oracle RAC. Il émule un SGF partagé sur un réseau, qui permettra par exemple l'accès concurrent à un fichier sur le disque. +Offre possibilité de redondance... + +##### Oracle ASM + +C'est comme du LVM (techniquement: un LVM géré par Oracle) +Automatic Storage Mode +Permet de distribuer les données sur plusieurs volumes, les fusionner, dupliquer... +Ré-équilibrage automatique de la distribution entre les différents volumes + +#### Data file sous Oracle + +Ne jamais perdre le control file. + +Tablespace : plusieurs datafile : dedans plusieurs tables : dedans plusieurs indexs. +Deux principaux types de données qu'on va trouver dans un tablespace + +Quand on crée un data file on spécifie : + +* Tablespace asscié +* taille (initialisé par défaut à cette taille) +* l'auto extent (que faire quand fichier ititial plein ?) + +#### Control file sous Oracle + +Ils sont à minima dupliqués. Il faut les mettre sur fichier distant. +Ne jamais les paumer, putain. Ils sont essentiels au bon fonctionnement d'Oracle. Spécifient ou truver les autres fichiers. Liés à une base de données + +Infos dans control file : + +* Nom et ID base de données +* Timestamp de la créationde base +* Localisation des fichiers (Data, Redo...) +* Information sur les Tablespace +* Information de bakcup RMAN (recov Manager) +* SCN des data file pour valider leur pertinance au démarrage. + +#### Online redo log + +Conserve les traces des modifications sur la base, ce sont les journaux (d'où le log...) +Une fois configurés, on y touche plus. +Peuvent être archivés sur long terme : Archived Redo log + +### Structure de l'instance + +SGA (System Gobal Area) +pis dedans d'autres trucs + +#### Parameter file + +Y a SPFILe et PFILE. +En gros y a 30 paramètres obligatoires et basique, et pis plein de trucs optionnels. +Fichiers en .ora + +#### UGA : User Global Area + +Tous les paramètre qui permettre de gérer vie de la session sur le serveur. +Si serveurs partagés, en cluster ou autre, l'UGA doivent être disponibles partout + +#### PGA : Process Global Area + +Buffer mémoire lié à un process et à un utilisateur. Zone de mémoire partagée permettant de récupérer paratèmtre requete, plus ou moins synchronisé avec SGA. + + +#### SGA : System Gobal Area + +Zone de travail principale d'Oracle : + +* une instance, un SGA +* décomposé en plusieurs pools de mémoire : shared pool, large pool, java pool, stream pool... + diff --git a/Cours Admin. Bases de données/Pres AWR.md b/Cours Admin. Bases de données/Pres AWR.md new file mode 100644 index 0000000..f4854a5 --- /dev/null +++ b/Cours Admin. Bases de données/Pres AWR.md @@ -0,0 +1,56 @@ +Pres AWR +======================== + +AWR, c'est quoi ? + +## Une radio : Adventist World Radio + +Mais qu'estce que l'adventisme ? +L'adventisme est un mouvement chrétien lancé au XIXe siècle dans le contexte du Second grand réveil aux États-Unis. L'expression se réfère à la doctrine de la deuxième venue de Jésus-Christ, aussi appelée « le retour du Christ ». + +Pour des raisons éthiques autant que théologiques, les adventistes pratiquent un style de vie sain, avec un régime alimentaire équilibré (souvent végétarien) et l'abstention de toute drogue, alcool et tabac. Les adventistes sont de ce fait devenus des promoteurs de la santé publique. + +http://awr.org/program/fraco_awr/?regional=1 +=> écouter un extrait. + +https://fr.wikipedia.org/wiki/Adventisme + +## Un aérodrôme : Awar + +En papouasie Nouvelle Guinnée, selon code AITA des aéroports + +Mais qu'est-ce que le code AITA ? +Un code IATA de l'aéroport, est un code à trois lettres désignant de nombreux aéroports à travers le monde, défini par l'Association internationale du transport aérien (AITA). Les caractères nettement visibles sur les étiquettes à bagages attachées aux comptoirs d'enregistrement de l'aéroport sont un exemple d'utilisation de ces codes. + +Le besoin d'identification des aéroports est né avec l'apparition des premières lignes commerciales (dans la période 1914-1930). Le système existant du National Weather Service est alors repris aux États-Unis : chaque ville équipée d'une station est décrite par deux lettres, par exemple LA pour Los Angeles ou PH pour Phoenix. +Néanmoins, dès les années 1930, ce système s'est révélé insuffisant et les compagnies aériennes ont alors opté pour un système à trois lettres (offrant 263 = 17 576 combinaisons possibles). +Parmi ces codes peu intuitifs, celui de Kill Devil Hills (Caroline du Nord) mérite d'être signalé : FFA pour First Flight Airport (en), le lieu où les frères Wright effectuèrent le premier vol motorisé contrôlé d'un avion5 le 17 décembre 1903. +https://fr.wikipedia.org/wiki/Liste_des_codes_AITA_des_a%C3%A9roports/ + +## Un outil Oracle : Automatic Workload Repository + +### Présentation + +L’une des grandes forces d’Oracle est la panoplie d’outils qu’il propose, notamment l’Automatic Worload Repository. +Comme son nom l’indique, il collecte et stocke les données sur l’utilisation de la base, autant sur les requêtes effectuées que les ressources utilisées. +C’est évidemment un outil très utile dans le cas d’étude de performance et d’optimisation de base de données. + +http://blog.sedona.fr/2013/10/rapports-oracle-awr/ + +### AWR Features + +The AWR is used to collect performance statistics including: + +* Wait events used to identify performance problems. +* Time model statistics indicating the amount of DB time associated with a process from the `V$SESS_TIME_MODEL` and `V$SYS_TIME_MODEL` views. +* Active Session History (ASH) statistics from the `V$ACTIVE_SESSION_HISTORY` view. +* Some system and session statistics from the `V$SYSSTAT` and `V$SESSTAT` views. +* Object usage statistics. +* Resource intensive SQL statements. + +The repository is a source of information for several other Oracle 10g features including: + +* Automatic Database Diagnostic Monitor +* SQL Tuning Advisor +* Undo Advisor +* Segment Advisor