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

SQL Procédural MySQL Discussion :

Arrêter l'action de mysql


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Par défaut Arrêter l'action de mysql
    Bonjour,

    Suite à une procédure mysql un peu mal codée, j'ai un serveur mysql qui tourne depuis quelques jour à 100% (2 millions de delete aléatoires sur des grosses tables MyISAM).

    Quand je stoppe et relance il continue son activitée. Ce que je voudrait c'est juste qu'il laisse tomber quitte à ce que les tables soient dans un état catastrophique. Je les supprimerai au besoin.

    J'ai cherché dans la FAQ et sur le forum mais j'ai rien trouvé.

    Merci.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Visiblement vous ne maîtrisez pas ce qu'est le principe du transactionnel. En effet une transaction s'effectue en tout ou rien. Soit COMMIT soit ROLLBACK. Tout ordre SQL (SELECT, INSERT, UPDATE, DELETE) est une transaction à part entière. Soit vous la validez soit vous l'annulez. Arrêter le serveur n'y changera rien... La transaction est journalisée (algorithmes mis au point dans les années 80 par Bernstein et Gray http://research.microsoft.com/~gray/WICS_99_TP/ et souvent implémenté par mécanisme ARIES http://citeseerx.ist.psu.edu/viewdoc...0.1.1.109.2480) et lorsque vous relancez le serveur elle reprendra sa marche...

    L'ennui c'est que les algorithmes de journalisation (Write Ahead Log) favorisent le COMMIT pas le ROLLBACK. autrement dit il n'est pas rare qu'un ROLLBACK soit 3 à 10 fois plus lent que le COMMIT pour le même volume transactionnel, en particulier lorsqu'il y a une forte concurrence transactionnelle dans la base !

    Visiblement vous avez encore quelques petites lacunes sur ce qu'est un SGBDR transactionnel !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre émérite Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Par défaut
    J'ai du mal m'exprimer. J'avais bien précisé "quitte à ce que les tables soient dans un état catastrophique". J'ai d'ailleurs trouvé la solution qui consiste (de mémoire) à supprimer les fichiers de log. Je ne sais plus si les tables étaient dans un état viable ou si je les ai aussi supprimé à la main.

    Vous noterez aussi ma précision sur MyIsam a tout son sens, vu que ce n'est pas un moteur transactionnel. Il est donc possible de faire un delete d'un ensemble de ligne, de l'interrompre et de se rendre compte que seulement une partie a été faite. Le rollback est donc toujours immédiat vu qu'il n'est jamais fait.

    Je pense que le problème venait de l'utilisation de la procédure stockée qui était elle bien inscrite dans le log et qui donc était exécutée à chaque redémarrage de mysql. Il faudrait que je regarde de plus près la gestion des procédures par mysql sur ce point.

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

Discussions similaires

  1. [Objective-C] Arrêter une action
    Par Johnny P. dans le forum Objective-C
    Réponses: 0
    Dernier message: 21/05/2013, 18h45
  2. Action automatique sur serveur MySQL
    Par nintendoplayer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/11/2007, 17h49
  3. [AJAX] Appeller une page php en Ajax pour action sur Mysql
    Par Overstone dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 20/07/2007, 18h23
  4. Démarrer/arrêter mysql avec EasyPhp
    Par suya95 dans le forum Administration
    Réponses: 1
    Dernier message: 22/03/2007, 09h14
  5. arrêter serveur mysql
    Par rigel dans le forum Requêtes
    Réponses: 10
    Dernier message: 18/08/2004, 18h49

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