Megosztás a következőn keresztül:


SQL Server Agent-feladatok létrehozása és futtatása Linuxon

A következőkre vonatkozik:SQL Server Linux rendszeren

Az SQL Server-feladatok rendszeresen ugyanazt a parancssorozatot hajtják végre az SQL Server-adatbázisban. Ez az oktatóanyag bemutatja, hogyan hozhat létre SQL Server Agent-feladatot Linuxon a Transact-SQL és az SQL Server Management Studio (SSMS) használatával.

  • AZ SQL Server Agent telepítése Linux rendszeren
  • Új feladat létrehozása napi adatbázis-biztonsági mentések elvégzéséhez
  • A feladat ütemezése és futtatása
  • Hajtsa végre ugyanazokat a lépéseket az SSMS-ben (nem kötelező)

A Linuxon futó SQL Server-ügynökkel kapcsolatos ismert problémákért tekintse meg a Linuxon futó SQL Server: Ismert problémák című témakört.

Előfeltételek

Az oktatóanyag elvégzéséhez a következő előfeltételek szükségesek:

Az alábbi előfeltételek megadása nem kötelező:

AZ SQL Server-ügynök engedélyezése

Az SQL Server Agent Linuxon való használatához először engedélyeznie kell az SQL Server-ügynököt egy olyan gépen, amelyen már telepítve van az SQL Server.

  1. Az SQL Server Agent engedélyezéséhez futtassa a következő parancsot.

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
    
  2. Indítsa újra az SQL Servert a következő paranccsal:

    sudo systemctl restart mssql-server
    

Jegyzet

Az SQL Server 2017 (14.x) CU 4-től kezdve az SQL Server Agent a mssql-server csomag része, és alapértelmezés szerint le van tiltva. A CU 4 előtt beállított ügynökkel kapcsolatban lásd: SQL Server Agent telepítése Linuxon.

Mintaadatbázis létrehozása

Az alábbi lépésekkel hozzon létre egy SampleDBnevű mintaadatbázist. Ez az adatbázis a napi biztonsági mentési feladathoz használatos.

  1. Linux-gépen nyisson meg egy bash terminál munkamenetet.

  2. Transact-SQL parancs futtatásához használja CREATE DATABASE.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -Q 'CREATE DATABASE SampleDB'
    
  3. Ellenőrizze, hogy létre van-e hozva az adatbázis a kiszolgálón lévő adatbázisok listázásával.

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

Munka létrehozása Transact-SQL használatával

Az alábbi lépések létrehoznak egy SQL Server Agent-feladatot Linuxon Transact-SQL parancsokkal. A feladat a mintaadatbázis napi biztonsági mentését futtatja, SampleDB.

Borravaló

Ezeket a parancsokat bármely T-SQL-ügyfél használatával futtathatja. Például Linuxon használhatja az sqlcmd és a bcp SQL Server parancssori eszközeit vagy a SQL Server-bővítményt a Visual Studio Code-hoz. Távoli Windows Serverről lekérdezéseket is futtathat az SQL Server Management Studióban (SSMS), vagy használhatja a feladatkezelés felhasználói felületét, amelyet a következő szakaszban ismertetünk.

  1. A sp_add_job használatával hozzon létre egy Daily SampleDB Backupnevű feladatot.

    -- 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. Hívja meg sp_add_jobstep, hogy hozzon létre egy feladatlépést, amely létrehozza a SampleDB adatbázis biztonsági másolatát.

    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. Ezután hozzon létre egy napi ütemezést a feladathoz a 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. A sp_attach_schedule használatával csatolja a munkafeladat ütemezését a munkafeladathoz.

    -- 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. A sp_add_jobserver használatával rendelje hozzá a feladatot egy célkiszolgálóhoz. Ebben a példában a cél a helyi kiszolgáló.

    EXECUTE dbo.sp_add_jobserver
        @job_name = N'Daily SampleDB Backup',
        @server_name = N'(local)';
    GO
    
  6. Indítsd el a feladatot sp_start_job.

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

Feladat létrehozása SSMS-sel

A windowsos SQL Server Management Studio (SSMS) használatával távolról is létrehozhat és kezelhet feladatokat.

  1. Indítsa el az SSMS-t Windows rendszeren, és csatlakozzon a Linux SQL Server-példányhoz. További információért lásd: Az SQL Server Management Studio használata Windows rendszeren az SQL Server Linux rendszeren történő kezeléséhez.

  2. Ellenőrizze, hogy létrehozott-e egy SampleDBnevű mintaadatbázist.

    SampleDB-adatbázis létrehozásának képernyőképe.

  3. Ellenőrizze, hogy az SQL Agent az SQL Server Agent telepítve van-e Linuxra és megfelelően van-e konfigurálva. Keresse meg az SQL Server-ügynök melletti pluszjelet az Object Explorerben. Ha az SQL Server Agent nincs engedélyezve, indítsa újra az mssql-server szolgáltatást Linuxon.

    Képernyőkép az SQL Server-ügynök telepítésének ellenőrzéséről.

  4. Hozzon létre egy új feladatot.

    Új feladat létrehozását bemutató képernyőkép.

  5. Adjon nevet a munkának és hozza létre a munkafolyamat lépését.

    Feladatlépés létrehozását bemutató képernyőkép.

  6. Adja meg, hogy melyik alrendszert szeretné használni, és mit kell tennie a feladatlépésnek.

    Feladatalrendszer képernyőképe.

    Feladatlépési műveletet bemutató képernyőkép.

  7. Hozzon létre egy új feladatütemezést.

    Képernyőkép az Új feladat párbeszédpanelről, amelyen az Ütemezés lehetőség van kiemelve, és az Új lehetőség ki van emelve.

    Képernyőkép az Új feladat párbeszédpanelről, amelyen az OK lehetőség ki van hívva.

  8. Indítsa el a munkáját.

    Képernyőkép az SQL Server-ügynök feladat elindításáról.

Következő lépés

Ebben az oktatóanyagban megtanulta, hogyan:

  • AZ SQL Server Agent telepítése Linux rendszeren
  • Feladatok létrehozása Transact-SQL és rendszer által tárolt eljárások használatával
  • Napi adatbázis-biztonsági mentést végző feladat létrehozása
  • SSMS felhasználói felület használata feladatok létrehozásához és kezeléséhez

Ezután ismerkedjen meg a feladatok létrehozásának és kezelésének egyéb képességeivel: