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 MySQL Discussion :

Verrouillage pendant l'opération de sauvegarde


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    test
    Inscrit en
    Mai 2016
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : test
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2016
    Messages : 347
    Par défaut Verrouillage pendant l'opération de sauvegarde
    bonjour a tous

    j'aurai besoin de lancer une opération du backup d'une base de donnée volumineux à peu près égal a 150G

    du coup j'ai peur d'avoir un verou pendant l'opération du sauvgarde

    je vais utiliser cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump --user=mon_user --password=mon_password --all-databases > fichier_destination.sql
    Qui a une idée comment je peut empêcher le verrouillage pendant l'opération d'importation

    cordialement

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    ça n'est pas possible. C'est par conception... MySQL étant le seul SGBDR à ne pas intégrer un catalogue système, il faut bloquer toutes les tables pour que la sauvegarde soit consistante... Pire encore si quelqu’un fait une commande DDL (CREATE, LATER ou DROP...) pendant le blocage, la transaction de la sauvegarde est terminé comme toutes les autres transactions de tous les utilisateurs....

    MySQL est un outil pour bricoleur. Pour un outil d'entreprise, choisissez Oracle, SQL Server, IBM DB 2...

    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 prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 898
    Par défaut
    Salut à tous.

    Citation Envoyé par NULL008
    Qui a une idée comment je peut empêcher le verrouillage pendant l'opération d'importation
    Comme vous utilisez "MysqlDump", vous devez nécessairement avoir votre SGBDR MySql actif.
    Ce qui rend le SGBDR MySql accessible depuis internet, voire aussi dans le réseau local.

    Si la sauvegarde était physique, la solution consiste à arrêter le SGBDR MySql.

    Pour résoudre votre problème, il faut interdire l'accès des utilisateurs au SGBDR durant la sauvegarde. Il existe plusieurs solution :

    1) S'il y a un compte dans MySql par lequel tous les utilisateurs se connectent, il suffit de changer le mot de passe.
    Verrouiller les tables n'est pas une bonne solution, comme l'indique SQLPRO.

    2) si vous utilisez Apache comme serveur web, les utilisateurs vont accéder par le nom du site.
    Vous pouvez bloquer le virtualhost en mettant "Require local" au lieu de "Require all granted".
    Seul les accès en local, c'est-à-dire par l'adresse IPv4 127.x.y.z et l'adresse IPv6 ::1 pourront se faire.

    3) blocage au niveau du pare-feu du serveur où se trouve hébergé votre serveur MySql.
    Pour cela, il suffit de désactiver la règle Apache !

    4) vous pouvez aussi au niveau de votre box/routeur, interdire dans le NAT, la redirection du flux entrant vers le serveur MySql.

    5) il y aussi dans le niveau de sécurité de votre disque dur où se trouve hébergé le serveur MySql, la possibilité de rendre les accès uniquement en lecture.

    6) si vous aviez Microsoft SQL Server, il existe une commande pour bloquer tous les utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE ... SET SINGLE USER WITH ROLLBACK IMMEDIATE
    Oui, sauf que sous MySql, à ma connaissance, il n'y a pas d'équivalent et c'est dommage.

    Toutes ces solutions sont faisables, à la condition de les connaitre et de savoir les exploiter.
    Mais pour cela, il faut les mettre en place, ce qui selon votre problème, n'a jamais été envisagé.

    Je conseille aussi de faire ce genre d'opération de façon à pénaliser le moins d'utilisateur.
    Disons durant le nuit ou le week-end, mais il est quand même nécessaire de bloquer les utilisateurs.

    @+

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut à tous.


    Comme vous utilisez "MysqlDump", vous devez nécessairement avoir votre SGBDR MySql actif.
    Ce qui rend le SGBDR MySql accessible depuis internet, voire aussi dans le réseau local.

    Si la sauvegarde était physique, la solution consiste à arrêter le SGBDR MySql.

    Pour résoudre votre problème, il faut interdire l'accès des utilisateurs au SGBDR durant la sauvegarde. Il existe plusieurs solution :

    1) S'il y a un compte dans MySql par lequel tous les utilisateurs se connectent, il suffit de changer le mot de passe.
    Verrouiller les tables n'est pas une bonne solution, comme l'indique SQLPRO.

    2) si vous utilisez Apache comme serveur web, les utilisateurs vont accéder par le nom du site.
    Vous pouvez bloquer le virtualhost en mettant "Require local" au lieu de "Require all granted".
    Seul les accès en local, c'est-à-dire par l'adresse IPv4 127.x.y.z et l'adresse IPv6 ::1 pourront se faire.

    3) blocage au niveau du pare-feu du serveur où se trouve hébergé votre serveur MySql.
    Pour cela, il suffit de désactiver la règle Apache !

    4) vous pouvez aussi au niveau de votre box/routeur, interdire dans le NAT, la redirection du flux entrant vers le serveur MySql.

    5) il y aussi dans le niveau de sécurité de votre disque dur où se trouve hébergé le serveur MySql, la possibilité de rendre les accès uniquement en lecture.

    6) si vous aviez Microsoft SQL Server, il existe une commande pour bloquer tous les utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE ... SET SINGLE USER WITH ROLLBACK IMMEDIATE
    Cette commande n'est pas du tout nécessaire (et même peu recommandée) pour faire des sauvegardes sous SQL Server. En effet, toutes les sauvegardes faites par Microsoft SQL Server sont toujours consistantes à chaud, même en cas de modification des données, ajout ou suppression de table, de vues, de procédure, et même en cas de modification d'une structure de table ou ajout/ suppression d'un fichier de la base, car c'est le serveur SQL qui contrôle tout et transactionne tout. De même il ne faut pas réduire le nombre d'utilisateur car SQL Server est capable de faire :

    • plusieurs sauvegardes de la même base en même temps (rarement intéressant sauf si mode différent...)
    • des sauvegardes mutithreadées (une même sauvegarde utilise plusieurs threads pour paralléliser l'exécution et donc aller plus vite)
    • des sauvegardes multifamille (la sauvegarde est envoyée dans plusieurs fichiers pour paralléliser les accès disque et donc aller plus vite)
    • des sauvegardes vers plusieurs destinations(envoyer la même sauvegarde à plusieurs endroits à la fois, par exemple en local et sur un serveur distant)


    Oui, sauf que sous MySql, à ma connaissance, il n'y a pas d'équivalent et c'est dommage.

    Toutes ces solutions sont faisables, à la condition de les connaitre et de savoir les exploiter.
    Mais pour cela, il faut les mettre en place, ce qui selon votre problème, n'a jamais été envisagé.

    Je conseille aussi de faire ce genre d'opération de façon à pénaliser le moins d'utilisateur.
    Disons durant le nuit ou le week-end, mais il est quand même nécessaire de bloquer les utilisateurs.

    @+
    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/ * * * * *

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2016
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 144
    Par défaut
    mais il existe l'option Que pensez vous ?

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 898
    Par défaut
    Salut à tous.

    @ SQLPRO : si j'ai indiqué cette commande, c'est en réponse au blocage des utilisateurs que l'on peut pratiquer sous Microsoft SQL Server.
    A l'inverse de MySql, je sais très bien que l'on peut faire une sauvegarde sous Microsoft SQL Server à chaud.
    Mais le problème de NULL008 n'est pas de mettre en place un verrou, mais bien d'avoir le bon SGBDR pour gérer sa grosse volumétrie.

    @ thierryinfo2012 : Merci ! Je ne connaissais pas ce paramètre.

    @+

Discussions similaires

  1. [2008R2] Problème de collation pendant une opération d'import
    Par NULL008 dans le forum Administration
    Réponses: 1
    Dernier message: 25/09/2017, 15h34
  2. Erreur pendant l'opération switch
    Par NULL008 dans le forum Développement
    Réponses: 7
    Dernier message: 30/06/2016, 00h04
  3. [Toutes versions] l'opération de sauvegarde a échoué
    Par JFDAccess dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/12/2010, 00h01
  4. [VBA-EXCEL] - Effectué une opération après sauvegarde
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/12/2006, 16h36
  5. verrouillage pendant backup journalier avec mysqldump
    Par marcha dans le forum Administration
    Réponses: 4
    Dernier message: 11/08/2006, 14h12

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