Partager via


Créer et exécuter des travaux SQL Server Agent sur Linux

Applies to :SQL Server sur Linux

Les tâches SQL Server sont utilisées pour exécuter régulièrement la même série de commandes dans votre base de données SQL Server. Ce tutoriel fournit un exemple de création d’un travail de SQL Server Agent sur Linux à l’aide de Transact-SQL et de SQL Server Management Studio (SSMS).

  • Installer SQL Server Agent sur Linux
  • Créer une nouvelle tâche pour effectuer des sauvegardes de données quotidiennes
  • Planifier et exécuter la tâche
  • Effectuer les mêmes étapes dans SSMS (facultatif)

Pour connaître les problèmes connus liés à SQL Server Agent sur Linux, consultez SQL Server sur Linux : Problèmes connus.

Prérequis

Pour exécuter ce didacticiel, vous devez réunir les conditions préalables suivantes :

Les conditions préalables suivantes sont facultatives :

Activer SQL Server Agent

Pour utiliser SQL Server Agent sur Linux, vous devez d’abord activer SQL Server Agent sur un ordinateur qui a déjà SQL Server installé.

  1. Pour activer SQL Server Agent, exécutez la commande suivante.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Redémarrez SQL Server avec la commande suivante :

    sudo systemctl restart mssql-server
    

Remarque

À compter de SQL Server 2017 (14.x) CU 4, SQL Server Agent est inclus dans le package mssql-server et est désactivé par défaut. Pour la configuration de l’agent avant CU 4, consultez Installer SQL Server Agent sur Linux.

Créer un exemple de base de données

Procédez comme suit pour créer une base de données d'exemple nommée SampleDB. Cette base de données est utilisée pour la tâche de sauvegarde quotidienne.

  1. Sur votre machine Linux, ouvrez une session du terminal Bash.

  2. Utilisez sqlcmd pour exécuter une commande Transact-SQL CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Vérifiez la création de la base de données en répertoriant les bases de données sur votre serveur.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'SELECT name FROM sys.databases'
    

Créer un travail avec Transact-SQL

Les étapes suivantes créent un travail SQL Server Agent sur Linux avec des commandes Transact-SQL. La tâche exécute une sauvegarde quotidienne de l’exemple de base de données SampleDB.

Conseil

Vous pouvez utiliser tout client T-SQL pour exécuter ces commandes. Par exemple, sur Linux, vous pouvez utiliser Installer les outils en ligne de commande sqlcmd et bcp SQL Server sur Linux ou l'extension SQL Server pour Visual Studio Code. À partir d’un Windows Server distant, vous pouvez également exécuter des requêtes dans SQL Server Management Studio (SSMS) ou utiliser l’interface d’interface utilisateur pour la gestion des travaux, qui est décrite dans la section suivante.

  1. Utilisez sp_add_job pour créer une tâche nommée Daily SampleDB Backup.

    -- Adds a new job executed by the SQLServerAgent service
    -- called 'Daily SampleDB Backup'
    USE msdb;
    GO
    
    EXECUTE dbo.sp_add_job @job_name = N'Daily SampleDB Backup';
    GO
    
  2. Appelez sp_add_jobstep pour créer une étape de tâche qui crée une sauvegarde de la base de donnéesSampleDB.

    EXECUTE sp_add_jobstep
        @job_name = N'Daily SampleDB Backup',
        @step_name = N'Backup database',
        @subsystem = N'TSQL',
        @command = N'BACKUP DATABASE SampleDB TO DISK = \
                         N''/var/opt/mssql/data/SampleDB.bak'' WITH NOFORMAT, NOINIT, \
                         NAME = ''SampleDB-full'', SKIP, NOREWIND, NOUNLOAD, STATS = 10', @retry_attempts = 5, @retry_interval = 5;
    GO
    
  3. Créez ensuite une planification quotidienne pour votre tâche avec sp_add_schedule.

    -- Creates a schedule called 'Daily'
    EXECUTE dbo.sp_add_schedule
        @schedule_name = N'Daily SampleDB',
        @freq_type = 4,
        @freq_interval = 1,
        @active_start_time = 233000;
    
    USE msdb;
    GO
    
  4. Joignez la planification des tâches à la tâche avec sp_attach_schedule.

    -- Sets the 'Daily' schedule to the 'Daily SampleDB Backup' Job
    EXECUTE sp_attach_schedule
        @job_name = N'Daily SampleDB Backup',
        @schedule_name = N'Daily SampleDB';
    GO
    
  5. Utilisez sp_add_jobserver pour attribuer la tâche à un serveur cible. Dans cet exemple, la cible est le serveur local.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Démarrez la tâche par sp_start_job.

    EXECUTE dbo.sp_start_job N' Daily SampleDB Backup';
    GO
    

Créer une tâche avec SSMS

Vous pouvez également créer et gérer des travaux à distance à l’aide de SQL Server Management Studio (SSMS) sur Windows.

  1. Démarrez SSMS sur Windows et connectez-vous à votre instance de SQL Server Linux. Pour plus d’informations, consultez Utilisez SQL Server Management Studio sur Windows pour gérer SQL Server sur Linux.

  2. Vérifiez que vous avez bien créé un exemple de base de données nommé SampleDB.

    Capture d’écran de la création d’une base de données SampleDB.

  3. Vérifiez que SQL Agent a été Installer SQL Server Agent sur Linux et configuré correctement. Recherchez le signe plus en regard de SQL Server Agent dans l'Explorateur d'objets. Si SQL Server Agent n'est pas activé, essayez de redémarrer le service mssql-server sur Linux.

    Screenshot montrant comment vérifier que SQL Server Agent a été installé.

  4. Créez une nouvelle tâche.

    Capture d’écran montrant comment créer un nouveau projet.

  5. Donnez un nom à votre tâche et créez l’étape de votre tâche.

    Capture d’écran montrant comment créer une étape de travail.

  6. Spécifiez quel sous-système et quelle étape de la tâche utiliser.

    Capture d’écran de la boîte de dialogue Nouveau travail dans SSMS, montrant la page Étapes avec le bouton Nouveau mis en surbrillance pour créer une étape de travail.

    Capture d’écran de la boîte de dialogue Nouvelle étape du travail montrant une commande T-SQL BACKUP DATABASE pour SampleDB avec le bouton OK mis en surbrillance.

  7. Créez une nouvelle planification de tâches.

    Capture d’écran de la boîte de dialogue Nouvelle tâche, avec l’option Planifications et l’option Nouveau mises en évidence.

    Capture d’écran de la boîte de dialogue Nouvelle tâche, avec l’option OK mise en évidence.

  8. Démarrez votre tâche.

    Screenshot montrant comment démarrer le travail SQL Server Agent

Étape suivante

Dans ce didacticiel, vous avez appris à :

  • Installer SQL Server Agent sur Linux
  • Créer des tâches à l'aide des procédures stockées système et Transact-SQL
  • créer une tâche qui exécute des sauvegardes de données quotidiennes
  • utiliser l’IU SSMS pour créer et gérer des tâches

Par la suite, explorez d’autres fonctionnalités pour créer et gérer des tâches :

SQL Server Agent documentation