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 SQL Server Discussion :

Une requête vers un serveur lié cause l'arrêt du service SQL SERVER. [2008R2]


Sujet :

Administration SQL Server

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut Une requête vers un serveur lié cause l'arrêt du service SQL SERVER.
    Hello,

    Je faisais des requêtes depuis mon serveur de dev vers un serveur lié oracle lorsqu'à un moment, plus moyen de se connecter à mon serveur de dev. Après un restart, je relance ma requête et hop, pareil.

    Je parviens à me connecter en remote desktop en me disant que je vais seulement restarter le service sql plutôt que toute la machine et là, je constate qu'il est en fait arrêter (de même que l'agent mais lui s'arrête si le service sql est arrêté il me semble). Je le redémarre et vais voir dans les journaux d’événements windows et je trouve ceci :
    The SQL Server (MSSQLSERVER) service terminated unexpectedly. It has done this 4 time(s).
    Sans plus d'information.

    J'ai trouvé la requête qui cause l'arrêt mais je ne comprends pas pourquoi. Je viens donc vers vous pour essayer de comprendre.
    La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT    *
    FROM    OPENQUERY(LE_SERVEUR_LIE,'
    SELECT    * --COL1, COL2, COL3,  COL4, COL5, COL6
    FROM    UNE_VUE
    WHERE    ROWNUM < 1000
        AND COL 3= 71107969000
        --AND COL4 = 1911350000000
    ');
    Si j'enlève le commentaire de la clause SELECT, tout fonctionne alors correctement.

    Quelqu'un aurait-il une idée de pourquoi l'exécution de cette requête avec le commentaire provoquerait l'arrêt du service SQL ?
    Où pourrais-je trouver plus de détail concernant cet arrêt inopiné ?
    Kropernic

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    Hello,

    Si tu peux envoyer l'ERRORLOG, un minidump s'il y en a, etc...

    merci,
    David B.

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je le ferais avec plaisir mais je ne sais pas où on trouve cela :-/

    Pour l'erreur log, j'ai été voir dans les journaux de windows et n'ai trouvé que le message déjà cité qui informe juste que sql server s'est arrêté...

    Je n'ai pas trouvé d'erreur ailleurs... Mais je n'ai probablement pas regardé à la bonne place... Ce genre de truc n'arrive pas souvent (heureusement) alors je n'ai pas encore bien assimilé où chercher.
    Kropernic

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Dans le journal des erreurs SQL Server. Dans SSMS > Management > SQL Server Logs > Current - Archive etc ...

    Les fichiers dump si tu en as (fichiers avec extension mdmp) sont sous en général dans le répertoire des log SQL Server . Par défaut C:\Program Files\Microsoft SQL Server\<instance id>\MSSQL\Log

    ++

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Voici les données demandées.

    Pour les erreurs, j'ai reproduit le phénomène et j'ai mis dans le fichier uniquement les lignes de log qui me semblaient pertinentes (cad. que j'ai enlevé tout ce qui d'avant et tout ce qui concerne le redémarrage de l'instance).

    Pour le dump, j'ai juste pris le fichier qui est indiqué dans le log ^^.

    Par contre, c'est un peu chinois pour moi. Je vois bien dans le log qu'il y a une "fatal exception EXCEPTION_ACCESS_VIOLATION" mais tout ce qui est raconté après, je ne sais pas quoi regardé tellement il y a d'infos (qui ne me parlent pas en plus de ça...).
    Fichiers attachés Fichiers attachés
    Kropernic

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    essaye en retirant les -- de ta chaine de requête (commentaires).

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

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    essaye en retirant les -- de ta chaine de requête (commentaires).

    A +
    Oui oui, si j'enlève les commentaires, donc les -- et ce qu'il y a après (pas de garder les colonnes vu qu'il y a déjà *), ça passe très bien.

    Ce que je voudrais savoir, c'est pourquoi le fait de mettre ces commentaires fait crasher sql server. Car j'ai déjà fait d'autres requêtes avec des commentaires et ça marchait très bien...
    Kropernic

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    http://mssqlwiki.com/2012/08/08/sql-...inked-servers/

    Il faudrait pouvoir voir le fichier mdmp pour valider que c'est bien ce bug mais il y a des chances... Si tu l'as sous le coude tu peux l'envoyer ?

    Merci,
    David B.

  9. #9
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Oui je l'ai mais même compressé dans une archive winrar, il fait encore 314 KB. Je ne pourrai donc pas le mettre en pièce jointe :-/

    Et des sites du genre de dropbox sont bloqués par notre firewall...
    Kropernic

  10. #10
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    A première vue sans le dump et ce que l'on peut voir dans l'error log ça sent le bug ... mais à vérifier bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    05/23/2014 09:22:31,spid58,Unknown,*   Access Violation occurred reading address 000000011B99A83F
    05/23/2014 09:22:31,spid58,Unknown,*   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION
    05/23/2014 09:22:31,spid58,Unknown,*   Exception Address = 0000000077BA250E Module(ntdll+000000000005250E)
    Tu utilises quoi comme driver de serveur lié ? Est-ce que tu fais cela entre 2 versions de SQL Server différentes ? Tu peux nous en dire un peu plus sur le contexte.

    ++

  11. #11
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Le serveur lié est un serveur oracle (11g je crois). C'est un serveur de notre maison mère qui se trouve à Cologne (Allemagne)...
    Pour le driver, voilà ce qu'il y a pour le paramètre @provider si je scripte le serveur lié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @provider=N'OraOLEDB.Oracle'
    Je ne sais malheureusement pas en dire plus sur ce serveur lié tout simplement car mes collègues allemands sont très timides sur le partage d'info... (c'est déjà un miracle (et je pèse mes mots) de pouvoir faire des requêtes!!!)
    Kropernic

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    OK c'est bien le bug dans la dll OraOLEDBrst11.dll identifié par Karthick, le haut de la stack correspond:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
      *** Stack trace for last set context - .thread/.cxr resets it
    Child-SP          RetAddr           Call Site
    00000000`15aaa5b0 000007fe`fe678e56 ntdll!RtlFreeHeap+0x4e
    00000000`15aaa630 00000000`44701a5f ole32!CoTaskMemFree+0x36
    00000000`15aaa660 00000000`1b9986d0 OraOLEDButl11+0x1a5f
    00000000`15aaa668 00000000`15aaa790 0x1b9986d0
    00000000`15aaa670 00000000`1b95f180 0x15aaa790
    00000000`15aaa678 00000000`0000004b 0x1b95f180
    00000000`15aaa680 00000000`1b99a798 0x4b
    00000000`15aaa688 00000000`44412843 0x1b99a798
    00000000`15aaa690 00000000`1b971320 OraOLEDBrst11+0x12843
    00000000`15aaa698 00000000`1b963c70 0x1b971320
    00000000`15aaa6a0 00000000`1b96c9e0 0x1b963c70
    00000000`15aaa6a8 00000000`1b96c9e0 0x1b96c9e0
    00000000`15aaa6b0 00000000`110e6be0 0x1b96c9e0
    00000000`15aaa6b8 00000000`44412900 0x110e6be0
    00000000`15aaa6c0 00000000`1b99a798 OraOLEDBrst11+0x12900
    00000000`15aaa6c8 00000000`1b963c70 0x1b99a798
    00000000`15aaa6d0 00000000`15aaa790 0x1b963c70
    00000000`15aaa6d8 00000000`00000000 0x15aaa790
    Les autres fonctions sont masquées car je n'ai pas les symboles pour cette dll...

    Il faut le patch 11.2.0.3 patch 12 et en workaround retirer les commentaires comme l'a déjà signalé Fred ou utiliser /* */

    Ref: https://support.oracle.com/epmos/fac...41564908034816


    Contenu de la note:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    ORAOLEDB CRASH OR HEAP CORRUPTION WITH -- STYLE COMMENTS (Doc ID 1359711.1)	To BottomTo Bottom	
    Modified:31-Oct-2012Type:PROBLEM	
    Rate this document	Email link to this document	Open document in new window	Printable Page
     
    In this Document
    	Symptoms
    	Cause
    	Solution
    	References
     
    Applies to:
    Oracle Provider for OLE DB - Version 11.2.0.1 and later
    Information in this document applies to any platform.
    Symptoms
     
     
    Intermittent Access Violation in OraOLEDBrst11 using a SQL Server Linked Server with the Oracle Provider for OLE DB
     
    Call stack
     
    00000000`4441616b : 00000000`1a6def9a 00000000`1aa46fe0 00000000`00000020 00000000`1a8a0001 : OraOLEDBrst11+0x13d71
    00000000`4441c8ab : 00000000`00000000 00000000`00000001 00000000`1a72efd8 00000000`1a72efe0 : OraOLEDBrst11+0x1616b
    00000000`444248ba : 00000000`00250000 00000000`1a72efd0 00000000`00000b16 00000000`01005f6f : OraOLEDBrst11+0x1c8ab
    00000000`14da1af9 : 00000000`00000000 00000000`875fe270 00000000`00000000 00000000`116c9810 : OraOLEDBrst11!ROWInit+0x39a
    Cause
     
    Bug:9778542 ORAOLEDB CRASH OR HEAP CORRUPTION WITH -- STYLE COMMENTS
     
    Solution
     
    The fix for this behavior is in 11203 Patch 12 and higher.
     
    The following workarounds are also available:
     
    a) remove the comments
     
    OR
     
    b) use /* */ for the comments instead
    References
    BUG:12910585 - RANDOMLY ACCESS VIOLATION IN ORAOLEDBRST11.DLL WHEN USING SQLSERVER
    BUG:9778542 - ORAOLEDB CRASH OR HEAP CORRUPTION WITH -- STYLE COMMENTS
    David B.

  13. #13
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Oui oui, si j'enlève les commentaires, donc les -- et ce qu'il y a après (pas de garder les colonnes vu qu'il y a déjà *), ça passe très bien.

    Ce que je voudrais savoir, c'est pourquoi le fait de mettre ces commentaires fait crasher sql server. Car j'ai déjà fait d'autres requêtes avec des commentaires et ça marchait très bien...
    parce que la chaine est nettoyé des caractères de retour chariot. Ce qui fait que ta requête est finalement la suivante :
    et apparement il doit pas aimer du tout !

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

  14. #14
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ok merci à tous !

    Je vais donc signaler à mes aimables collègues allemands qu'ils doivent mettre leur système à jour
    Kropernic

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

Discussions similaires

  1. exporter une bd vers un serveur
    Par Mucsy dans le forum Débuter
    Réponses: 2
    Dernier message: 05/10/2008, 16h13
  2. Réponses: 3
    Dernier message: 21/02/2007, 16h31
  3. Réponses: 8
    Dernier message: 28/09/2006, 15h56
  4. [Excel] Exportation d'une requête vers Excel via PHP
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 17/05/2006, 16h46

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