Soutenez-nous
Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 4 1234 DernièreDernière
Affichage des résultats 1 à 20 sur 61
  1. #1
    Rédacteur/Modérateur
    Avatar de fadace
    Homme Profil pro Fabien Celaia
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    3 926
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Celaia
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 3 926
    Points : 14 381
    Points
    14 381

    Par défaut Le comparatif : vos avis nous intéressent

    Bonjour,

    Vous connaissez sans doute déjà le comparatif des SGBDR.

    Cet article a pour but d'aider au choix d'un SGBDR. Il se veut impartial, mais sur un sujet si sensible aux "Guerres de religions", il est difficile de se faire un avis sans être "pollué" par des querelles partisanes.

    Je vous propose donc, en enfilade, de relever les points positifs, mais surtout négatifs que vous rencontrer à l'usage de vos divers SGBDR.

    Je l'annonce d'entrée de jeu afin de ne pas vous faire perdre de temps et d'éviter du stress à tout le monde, et de la modération intempestive:

    1. il y a des débats déjà actifs sur les divers forums. Evitez donc d'en ouvrir un ici. La question ici n'est pas de défendre un produit, mais de relever ses faiblesses et ses richesses.
    2. Tous les points relevés seront analysés. Au besoin, le comparatif sera enrichi ou/et corrigé. Le comparatif reste cependant un article ayant un auteur et des contributeurs. Après réflexion, c'est le seul moyen de garder une ligne rédactionnelle dans ce type d'article.
    3. Il est plus difficile de relever les points négatifs d'un SGBDR que les points positifs (annoncés haut et forts par les éditeurs). Nous attendons donc de vous des critiques arguments étayés.

    D'avance merci de vos contributions
    Sr DBA Oracle / Sybase / MS-SQL / MySQL / DB2 / Postgresql / Informix
    Administrateur SAP
    Mes articles

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 088
    Points : 26 822
    Points
    26 822

    Par défaut

    MS SQL Server 2008 :

    Avantages :
    Niveau de SQL très près de la norme SQL et implémente presque toutes les possibilités de SQL.
    IHM très complète facilitant la production
    Administration aisée et très complète

    Inconvénients :
    Mono plateforme (Windows only)
    Manques au niveau du langage SQL :
    • Pas de contraintes d'unicité multi null
    • Pas d'implémentation totale du Row Value Constructor
    • Pas de fenêtre avancée dans les fonctions de fenêtrage (Cause SQL Window)


    Compétiteur d'Oracle ou IBM DB2

    Pour mySQL je dirais que son inconvénient qui me parait le plus grave est son incapacité à effectuer des sauvegardes cohérente à chaud.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Rédacteur/Modérateur
    Avatar de fadace
    Homme Profil pro Fabien Celaia
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    3 926
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Celaia
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 3 926
    Points : 14 381
    Points
    14 381

    Par défaut

    Merci SQLPro/Fred

    Pour les avantages, ils étaient déjà intégrés au comparatif
    J'ai ajouté qq inconvénients, mais il faudrait en faire de même pour les autres bases.

    Pour Mysql, il semblerait que les sauvegardes à chaud soient maintenant possibles... J'avais ça en inconvénient, mais je l'ai ôté...

    J'en profite pour annoncer que j'ai passé la rubrique MySQL et JavaDB sous Oracle, puisque Sun vient de se faire "gober"...
    Sr DBA Oracle / Sybase / MS-SQL / MySQL / DB2 / Postgresql / Informix
    Administrateur SAP
    Mes articles

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 088
    Points : 26 822
    Points
    26 822

    Par défaut

    ha non, là je suis pas d'accord. Les sauvegardes à chaud MySQL existent mais ne permettent en aucun cas d'assurer l'intégrité de la base... La sauvegarde se faisant table par table sans les transaction on peut donc se retrouver avec un facture sans le client alors qu'il existe bien une contrainte d'IR...

    Donc, pour moi c'est pas une vraie sauvegarde à chaud !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  5. #5
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    810
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 810
    Points : 854
    Points
    854

    Par défaut

    Je crois que pour MySql, il faudrait mettre entre parenthèse le moteur de stockage dont on parle. InnoDB a bien le backup à chaud (avec les 4 modes de transactions). Il me semble que c'est le seul moteur de mysql qui a cela (le seul qui en ait besoin?).

    Alors que la recherche full text, il n'y a que myisam.

    Souvent dans les benchs on parle de mysql-myisam et mysql-innodb à part. Cela va empirer dans les prochaines années, il y a déjà plusieurs version de innodb, des moteurs comme infobright qui n'ont rien à voir ...

  6. #6
    Rédacteur
    Avatar de orafrance
    Inscrit en
    janvier 2004
    Messages
    15 959
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : janvier 2004
    Messages : 15 959
    Points : 16 736
    Points
    16 736

    Par défaut

    je me permets quelques remarques sur Oracle :
    Prix exhorbitant, tant au point de vue des licences que des composants matériels (RAM, CPU) à fournir pour de bonnes performances
    Il faudrait quand même ajouter qu'il existe une version gratuite et que les instances de test ne requiert pas l'achat de licence

    D'ailleurs, tu écris : SQL Server, MSDE et SQL 2008 Express mais pas : Oracle Lite, Standard/Entreprise, Apex et Oracle express

    Fort demandeur de ressources, ce qui n'arrange rien au point précité, Oracle est bien plus gourmand en ressource mémoire que ses concurrents, ce qui implique un investissement matériel non négligeable. La connexion utilisateur nécessite par exemple près de 700 Ko/utilisateur, contre une petite centaine sur des serverus MS-SQL ou Sybase ASE.
    Note que tu peux configurer la connexion partager (multi-thread server ou MTS ) qui permet d'ouvrir un process pour un pool de connexion.

    Gourmand aussi en espace disques puisque la plupart des modules requièrent leur propre ORACLE_HOME de par le versionning de patches incontrôle
    Ca j'ai pas compris Chaque outil Oracle a son propre HOME c'est ça ? Mais c'est quelques Mo seulement non ?

    Gestion des verrous mortels mal conçue (suppression d'une commande bloquante sans rollback)
    Non, si Oracle tue la session alors il y a rollback... ou alors c'est un bug

    Nombreuses failles de sécurités liées à l'architecture elle-même
    Là t'es vraiment pas assez sévère et ça devrait être un inconvénient visible plus tôt. En effet, Oracle est le pire SGBD en terme de sécurité avec un cryptage de user/password farfelue, des failles datant d'Oracle V7 (update de table possible en ayant uniquement les privilèges CREATE ANY VIEW et SELECT ANY TABLE), manque de réactivité, mise à jour du moteur java qui ne suit la régularité de Sun, etc... C'est vraiment LE point noir d'Oracle selon moi

    A propos de la complexité de l'admin, on peut aussi ajouter que si les fonctionnalités sont nombreuses elles sont malheureusement aussi riche que complexe à mettre en oeuvre. Quand le mirroring de SQL Server se fait en 5 minutes, sous Dataguard c'est une vraie galère pour réussir un failover automatique. Streams veut tout faire et est vraiment trop compliqué pour de la répli classique.

    Et dans les points positifs, tu devrais parler de la console qui est accompagnée de nombreux assistant et alertes pour réduire très largement les tâches d'admin récurentes. En revanche on peut regretter que AWR soit un module payant.

    Dans les points négatif de SQL Server, j'ajouterais que le diagnostic des problèmes de performance n'est pas aisé. C'est pas évident d'avoir les requêtes les plus couteuses/database par exemple. Tout ça à cause de l'outil de perf de Windows qui est d'une ergonomie pour le moins... discutable Et dans les positifs, une très bonne réactivité pour corriger les failles de sécurité et une sécurité du SGBD à la hauteur de la sécurité de leur OS... l'inconvénient mono-plateforme en devient un avantage

    C'est tout

  7. #7
    Expert Confirmé
    Inscrit en
    février 2006
    Messages
    3 435
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 3 435
    Points : 3 479
    Points
    3 479

    Par défaut

    Citation Envoyé par orafrance Voir le message
    Non, si Oracle tue la session alors il y a rollback... ou alors c'est un bug
    En cas de deadlock, Oracle tue bien une des instructions SQL concernées: il s'agit bien d'un statement level rollback à ne pas confondre avec le rollback de transaction.

    Oracle justifie ce choix par:

    The statement rolled back is the one belonging to the transaction that detects the deadlock. Usually, the signalled transaction should be rolled back explicitly, but it can retry the rolled-back statement after waiting.
    Tester le code retour SQL doit être obligatoire pour toute instruction SQL.

  8. #8
    Rédacteur
    Avatar de orafrance
    Inscrit en
    janvier 2004
    Messages
    15 959
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : janvier 2004
    Messages : 15 959
    Points : 16 736
    Points
    16 736

    Par défaut

    Ha OK, au temps pour moi

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 088
    Points : 26 822
    Points
    26 822

    Par défaut

    En ce qui concerne MySQL je vous conforme encore une fois et contrairement à ce qu'affirme Jester, connu pour ses propos très approximatif, que la soit-disante sauvegarde à chaud ne permet pas d'assurer la consistance ni l'intégrité de la base de données puisqu'elle se contente de parcourir une à une les tables à sauvegarder...
    Ces propos m'ont été confirmés par Peter Gulutzan qui est l'un des architectes du moteur de MySQL (il travaille depuis 3 ans chez MySQL AB), expert en SGBDR (lui même à réalisé Ocelot) et auteur du livre SQL:1999 complete reallly !
    Pour info, Peter Gulutzan qui est canadien à traduit un de mes papiers en anglais, concernant la "jointure manquante"

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 088
    Points : 26 822
    Points
    26 822

    Par défaut

    Sur SQL Server, Orafrance, nous disait :
    C'est pas évident d'avoir les requêtes les plus couteuses/database par exemple.
    Ces requêtes existent en standard derrière les "rapports" que l'on a dans l'IHM SSMS. Exemple (capturé par profiler) :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    SELECT (dense_rank() over(ORDER BY (case when at.transaction_type = 4 then case at.dtc_state when 1 then ''Active'' when 2 then ''Prepared'' when 3 then ''Committed'' when 4 then ''Aborted'' when 5 then ''Recovered'' end else case at.transaction_state when 0 then ''Invalid'' when 1 then ''Initialized'' when 2 then ''Active'' when 3 then ''Ended'' when 4 then ''Commit Started'' when 5 then ''Prepared'' when 6 then ''Committed'' when 7 then ''Rolling Back'' when 8 then ''Rolled Back'' end end)))%2 AS l1
    ,       (dense_rank() over(ORDER BY (case when at.transaction_type = 4 then case at.dtc_state when 1 then ''Active'' when 2 then ''Prepared'' when 3 then ''Committed'' when 4 then ''Aborted'' when 5 then ''Recovered'' end else case at.transaction_state when 0 then ''Invalid'' when 1 then ''Initialized'' when 2 then ''Active'' when 3 then ''Ended'' when 4 then ''Commit Started'' when 5 then ''Prepared'' when 6 then ''Committed'' when 7 then ''Rolling Back'' when 8 then ''Rolled Back'' end end),st.session_id, s.host_name, s.program_name, s.login_name, s.login_time))%2 AS l2
    ,       (dense_rank() over(ORDER BY (case when at.transaction_type = 4 then case at.dtc_state when 1 then ''Active'' when 2 then ''Prepared'' when 3 then ''Committed'' when 4 then ''Aborted'' when 5 then ''Recovered'' end else case at.transaction_state when 0 then ''Invalid'' when 1 then ''Initialized'' when 2 then ''Active'' when 3 then ''Ended'' when 4 then ''Commit Started'' when 5 then ''Prepared'' when 6 then ''Committed'' when 7 then ''Rolling Back'' when 8 then ''Rolled Back'' end end),st.session_id, s.host_name, s.program_name, s.login_name, s.login_time, dt.transaction_id))%2 AS l3
    ,       (dense_rank() over(ORDER BY (case when at.transaction_type = 4 then case at.dtc_state when 1 then ''Active'' when 2 then ''Prepared'' when 3 then ''Committed'' when 4 then ''Aborted'' when 5 then ''Recovered'' end else case at.transaction_state when 0 then ''Invalid'' when 1 then ''Initialized'' when 2 then ''Active'' when 3 then ''Ended'' when 4 then ''Commit Started'' when 5 then ''Prepared'' when 6 then ''Committed'' when 7 then ''Rolling Back'' when 8 then ''Rolled Back'' end end),st.session_id, s.host_name, s.program_name, s.login_name, s.login_time, dt.transaction_id ,(case when obj.name IS NULL then ''Other resources'' else obj.name end)))%2 AS l4
    ,       (dense_rank() over(ORDER BY (case when at.transaction_type = 4 then case at.dtc_state when 1 then ''Active'' when 2 then ''Prepared'' when 3 then ''Committed'' when 4 then ''Aborted'' when 5 then ''Recovered'' end else case at.transaction_state when 0 then ''Invalid'' when 1 then ''Initialized'' when 2 then ''Active'' when 3 then ''Ended'' when 4 then ''Commit Started'' when 5 then ''Prepared'' when 6 then ''Committed'' when 7 then ''Rolling Back'' when 8 then ''Rolled Back'' end end),st.session_id, s.host_name, s.program_name, s.login_name, s.login_time, dt.transaction_id,(case when obj.name IS NULL then ''Other resources'' else obj.name end),tl.resource_type))%2 AS l5
    ,       dense_rank() over(partition BY case when at.transaction_type =4 then case at.dtc_state when 1 then 2 when 2 then 5 when 3 then 6 when 4 then 9 when 5 then 10 else at.dtc_state*2 end else at.transaction_state end ORDER BY dt.transaction_id)AS rank
    ,       st.session_id
    ,       s.host_name
    ,       s.program_name
    ,       s.login_name
    ,       s.login_time
    ,       s.host_process_id
    ,       dt.transaction_id AS tran_id
    ,       at.name
    ,       at.transaction_begin_time AS tran_start_time
    ,       case when at.transaction_type = 4 
                    then case at.dtc_state 
                                    when 1 then ''Active'' 
                                    when 2 then ''Prepared'' 
                                    when 3 then ''Committed'' 
                                    when 4 then ''Aborted'' 
                                    when 5 then ''Recovered'' 
                            end 
                    else case at.transaction_state 
                                    when 0 then ''Invalid'' 
                                    when 1 then ''Initialized'' 
                                    when 2 then ''Active'' 
                                    when 3 then ''Ended'' 
                                    when 4 then ''Commit Started'' 
                                    when 5 then ''Prepared'' 
                                    when 6 then ''Committed'' 
                                    when 7 then ''Rolling Back'' 
                                    when 8 then ''Rolled Back'' 
                            end 
            end AS state
    ,       case when at.transaction_type = 4 
                    then case at.dtc_isolation_level 
                                    when 0xffffffff then ''Unknown'' 
                                    when 0x10 then ''Chaos'' 
                                    when 0x100 then ''READ Uncommitted'' 
                                    when 0x1000 then ''READ Committed'' 
                                    when 0x10000 then ''Repeatable READ'' 
                                    when 0x100000 then ''Serializable'' 
                                    when 0x100000 then ''Isolated'' 
                            end 
                    else case Convert(int,r.transaction_isolation_level)    
                                    when 1 then ''READ Uncommitted''  
                                    when 2 then ''READ Committed'' 
                                    when 3 then ''Repeatable READ'' 
                                    when 4 then ''Serializable'' 
                                    when 5 then ''Snapshot'' 
                                    else ''Unknown'' 
                            end 
            end AS transaction_isolation_level 
    ,       at.transaction_type AS tran_type
    ,       (SELECT count(*) FROM sys.dm_tran_locks tlock WHERE  (tlock.request_owner_id = dt.transaction_id AND tlock.resource_database_id = db_id()) ) AS ''total''
    ,       tl.resource_type
    ,       case when obj.name IS NULL then ''Other resources'' else obj.name end AS resource_name
    ,       convert( varchar,tl.request_mode) AS request_mode
    ,       (SELECT count(*) FROM sys.dm_tran_locks tlock LEFT OUTER JOIN sys.partitions pt1 ON ( pt1.hobt_id = tlock.resource_associated_entity_id ) LEFT OUTER JOIN sys.objects obj1 ON ( obj1.object_id IN (pt1.object_id, tlock.resource_associated_entity_id) )  WHERE ( 1 = (case when obj.object_id IS NULL then 1 else case when obj1.object_id = obj.object_id then 1 else 0 end end ) ) AND (tlock.resource_type = tl.resource_type) AND (tlock.request_mode = tl.request_mode) AND (tlock.request_owner_id = dt.transaction_id) AND tlock.resource_database_id = db_id() AND (tlock.request_status = ''GRANT'') ) AS ''Granted'' 
    ,       (SELECT count(*) FROM sys.dm_tran_locks tlock LEFT OUTER JOIN sys.partitions pt1 ON ( pt1.hobt_id = tlock.resource_associated_entity_id ) LEFT OUTER JOIN sys.objects obj1 ON ( obj1.object_id IN (pt1.object_id, tlock.resource_associated_entity_id) )  WHERE ( 1 = (case when obj.object_id IS NULL then 1 else case when obj1.object_id = obj.object_id then 1 else 0 end end ) ) AND (tlock.resource_type = tl.resource_type) AND (tlock.request_mode = tl.request_mode) AND (tlock.request_owner_id = dt.transaction_id) AND tlock.resource_database_id = db_id() AND (tlock.request_status = ''WAIT'') ) AS ''Waiting''
    ,       (SELECT count(*) FROM sys.dm_tran_database_transactions WHERE transaction_id = dt.transaction_id) AS db_span_count
    ,       st.is_local 
    FROM    sys.dm_tran_database_transactions dt 
    LEFT OUTER JOIN sys.dm_tran_locks tl ON ( (tl.request_owner_id = dt.transaction_id) AND ( tl.resource_database_id = DB_ID() ) ) 
    INNER JOIN sys.dm_tran_active_transactions at  ON (at.transaction_id = dt.transaction_id)   
    INNER JOIN sys.dm_tran_session_transactions st  ON (st.transaction_id = dt.transaction_id) 
    LEFT OUTER JOIN sys.dm_exec_sessions s ON ( st.session_id = s.session_id ) 
    LEFT OUTER JOIN sys.dm_exec_requests r ON (r.transaction_id = dt.transaction_id)  
    LEFT OUTER JOIN sys.partitions pt ON ( pt.hobt_id = case when tl.resource_type IN (''RID'', ''KEY'', ''PAGE'', ''EXTENT'') then (tl.resource_associated_entity_id) else NULL end  )     
    LEFT OUTER JOIN sys.objects obj ON ( obj.object_id = ( case when tl.resource_type IN (''TABLE'') then tl.resource_associated_entity_id when tl.resource_type IN (''RID'', ''KEY'', ''PAGE'', ''EXTENT'') then pt.object_id else NULL end ) ) 
    WHERE (dt.database_id = DB_ID()) AND (st.is_user_transaction=1) 
    GROUP BY        st.session_id, s.host_name, s.program_name, s.login_name, s.login_time, s.host_process_id, dt.transaction_id,at.name, at.transaction_begin_time, at.transaction_state, at.dtc_state, r.transaction_isolation_level, at.dtc_isolation_level, at.transaction_type, obj.object_id, obj.name, tl.resource_type, tl.request_mode, st.is_local ORDER BY  st.session_id, dt.transaction_id,at.name, r.transaction_isolation_level, at.transaction_type, obj.object_id, obj.name, tl.resource_type, tl.request_mode
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  11. #11
    Rédacteur
    Avatar de orafrance
    Inscrit en
    janvier 2004
    Messages
    15 959
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : janvier 2004
    Messages : 15 959
    Points : 16 736
    Points
    16 736

    Par défaut

    je l'aurais pas trouver tout seul celle là


  12. #12
    Expert Confirmé
    Inscrit en
    février 2006
    Messages
    3 435
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 3 435
    Points : 3 479
    Points
    3 479

    Par défaut Sauvegarde à chaud MySQL

    Il faut être précis lorsqu'on parle d'un produit et de ses fonctionnalités: quelle version de MySQL ? Quel moteur de stockage ?

    version 5.1: http://dev.mysql.com/doc/mysql-backu...db-backup.html
    hot backup INNODB: http://www.innodb.com/wp/products/innodb/features/
    et cliquer sur Read more:
    Backups: online (”hot”) backups, via InnoDB Hot Backup, producing consistent backups without disruption to online update transactions support for backing up MyISAM tables and indexes (via innobackup Perl script
    Noter aussi que INNODB utilise des tablespaces à la "mode Oracle" et non plusieurs fichiers par table comme MyISAM.

    tables and indexes are stored in files managed by InnoDB, in tablespaces (like Oracle’s)
    et que INNODB a été racheté par Oracle avant que Oracle rachète Sun.

  13. #13
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    810
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 810
    Points : 854
    Points
    854

    Par défaut

    Citation Envoyé par pifor Voir le message
    Noter aussi que INNODB utilise des tablespaces à la "mode Oracle" et non plusieurs fichiers par table comme MyISAM.
    Oui enfin on peut pas en faire grand chose quand même à part ajouter des tablespace. C'est quasi inutile je trouve. En général j'utilise l'option 1 tablespace par table.

    Pour le hotbackup de innodb, je reste sur mes positions à chacun de décider. Je n'ai pas dit que MySql fournissait un outil pour le faire. Sur l'outil cité, pour myisam, de mémoire, il flush les opérations et bloques les tables. C'est pas du hot donc sur myisam (la lecture peut faire penser le contraire).

  14. #14
    Rédacteur/Modérateur
    Avatar de fadace
    Homme Profil pro Fabien Celaia
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    3 926
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Celaia
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 3 926
    Points : 14 381
    Points
    14 381

    Par défaut

    Citation Envoyé par SQLpro Voir le message
    En ce qui concerne MySQL je vous conforme encore une fois et contrairement à ce qu'affirme Jester, connu pour ses propos très approximatif, que la soit-disante sauvegarde à chaud ne permet pas d'assurer la consistance ni l'intégrité de la base de données puisqu'elle se contente de parcourir une à une les tables à sauvegarder...
    Ces propos m'ont été confirmés par Peter Gulutzan qui est l'un des architectes du moteur de MySQL (il travaille depuis 3 ans chez MySQL AB), expert en SGBDR (lui même à réalisé Ocelot) et auteur du livre SQL:1999 complete reallly !
    Pour info, Peter Gulutzan qui est canadien à traduit un de mes papiers en anglais, concernant la "jointure manquante"

    A +
    J'ai donc remis un inconvénient, en spécifiant, en tentant d'être le plus précis possible :


    • Pas de sauvegarde consistante à chaud, hormis en pur Innodb
    Sr DBA Oracle / Sybase / MS-SQL / MySQL / DB2 / Postgresql / Informix
    Administrateur SAP
    Mes articles

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  15. #15
    Membre chevronné
    Inscrit en
    mars 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 720
    Points : 608
    Points
    608

    Par défaut

    * Pas de sauvegarde consistante à chaud, hormis en pur Innodb
    il faut simplement mettre pas de sauvegarde consistante à chaud car c'est fait par une société tierce à MySQL AB (je sais que maintenant tout cela va appartenir à Oracle mais ce ne sera effectif qu'en juin...)

    De plus la version actuel est la 5.1.34. La version 5.1.31 avait un léger bug sur les autoincrements avec InnoDB justement http://bugs.mysql.com/bug.php?id=42714

    c'est un problème cyclique http://www.topolov.com/?p=3

    Bravo l'assurance qualité MySQL !

  16. #16
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 088
    Points : 26 822
    Points
    26 822

    Par défaut

    Je recommence puisque visiblement le message ne passe pas. Voici le mail en date du 27/03/2009 de la part de Petere Gulutzan. Je le reproduit intégralement sauf le mail afin qu'il ne soit pas spamé :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    X-Account-KEY: account1
    X-UIDL: 158098.1237838749
    X-Mozilla-STATUS: 0000
    X-Mozilla-Status2: 00000000
    X-Mozilla-KEYS:                                                                                 
    Received: FROM brmea-mail-4.sun.com (brmea-mail-4.Sun.COM [192.18.98.36])
    	BY relay-6v.club-internet.fr (Postfix) WITH ESMTP id 2F11325601
    	FOR <brouardf@club-internet.fr>; Mon, 23 Mar 2009 21:05:46 +0100 (CET)
    Received: FROM fe-amer-09.sun.com ([192.18.109.79])
    	BY brmea-mail-4.sun.com (8.13.6+Sun/8.12.9) WITH ESMTP id n2NK5jNK016484
    	FOR <brouardf@club-internet.fr>; Mon, 23 Mar 2009 20:05:45 GMT
    MIME-version: 1.0
    Content-type: text/plain; charset=ISO-8859-1
    Received: FROM conversion-daemon.mail-amer.sun.com BY mail-amer.sun.com
     (Sun Java(tm) System Messaging Server 7.0-5.01 64bit (built Feb 19 2009))
     id <0KGZ00J0057N4T00@mail-amer.sun.com> FOR brouardf@club-internet.fr; Mon,
     23 Mar 2009 14:05:45 -0600 (MDT)
    Received: FROM [192.168.1.106] (d75-159-3-207.abhsia.telus.net [75.159.3.207])
     BY mail-amer.sun.com
     (Sun Java(tm) System Messaging Server 7.0-5.01 64bit (built Feb 19 2009))
     WITH ESMTPSA id <0KGZ007606HKU640@mail-amer.sun.com>; Mon,
     23 Mar 2009 14:05:45 -0600 (MDT)
    Date: Mon, 23 Mar 2009 14:06:18 -0600
    FROM: Peter Gulutzan <P***.G***@Sun.COM>
    Subject: Re: Version 6, peut tu confirmer ?
    In-reply-TO: <49C68A37.8080100@club-internet.fr>
    Sender: P***.G***@Sun.COM
    TO: =?ISO-8859-1?Q?Fr=E9d=E9ric_BROUARD?= <brouardf@club-internet.fr>
    Cc: Peter Gulutzan <peterg@mysql.com>
    Message-id: <49C7EBBA.1090903@sun.com>
    REFERENCES: <49C68A37.8080100@club-internet.fr>
    User-Agent: Thunderbird 1.5.0.14 (X11/20060911)
    Content-Transfer-Encoding: quoted-printable
    STATUS: RO
    X-Mmail: \Seen                                   
    X-M-Uid: 158098.1237838749
    X-Antivirus: avast! (VPS 090327-0, 27/03/2009), Inbound message
    X-Antivirus-STATUS: Clean
     
    Bonjour,
     
    Fr=E9d=E9ric BROUARD wrote:
    > Bonjour,
    >=20
    > quelqu'un m'a dit :
    > "Les sauvegardes a chaud arrivent avec la version 6.0 de Mysql"
    > Est-ce vrai ?
     
    Nous continuons avec InnoDB Hot Backup, mysqldump, etc.
    http://dev.mysql.com/doc/refman/5.0/fr/backup-policy.html
     
    C'est probable que quelqu'un a lu les articles sur le sujet
    de "Online Backup". Par exemple ceci:
    http://blogs.mysql.com/peterg/2008/05/19/mysql-60-feature-2-online-backup=
    /
    La promesse, c'est sauvegarder sans beaucoup de verrouillage.
    Sans garantir que tout sera "=E0 chaud".
     
    --=20
     
    Peter Gulutzan
    Database Group / MySQL www.mysql.com
    Sun Microsystems of Canada Inc.
    Edmonton, AB, Canada
    Je crois maintenant que c'est clair :
    FADACE, tu doit mettre :
    Pas de sauvegarde consistante à chaud
    et non pas
    Pas de sauvegarde consistante à chaud, hormis en pur Innodb

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  17. #17
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    810
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 810
    Points : 854
    Points
    854

    Par défaut

    shell> mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql

    C'est un outil de sauvegarde en ligne, non-bloquant, qui ne perturbe pas les opérations sur les tables. Nous avons supposé plus haut que nos tables utilisent le moteur InnoDB : l'option --single-transaction utilise une lecture cohérent, et garantit la stabilité des données prélevées par mysqldump. Les modifications peuvent être faîtes par d'autres clients sur les tables InnoDB sans que la commande mysqldump ne le per¸oive.
    Pris de http://dev.mysql.com/doc/refman/5.0/...up-policy.html qui est justement cité par ce mail.

    Cela dit, mettez que ça ne gère pas les sauvegarde à chaud, parler de innodb me semble allez trop dans le détail peut-être. D'autant que dans les faits, les sauvegarde à chaud sans le moindre blocage sont rarement utilisées.

  18. #18
    Modérateur

    Homme Profil pro Fabien
    Ingénieur d'études en décisionnel
    Inscrit en
    septembre 2008
    Messages
    6 741
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en décisionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2008
    Messages : 6 741
    Points : 13 274
    Points
    13 274

    Par défaut

    Citation Envoyé par Jester Voir le message
    D'autant que dans les faits, les sauvegarde à chaud sans le moindre blocage sont rarement utilisées.
    Soyez sérieux, vous débutez à peine ne parlez pas comme si vous avez tout vu, surtout si c'est pour dire des bétises

  19. #19
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    810
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 810
    Points : 854
    Points
    854

    Par défaut

    Citation Envoyé par Waldar Voir le message
    Soyez sérieux, vous débutez à peine ne parlez pas comme si vous avez tout vu, surtout si c'est pour dire des bétises
    Je parlais pour Mysql (et non pas pour l'ensemble des sgbd comme vous semblez l'avoir interprété) où la méthode généralement utilisée semble être la copie via LVM. Après j'exprime mon opinion, j'ai possiblement tord.

  20. #20
    Membre émérite Avatar de Jester
    Inscrit en
    septembre 2003
    Messages
    810
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 810
    Points : 854
    Points
    854

    Par défaut

    Pour en revenir à la sauvegarde consistante à chaud, le document que je citais de mysql sur mysqldump dit sauvegarde en ligne, non-bloquant, qui ne perturbe pas les opérations sur les tables,(...) utilise une lecture cohérent, et garantit la stabilité des données en InnoDB. Cela ne contredit pas votre mail qui explique que BACKUP ne peut pas faire une sauvegarde à chaud sans verrouillage sur une table d'un type quelconque.

    À partir du moment où l'on a des transactions qui sont consistantes en lecture, je ne vois pas pourquoi on ne pourrait pas faire une sauvegarde consistante à chaud sans blocage. Si je me trompe là dessus, je retire bien sur tout mes propos à ce sujet.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •