Udostępnij za pomocą


Tworzenie i uruchamianie zadań agenta programu SQL Server w systemie Linux

Dotyczy:programu SQL Server — Linux

Zadania programu SQL Server są używane do regularnego wykonywania tej samej sekwencji poleceń w bazie danych programu SQL Server. W tym samouczku przedstawiono przykład tworzenia zadania agenta programu SQL Server w systemie Linux przy użyciu programu Transact-SQL i programu SQL Server Management Studio (SSMS).

  • Instalowanie agenta programu SQL Server w systemie Linux
  • Tworzenie nowego zadania do wykonywania codziennych kopii zapasowych bazy danych
  • Planowanie i uruchamianie zadania
  • Wykonaj te same kroki w programie SSMS (opcjonalnie)

Aby zapoznać się ze znanymi problemami z agentem programu SQL Server w systemie Linux, zobacz SQL Server on Linux: Known issues (Program SQL Server w systemie Linux: znane problemy).

Wymagania wstępne

Do ukończenia tego samouczka wymagane są następujące wymagania wstępne:

Następujące wymagania wstępne są opcjonalne:

Włączanie agenta programu SQL Server

Aby użyć agenta programu SQL Server w systemie Linux, należy najpierw włączyć program SQL Server Agent na maszynie, na której jest już zainstalowany program SQL Server.

  1. Aby włączyć program SQL Server Agent, uruchom następujące polecenie.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Uruchom ponownie program SQL Server za pomocą następującego polecenia:

    sudo systemctl restart mssql-server
    

Uwaga / Notatka

Począwszy od programu SQL Server 2017 (14.x) CU 4, program SQL Server Agent jest dołączany do mssql-server pakietu i jest domyślnie wyłączony. Aby zapoznać się z konfiguracją agenta przed aktualizacją CU 4, zobacz Instalowanie agenta programu SQL Server w systemie Linux.

Tworzenie przykładowej bazy danych

Wykonaj poniższe kroki, aby utworzyć przykładową bazę danych o nazwie SampleDB. Ta baza danych jest używana do codziennego zadania tworzenia kopii zapasowej.

  1. Na maszynie z systemem Linux otwórz sesję terminalu powłoki bash.

  2. Użyj polecenia sqlcmd , aby uruchomić polecenie Transact-SQL CREATE DATABASE .

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Sprawdź, czy baza danych została utworzona, wyświetlając listę baz danych na serwerze.

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

Tworzenie zadania przy użyciu Transact-SQL

Poniższe kroki umożliwiają utworzenie zadania agenta programu SQL Server w systemie Linux przy użyciu Transact-SQL poleceń. Zadanie uruchamia codzienną kopię zapasową przykładowej bazy danych. SampleDB

Wskazówka

Do uruchamiania tych poleceń można użyć dowolnego klienta języka T-SQL. Na przykład w systemie Linux można użyć polecenia Install the sqlcmd and bcp SQL Server command-line tools on Linux or SQL Server extension for Visual Studio Code (Instalowanie narzędzi wiersza polecenia sqlcmd i bcp programu SQL Server w systemie Linux lub rozszerzenia programu SQL Server dla programu Visual Studio Code). Zdalnego systemu Windows Server można również uruchamiać zapytania w programie SQL Server Management Studio (SSMS) lub użyć interfejsu użytkownika do zarządzania zadaniami, które opisano w następnej sekcji.

  1. Użyj sp_add_job , aby utworzyć zadanie o nazwie 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. Wywołaj sp_add_jobstep , aby utworzyć krok zadania, który tworzy kopię zapasową SampleDB bazy danych.

    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. Następnie utwórz dzienny harmonogram zadania przy użyciu 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. Dołącz harmonogram zadania do zadania przy użyciu 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. Użyj sp_add_jobserver , aby przypisać zadanie do serwera docelowego. W tym przykładzie obiektem docelowym jest serwer lokalny.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Uruchom zadanie przy użyciu sp_start_job.

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

Tworzenie zadania za pomocą programu SSMS

Zadania można również tworzyć zdalnie i zarządzać nimi przy użyciu programu SQL Server Management Studio (SSMS) w systemie Windows.

  1. Uruchom SSMS w systemie Windows i połącz się z serwerem Linux SQL Server. Aby uzyskać więcej informacji, zobacz Używanie programu SQL Server Management Studio w systemie Windows do zarządzania programem SQL Server w systemie Linux.

  2. Sprawdź, czy utworzono przykładową bazę danych o nazwie SampleDB.

    Zrzut ekranu przedstawiający tworzenie bazy danych SampleDB.

  3. Sprawdź, czy program SQL Agent został poprawnie skonfigurowany i czy agent programu SQL Server został zainstalowany w systemie Linux . Wyszukaj znak plus obok pozycji SQL Server Agent w Eksploratorze obiektów. Jeśli program SQL Server Agent nie jest włączony, spróbuj ponownie uruchomić usługę mssql-server w systemie Linux.

    Zrzut ekranu przedstawiający sposób sprawdzania, czy agent programu SQL Server został zainstalowany.

  4. Utwórz nowe zadanie.

    Zrzut ekranu przedstawiający sposób tworzenia nowego zadania.

  5. Nadaj swojemu zadaniu nazwę i utwórz krok zadania.

    Zrzut ekranu pokazujący, jak utworzyć krok zadania.

  6. Określ podsystem, którego chcesz użyć, i jaki krok zadania powinien wykonać.

    Zrzut ekranu przedstawiający podsystem zadań.

    Zrzut ekranu przedstawiający akcję kroku zadania.

  7. Utwórz nowy harmonogram zadań.

    Zrzut ekranu przedstawiający okno dialogowe Nowe zadanie z zaznaczoną opcją Harmonogramy i oznaczoną opcją Nowy.

    Zrzut ekranu przedstawiający okno dialogowe Nowe zadanie z wywołaną opcją OK.

  8. Uruchom zadanie.

    Zrzut ekranu przedstawiający sposób uruchamiania zadania agenta programu SQL Server.

Następny krok

W tym samouczku nauczyłeś się następujących rzeczy:

  • Instalowanie agenta programu SQL Server w systemie Linux
  • Użyj procedur systemowych i Transact-SQL do tworzenia zadań
  • Tworzenie zadania, które wykonuje codzienne kopie zapasowe bazy danych
  • Tworzenie zadań i zarządzanie nimi przy użyciu interfejsu użytkownika programu SSMS

Następnie zapoznaj się z innymi możliwościami tworzenia zadań i zarządzania nimi: