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 :

Exécuter un job d'une base sql server à partir de linux


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 61
    Points : 65
    Points
    65
    Par défaut Exécuter un job d'une base sql server à partir de linux
    Bonjour,

    Je ne sais pas si je suis dans la bonne rubrique donc n'hésitez pas à déplacer mon topic. J'ai recherché sur google mais je n'ai rien trouvé. Je vous explique on a un job sur un serveur microsoft sql serveur, ce job je veux l'exécuter depuis une machine linux (red hat). J'ai fait un install de sqlcmd mais je ne sais pas si c'est suffisant. Vous pourriez me dire si je peux lancer un job sql serveur depuis mon linux? et si oui comment ?

    depuis ma machine linux je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -S <nom_machine> -U <login> -P <password> -Q <nom_job>
    je pense qu'il manque un "truc" mais je vois pas quoi et j'ai beau chercher je ne trouve rien (peut être que je n'ai pas les bons mot clé)

  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
    Sur RHEL, un simple cron avec la commande sqlcmd comme suit devrait suffire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -S <nom_machine> -U <login> -P <password> -Q "EXEC msdb.dbo.sp_start_job @job_name = N'<nom_job>'"
    ++

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 571
    Points
    52 571
    Billets dans le blog
    5
    Par défaut
    Effectivement, pour exécuter un job il faut le lancer à l'aide de la procédure dbo.sp_start_job située dans la base msdb dédiée au travaux de maintenance.
    A lire : https://docs.microsoft.com/fr-fr/sql...l-server-ver15

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

  4. #4
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 61
    Points : 65
    Points
    65
    Par défaut
    Merci pour vos réponses mais j'ai des erreurs je crois que je dois configurer un logiciel ou installer un pacquage engin j'essaie depuis le début de la semaine et ça n'a pas l'air de vouloir exécuter...

  5. #5
    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
    Il n'y a pas besoin de packages ou d'installation supplémentaire pour ce que tu demandes.
    Est-ce que tu pourrais éventuellement nous donner l'erreur que tu rencontres ?

    ++

  6. #6
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 61
    Points : 65
    Points
    65
    Par défaut
    bonsoir,
    Alors déjà je n'arrive pas a me connecter à la base
    sqlcmd -S <nom_base> -U <nom_utilisateur>
    Password:
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2AF9.
    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..

    pourtant j'arrive à me connecter en direct sur la machine qui héberge la base ce qui exclut un mauvais login/mdp. J'utilise le port TCP direct donc j'exclus le SQL browser (le trafic réseaux passe entre ma machine et la base).. A partir d'une machine windows distante j'y arrive sans difficulté donc ce n'est pas une règle de parefeu
    la base est sur un sql server 2012R2
    et la machine linux est une RHEL (rehHat) 7.4

    donc il faut que je puisse me connecter avant de lancer un job. J'ai cherché sur le site de Microsoft, sur des moteur de recherche je n'ai rien trouvé sur cause possible donc si vous avez une piste je suis preneur

  7. #7
    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
    la base est sur un sql server 2012R2
    SQL Server 2012R2 n'existe pas comme ca version. Je pense que tu voulais dire 2008R2 ou 2012. Mais à la rigueur, ceci n'est pas vraiment important pour ton problème.

    pourtant j'arrive à me connecter en direct sur la machine qui héberge la base ce qui exclut un mauvais login/mdp. J'utilise le port TCP direct donc j'exclus le SQL browser (le trafic réseaux passe entre ma machine et la base).. A partir d'une machine windows distante j'y arrive sans difficulté donc ce n'est pas une règle de parefeu
    la base est sur un sql server 2012R2
    et la machine linux est une RHEL (rehHat) 7.4
    Cela n'exclu pas un problème de firewall sur ta machine Linux qui t'empêcherait de sortir ou un firewall activé sur Windows avec une règle qui n'autorise que certaines IP par exemple. Est-ce que tu as vérifié de ce côté? Tu peux te retrouver dans le cas où ta machine Windows distante (depuis laquelle la connexion fonctionne) et ta machine Linux (où cela ne fonctionne pas) ne soient pas sur le même réseau et donc pas forcément joignable? Est-ce que tu arrives déjà à pinger ta machine Windows SQL depuis ton Linux ? (en assumant que le ping soit autorisé)

    ++

  8. #8
    Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2011
    Messages : 61
    Points : 65
    Points
    65
    Par défaut
    Merci de vouloir m'aider... et pardon de la réponse tardive mais je devais m'adresser à l'administrateur windows qui ait un peu submergé en cette période estivale (il est seul alors que normalement il sont 3). Dans l'entreprise où je suis le ping est désactivé. donc quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nc -v <adresse_de_la_machine_sql> <port_de_la_machine_sql> 0</dev/null
    tout ce passe bien, j'arrive à la joindre et l'administrateur windows m'assure qu'il n'y a pas de filtre sur le réseau entre les deux machines qui pourrait bloquer le flux dans l'autre sens

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 571
    Points
    52 571
    Billets dans le blog
    5
    Par défaut
    Votre syntaxe est un mélange de chose qui n'a rien à voir !

    Voici la bonne syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd.exe -S"nom_machine\nom_instance" -U"nom de connexion" -P"mot de passe" -d"nom_base" - q"ma requête"
    -S doit indiquer le nom d'instance, pas le nom d'une base. Si vous commencez à confondre les deux c'est pas gagné !
    -U doit indiquer le nom d'une connexion SQL (aussi appela LOGIN) et non le nom d'un utilisateur SQL. Si vous commencez à confondre les deux c'est pas gagné non plus !
    -d doit indiquer le nom de la base. Dans notre cas, pour lancer un job, ce sera "msdb"
    -q doit contenir la requête, par exemple : "EXEC dbo.sp_start_job ..."

    Maintenant pour lancer un travail de l'Agent SQL, vous pouvez le faire avec deux syntaxes différentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    EXEC dbo.sp_start_job @job_name = 'nom du travail';
    -- ou bien :
    EXEC dbo.sp_start_job @job_id = 'identifiant du travail' ;
    Bref, avant tout, formez vous :
    • aux concepts généraux et à la terminologie
    • à l'Agent SQL et aux syntaxes des outils (sqmcmd notamment)



    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. Réponses: 7
    Dernier message: 02/02/2012, 18h00
  2. [XL-2010] Outil pour éditer une base SQL SERVER à partir d'excel
    Par lmontout dans le forum Excel
    Réponses: 1
    Dernier message: 26/07/2011, 18h53
  3. Réponses: 2
    Dernier message: 15/07/2006, 12h29
  4. Backup et restore d'une base SQL Server
    Par ZeKlubb dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/03/2005, 18h17
  5. Comment se connecter à une base SQL server
    Par zapia dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/10/2003, 17h39

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