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

MS SQL Server Discussion :

Le mode single_user stoppe temporairement le job CDC_Capture


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 74
    Points
    74
    Par défaut Le mode single_user stoppe temporairement le job CDC_Capture
    Bonjour

    J'ai deux bases de donnée avec Change Date Capture activé
    Le soir sur chacune de ces bases un job de maintenance qui contient en première étape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    USE MASTER
    ALTER DATABASE GPG
    SET RESTRICTED_USER
    WITH ROLLBACK IMMEDIATE
    et en dernière étape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    USE MASTER
    ALTER DATABASE GPG SET MULTI_USER
    ce job stoppe le job de capture CDC de la base temporairement jusqu'à 10 à 20 secondes après la dernière étape
    j'ai une erreur
    Exécuté en tant qu''utilisateur*: NT SERVICE\SQLSERVERAGENT. Unspecified error occurred on SQL Server. Connection may have been terminated by the server. [SQLSTATE HY000] (erreur 0) Impossible de poursuivre l'exécution, car la session a été terminée. [SQLSTATE HY000] (erreur 596)
    J'ai testé la chose avec une BD de test et un job qui lui applique le mode single user, et le job de capture sur cette base semble bien être stoppé (vu dans le moniteur)
    Mais si je met un waitfor dans le job de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    USE MASTER
    ALTER DATABASE GPG_TEST
    SET RESTRICTED_USER
    WITH ROLLBACK IMMEDIATE
    WAITFOR DELAY '00:00:30';  
    ALTER DATABASE GPG_TEST SET MULTI_USER
    lpour me laisser le temps d'examiner sysjobactivity
    stop_execution_date sur le job CDC_Capture reste null
    alors qu'il est bien mis à la date quand je l'arrête depuis SSMS
    Bref je voit pas trop ce qu'il se passe
    A priori cela n'est pas impactant puisque le job semble persister je ne sais comment
    A tout hasard j'ai ajouté comme dernière étape de mon job de maintenance
    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
     
    IF NOT EXISTS
    (     
    	SELECT *
    	FROM 
    		msdb.dbo.sysjobs_view A
    		INNER JOIN msdb.dbo.sysjobactivity B ON A.job_id = B.job_id 
    	WHERE  
    		B.run_Requested_date IS NOT NULL  
    		AND B.stop_execution_date IS NULL  
    		AND A.name = 'cdc.GPG_capture'
    ) 
    BEGIN      
          EXEC msdb.dbo.sp_start_job 'cdc.GPG_capture';
    END
    Bruno Petit

  2. #2
    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
    J'ai deux bases de donnée avec Change Date Capture activé
    Le soir sur chacune de ces bases un job de maintenance qui contient en première étape
    Pourquoi ton job de maintenance nécessite-t-il un mode SINGLE_USER ? Quel est le but?

    ++

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 74
    Points
    74
    Par défaut
    Bonjour

    Il effectue des taches de maintenance habituelles
    -Vidage des tables que j'appelle "temporaires" (tables réelles avec données transitoires)
    -Vérification intégrité
    -Reconstruction systématiques des index de tables de certains schémas
    -Traitement du reste des index (Ola Holengreen scripts)
    -Sauvegarde
    -Test restauration

    La maintenance a lieu vers 22 heures
    J'ai SQL server 2017 version standard je n'ai pas testé plus avant, mais sans le mode single user il me semblait que le traitement des index échouait couramment du fait d'utilisateurs restés connectés sur l'ERP
    Bruno Petit

  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
    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
    Aucune tâche de maintenance ne nécessite un accès exclusif à la base... Et heureusement ! Pensez aux sites web marchand comme fnac.com, ou cdiscount qui tournent 24h/24 avec du SQL Server !

    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 régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 74
    Points
    74
    Par défaut
    Donc d'après vous il faudrait que je me repenche sur pourquoi, quand je n'avais pas d'accès exclusif, j'obtenais couramment des index et des stats pas à jour le lendemain, je n'ai peut être pas assez creusé la chose quand j'ai mis cet accès exclusif en place, car effectivement c'est curieux que même un client ERP laissé ouvert sans activité (personne ne travaille à 22 heures) puisse empêcher une reconstruction OFFLINE de l'index (SQL 2017 standard)
    Bruno Petit

  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
    Citation Envoyé par PickEpique Voir le message
    Donc d'après vous il faudrait que je me repenche sur pourquoi, quand je n'avais pas d'accès exclusif, j'obtenais couramment des index et des stats pas à jour le lendemain, je n'ai peut être pas assez creusé la chose quand j'ai mis cet accès exclusif en place, car effectivement c'est curieux que même un client ERP laissé ouvert sans activité (personne ne travaille à 22 heures) puisse empêcher une reconstruction OFFLINE de l'index (SQL 2017 standard)
    En version standard vous n'avez aucun choix possible autre que le reconstruction OFFLINE des index, ce qui signifie qu'un verrou exclusif sera posé pendant toute la durée de la reconstruction de chacun des index. Cela ne veut pas dire que vous devrez mettre la base entière en mode "offline" !

    En version enterprise, le mode ONLINE permet de ne pas poser de verrou pendant la reconstruction.

    Il faudrait sans doute prendre un cours d'admin SQL Server, comme ceux que je distille à Orsys...
    https://www.orsys.fr/formation-sql-s...istration.html


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

Discussions similaires

  1. [2012] Exécuter un job avec SQLCMD Mode activé
    Par janlouk dans le forum Administration
    Réponses: 2
    Dernier message: 03/01/2017, 15h27
  2. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  3. comment éxécuter un job en mode debogage pas à pas
    Par sinoun dans le forum Exécution et industrialisation
    Réponses: 2
    Dernier message: 13/03/2012, 13h48
  4. Job Hierarchy : mode d'emploi ?
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 12/03/2010, 16h53
  5. Réponses: 1
    Dernier message: 12/02/2008, 19h41

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