IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Votre avis sur la répartition disque Data / Index


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Points : 41
    Points
    41
    Par défaut Votre avis sur la répartition disque Data / Index
    Bonjour,
    Dans mon entreprise nous utilisons VMWARE et une baie Netapp pour les disques.

    La question que je me pose avant la creation d'une nouvelle base de données est de savoir si ca vaut toujours le coup de separer les data les index et les redo voire meme le soft Oracle.

    j'envisag de tout mettre sur un disque D:\App\...

    A votre avis ?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Houlala, vaste sujet.

    Si tu mets tout sur un seul disque et qu'il tombe... plus de base.
    Si tu gères deux disques mais dépendant du même contrôleur, s'il tombe : plus de base.
    Si tu mets deux disques différents, gérés par deux contrôleurs différents mais sur le même serveur, s'il tombe : plus de base.
    etc etc


    Concernant de façon plus précise la séparation des données, index sur des tablespaces différents, voilà ce que j'ai compris; je te fais un copier/coller de ma doc :

    SEPARER DANS DEUX TABLESPACES DISTINCTS LES DONNEES DES INDEX
    Les recommandations usuelles
    Les livres d’administration Oracle conseillent fortement de séparer dans des tablespaces dédiés les données et leurs index, principalement pour des raisons d’administrations.

    Les avantages à séparer des données ou à avoir plusieurs tablespaces de données
    Les performances
    Depuis longtemps il est dit que la séparation données/index sur différents tablespaces, voir disques durs, permet de lutter contre les problèmes de contention lors de l’accès aux disques contenant ce tablespace.

    Néanmoins plusieurs DBA «gourous» du Net (Ask Tom, Donald Burleson) remettent en cause cette affirmation disant que cette raison était pertinente dans les années 80 et 90 mais que l’architecture actuelle des serveurs, les fonctionnalités d’Oracle ont rendu caduc celle-ci :
    http://stackoverflow.com/questions/1...ce-for-indexes
    http://www.dba-oracle.com/t_segregat...ablespaces.htm

    L’administration
    Le tablespace est l’unité de base de nombreuses tâches d’administration.

    Créer un tablespace pour chaque type d’élément (données, index, LOB, Undo, Temp, Système, …) permet de mieux les organiser et garantit une plus grande souplesse dans ces tâches d’administration :
    • Backup/restauration uniquement des données ou index en sélectionnant le tablespace dédié : plus rapide et fichiers de plus petite taille
    • Accès aux données maintenu même si le tablespace des index est en mode offline pour administration
    • Rendre inaccessible une seule application en mettant offline son tablespace et laisser les autres TBS online et leurs applications accessibles : renommer ses fichiers du système d’exploitation, les déplacer…
    • Identification plus simple des E/S ralentissant le système si ce sont des E/S liées aux données ou index
    • Allocation d’extents de différentes tailles pour les tablespace des données et des index
    • Avoir une taille de bloc entre tablespaces différente : par défaut les TBS ont une taille de bloc du paramètre DB_BLOC_SIZE mais on peut l’augmenter pour gérer les TBS des LOB (16/32Ko)
    • Mettre un TBS de données en mode Read only :
    o pour le protéger de modifications intempestives ou erronées : par exemple un TBS de données Infocentre. Making a tablespace read-only prevents updates on all tables in the tablespace, regardless of a user's update privilege level.
    o éliminer le besoin de faire des backup réguliers sur des données qui ne changent pas et donc avoir un backup de la base plus petit
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je vais nuancer un peu, même si fondamentalement je suis d'accord avec tout ce qu'à écrit Ikebukuro.

    La question du backup du tablespace d'index se pose, car entre le coût du transfert réseau et du stockage, il peut être judicieux de reconstruire les index après restauration.

    Dans ma précédente boîte, où on avait un beau serveur Oracle, on avait en stockage : 1 To de SSD sur PCIe, 8 To de SSD SATA et 60 To de HDD.
    PCIe : TEMP / UNDO
    SSD : les index (dans un seul TBS) et quelques tables dans un TBS "fast"
    HDD : le reste des données séparées dans plusieurs tablespaces effectivement pour faciliter la gestion des sauvegardes / restauration.

    Si on avait eu 80 TO de SSD sur PCIe on aurait sûrement fait autrement, mais il y a aussi une logique économique à tenir.

    Je précise par ailleurs qu'il s'agit d'un serveur DWH, avec moins d'index qu'un serveur à vocation OLTP.

  4. #4
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Tiens, je l'avais oublié celle-là : comme dit Waldar, il est mieux de mettre les tablespaces UNDO et TEMP sur un disque dur très très rapide car ce sont eux qui bossent le plus dans une base Oracle de type OLTP.
    Ces tablespaces travaillent tout le temps tout le temps tout le temps
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Je n'ai presque jamais vu d'interêt à separer les tables de leurs index. Raisons de performances: aucune. Les deux on les mêmes types d'I/O (random et sequentiel) et jamis en concurrence. Et je n'ai jamais compris l'idée de ne pas avoir à restaurer les index "car on peut les reconstruire". Qui peut prédire le temps de création des index? Et être sûr que les performances seront les mêmes (clustering factor, pctfree)? Et etre sûr d'avoir le l'espace nécessaire dans les tempfiles? Le but des backups physiques et d'avoir un temps de restore prédictible, et un résultat de restore identique physiquement à ce qu'il y avait avant le crash. ce n'est possible qu'avec une copie physique de toute la base - table et index.
    Le but des tablespaces est de regrouper ce qui va fonctionellement ensemble (fortement couply, mêmes besoins de disponibilité), et de séparer ce qui peut avoir des contraintes différentes (gros volume, read-only, disponibilité moins critique,...). Donc séparer les applis, oui. Mettre à part les grosses tables, oui. Les partitions 'froides' oui. Mais souvent les index vont avec leurs tables: même besoin de dispo, même comportement en modification, lus tout seuls ou en alternance mais jamais en même temps...
    Bien sûr il peut y avoir aussi des raisons de le faire. Pour mieux faire réfléchir au besoin de séparer, on peut se demander où mettre les vues matérialisées (des tables mais avec des donnles redondantes comme les index), ou mettre les IOT (des index, mais qui contiennent les données primaires),...

    SSD : les index (dans un seul TBS) et quelques tables dans un TBS "fast"
    Dans l'accès par index, ce n'est pas le INDEX RANGE SCAN qui a besoin d'une latence moindre mais le TABLE ACCESS BY ROWID qui va chercher des blocs éparpillés. C'est plutôt ces tables que je mettrais sur SSD. Je ne dis pas ca pour dire que c'est bien ou pas bien mais juste qu'il faut se méfier des idées trops simples et trop génériques.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par pachot Voir le message
    Je n'ai presque jamais vu d'interêt à separer les tables de leurs index.
    Idem ! Je dis toujours que ça ne fait pas de mal, mais que ça n'a aucun intérêt.

    En revanche, je ne te suis pas sur l'argument du clustering factor.
    Celui-ci dépendant uniquement de la position des différentes lignes dans la table, la reconstruction de l'index n'aura aucune incidence.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  7. #7
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    En revanche, je ne te suis pas sur l'argument du clustering factor.
    Celui-ci dépendant uniquement de la position des différentes lignes dans la table, la reconstruction de l'index n'aura aucune incidence.
    Je ne pensais pas à des reconstructions d'index. Juste le fait que la table sur SSD peut être utile sur des access frequents en INDEX RANGE SCAN + INDEX ACCESS BY ROWID dans le cas où le clustering factor n'est pas optimal car c'est là qu'on voit le plus d'accès random pour lesquels la latence est critique.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par pachot Voir le message
    Et je n'ai jamais compris l'idée de ne pas avoir à restaurer les index "car on peut les reconstruire"
    C'est une logique économique, liée au contexte "datawarehouse" de ce serveur.
    Dans mon cas on pouvait en général rattraper les données sources depuis le serveur front office.

    En trois ans il n'y a du avoir que quelques restaurations partielles sur des tables supprimées "accidentellement" par leurs créateurs.
    Là on est content d'avoir des tablespaces pas trop gros

    Citation Envoyé par pachot Voir le message
    Je ne dis pas ca pour dire que c'est bien ou pas bien mais juste qu'il faut se méfier des idées trop simples et trop génériques.
    J'avoue, je n'ai pas fait le test à l'époque, je suis volontiers ton avis.
    Nos cas d'usage classiques c'était principalement du FULL TABLE SCAN. On aurait bien aimé avoir que du SSD a minima, mais ce n'était pas le cas (les coûts, toujours eux).
    Les index servaient à garantir les contraintes mais n'étaient quasiment jamais utilisés ; sauf pour quelques traitements où la parallélisation n'est pas native - dans les requêtes récursives notamment.

  9. #9
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 591
    Points
    591
    Par défaut
    Citation Envoyé par lepierot Voir le message
    Bonjour,
    Dans mon entreprise nous utilisons VMWARE et une baie Netapp pour les disques.

    La question que je me pose avant la creation d'une nouvelle base de données est de savoir si ca vaut toujours le coup de separer les data les index et les redo voire meme le soft Oracle.

    j'envisag de tout mettre sur un disque D:\App\...

    A votre avis ?

    Merci
    Est ce que tes disques seront des disques virtuels? C'est à dire issue d'un datastore ou bien pourras tu avoir plusieurs LUN différentes? Dans le 1er cas, que tu sépare ou pas, ca ne changera rien vu que tous les I/O iront sur un seul disque (le datastore).
    Sois dit en passant, avez vous la licence adéquate pour faire tourner de l'Oracle sur VMWare? (Je demande car pas mal de personnes ne sont pas au courant des règles de licensing à ce sujet).

    Pour certains de nos clients nous avons plusieurs LUN physiques en ASM ou nous séparons les DATA, les REDO et la FRA pour que les uns ne marchent pas sur les autres mais on ne séparent pas DATA et INDEX.
    Oracle DBA OCM 11g, 12c
    OCP 11g, 12c
    OCE RAC, SQL

  10. #10
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par IndianaAngus Voir le message
    nous séparons les DATA, les REDO et la FRA pour que les uns ne marchent pas sur les autres mais on ne séparent pas DATA et INDEX.
    Oui, c'est indispensable de séparer FRA et DATA . Pas pour des raisons de performances, mais parce que l'un sert à réparer l'autre en cas de problème. REDO peut être séparé pour avoir un mirroring différent et pour le mettre sur des disques avec moins de capacité mais aussi moins de latence.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  11. #11
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Et ne pas oublier aussi, pour des raisons de sécurité, de séparer sur différents disque durs, les membres d'un même groupe de Redo logs.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  12. #12
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Idem ! Je dis toujours que ça ne fait pas de mal, mais que ça n'a aucun intérêt.
    Et si tu veux faire une sauvegarde que de tes données? En cas de crash de la base, on reconstruira les index mais imagine qu'on fasse 100 sauvegardes de Tables+Index avant d'avoir un crash? Si on avait fait 100 sauvegardes de Tables, on aurait économisé du temps et de l'espace disque.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  13. #13
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Et si tu veux faire une sauvegarde que de tes données?
    On effectue des sauvegardes en vue d'une éventuelle restauration, c'est à dire une remise en état de la base avec ses pleines fonctionnalités, notamment de performances. Or sans les index, les perfs, hein....
    Ladite restauration doit en général être menée en temps limité (le fameux RTO), ce temps d'interruption étant contractualisé.
    Si vous ne sauvegardez pas les index et devez les reconstruire, êtes-vous toujours dans les délais contractuels ?

    De plus, si l'espace de stockage dédié aux sauvegarde est une contrainte forte, vous pouvez notamment :
    - faire des sauvegardes RMAN incrémentielles (possible même en édition standard)
    - utiliser la compression (celle d'Oracle ou à un autre niveau)
    - utiliser la déduplication éventuellement offerte par votre système de stockage.

    Donc pour moi votre scénario est purement théorique, en tout cas dans le contexte transactionnel.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  14. #14
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    C'était effectivement une remarque théorique et pas pragmatique
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

Discussions similaires

  1. Donnez votre avis sur les articles de Developpez.com
    Par Geronimo dans le forum C++Builder
    Réponses: 13
    Dernier message: 14/01/2007, 22h00
  2. Votre avis sur mes index
    Par grinder59 dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2006, 10h56
  3. Donnez votre avis sur les articles de Developpez
    Par Anomaly dans le forum Contribuez
    Réponses: 37
    Dernier message: 29/05/2006, 21h48
  4. [Index] votre avis sur 1 champ
    Par stailer dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 21/07/2004, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo