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 :

Processus DBWR et Commit


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 154
    Par défaut Processus DBWR et Commit
    Salut tout le monde j'ai encore une question bizaroide ...!!
    Je suis connecté avec le compte HR et execute une instrution suivante
    Et je n'applique pas de commit...

    D'autres utilisateurs en paralélle sont entrain de faire des opérations sur ma BD, et à un moment donné, le processus DBWR ce trouve dans l'obligation d'écrire le contenu du cache de la base de données sur le disque...
    (parceque mon seuil de tampon dirty est atteind... ou il y a pas assez d'espace dans le cache de base de données).
    Cette écriture est-elle équivalent à un commit fait par le SGBD...

    Car si les bloques qui contenaient les nouvelles infos de la table employées sont ecrit sur disque alors cela sigifie que mes données son dans la base... et c'est comme si j'ai appliqué un commit (bizare)

    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut Re: Processus DBWR et Commit
    Citation Envoyé par blids
    Salut tout le monde j'ai encore une question bizaroide ...!!
    Je suis connecté avec le compte HR et execute une instrution suivante
    Et je n'applique pas de commit...

    D'autres utilisateurs en paralélle sont entrain de faire des opérations sur ma BD, et à un moment donné, le processus DBWR ce trouve dans l'obligation d'écrire le contenu du cache de la base de données sur le disque...
    (parceque mon seuil de tampon dirty est atteind... ou il y a pas assez d'espace dans le cache de base de données).
    Cette écriture est-elle équivalent à un commit fait par le SGBD...
    Non.
    Pas de validation sans commit. Tes infos sont écrites en dur dans les redos logs et eventuelement dans les archivelogs mais c'est tout

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pas tout à fait... en fait l'ancienne valeur est écrite dans les rollbacks et le delete est dans les redos (c'est l'ordre DELETE et non les valeurs )... mais l'écriture sur le disque doit juste écrire le bloc dans la table comme libéré mais non dispo...

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut
    oui, tu as raison, je n'étais pas assez précise.
    De plus, si je ne me trompe, sans commit on risque d'avoir au bout d'un certain temps une erreur car les rollbacks ne sont pas libéres (snapshot too old )

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça c'est surtout quand les données de la table doivent être modfiée alors qu'en fait elles sont déjà dans les rollbacks

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 154
    Par défaut
    Mais il y a quand-même des bloques de données modifiés dans DATA BASE Buffer, si j'ai bien compris c'est comme si vous me dites que les bloques données ne seront jamais déplacés en disque du moment qu'il
    y a pas de commit.. même si le cache est plein..!!

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Par défaut
    ben oui, mais c'est ce qui risque d'arriver si quelqu'un fait un un delete from table et que quelqu'un vaux la manipuler derriere Par exemple faire lui aussi un delete from table

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Bon, expliquons en détail ce qui se passe lors du delete :

    - Copie des lignes dans les rollbacks (c'est là que les autres transactions iront lire les données)
    - suppression des lignes dans le tablespace -> en réalité, flagage des blocs comme libre
    - si le cache est plein -> snapshoot too old -> rollback de la transaction -> écriture des rollback dans le tablespace (c'est pourquoi un rollback de delete est si long)
    Sinon, on attend le commit qui supprimera les lignes du rollback

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 154
    Par défaut
    D'accord.. je vois un peu....
    Mais je pense que j'ai besoin de me documenter un peu plus à ce sujet...!!
    Merci à vous deux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Processus paralleles
    Par Lyes dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 11/02/2003, 13h04
  2. 1 variable pour 2 processus
    Par kacedda dans le forum POSIX
    Réponses: 2
    Dernier message: 11/02/2003, 06h32
  3. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18
  4. [VB6] [Système] Tuer un processus courant
    Par mdoyer dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/10/2002, 14h47
  5. Réponses: 2
    Dernier message: 04/10/2002, 09h13

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