Freigeben über


Erstellen, Konfigurieren und Verwalten von elastischen Jobs

Gilt für:: Azure SQL-Datenbank

Dieser Artikel beschreibt die Schritte, die zum Erstellen, Konfigurieren und Verwalten von elastischen Aufträgen in Azure SQL-Datenbank erforderlich sind. Viele dieser Schritte können Sie im Azure-Portal und mithilfe von T-SQL, PowerShell und der REST-API durchführen. Mit elastischen Aufträgen können einzelne oder mehrere T-SQL-Skripts (Transact-SQL) für mehrere Datenbanken gleichzeitig ausgeführt werden. Weitere Informationen erhalten Sie unter Mehr über die Konzepte der Auftragsautomatisierung in Azure SQL-Datenbank erfahren oder Mehr über elastische Aufträge in Azure SQL-Datenbank lesen.

Erstellen und Konfigurieren des Agents für elastische Aufträge

  1. Erstellen oder identifizieren Sie eine leere S1- oder höhere Azure SQL-Datenbank mit dem DTU-Einkaufsmodell. Diese Datenbank sollte sich auf demselben Server befinden wie der Auftrags-Agent. Diese Datenbank wird bei der Erstellung des Agents für elastische Aufträge als Auftragsdatenbank verwendet. Sie können über das Azure-Portal, Azure CLI, Azure CLI (sql up) oder PowerShell eine einzelne Datenbank erstellen.

  2. Erstellen Sie einen Agent für elastische Aufträge entweder über das Azure-Portal oder mithilfe von PowerShell.

    Die Anweisungen zum Erstellen eines Agents für elastische Aufträge im Azure-Portal lauten wie folgt:

    1. Suchen Sie im Azure-Portal nach Agents für elastische Aufträge. Wählen Sie Erstellen aus, um mit der Bereitstellung einer neuen Agent-Ressource für elastische Aufträge zu beginnen. Oder folgen Sie diesem Link, um einen Agent für elastische Aufträge im Azure-Portal zu erstellen.
    2. Geben Sie dem Agent für elastische Aufträge einen Namen.
    3. Wählen Sie das Abonnement und die Ressourcengruppe für den Agent aus. Erstellen Sie bei Bedarf eine neue Ressourcengruppe. Ein elastischer Auftrag kann auf Datenbanken in anderen Ressourcengruppen, Abonnements und sogar in anderen Azure-Regionen abzielen.
    4. Wählen Sie den logischen Azure SQL-Datenbank-Server als Server für den Agenten für elastische Aufträge aus.
    5. Wählen Sie eine Auftragsdatenbank auf dem logischen Server als Datenbank des Agents für elastische Aufträge aus. Bei einigen Überprüfungen wird sichergestellt, dass die Datenbank geeignet ist.
    6. Wählen Sie unter Dienstebene die Option JA 100 aus.
    7. Wählen Sie dann Weiter: Identität.
    8. Es gibt zwei Methoden für die Authentifizierung des Auftrags-Agents bei den Zielservern/-datenbanken: Microsoft Entra-Authentifizierung mit einer benutzerseitig zugewiesenen verwalteten Identität (UMI) oder datenbankbasierte Anmeldeinformationen.
      1. Erstellen Sie die UMI außerhalb des Bereitstellungsprozesses des Agents für elastische Aufträge oder verwenden Sie eine vorhandene UMI. Wählen Sie Benutzerseitig zugewiesene verwaltete Identität hinzufügen. Wählen Sie die UMI aus. Wählen Sie Hinzufügen.
      2. Um datenbankübergreifende Anmeldeinformationen zu verwenden, lesen Sie die Schritte weiter unten in diesem Lernprogramm.
    9. Klicken Sie auf Weiter: Tags.
    10. Erwägen Sie die Verwendung von Azure-Tags. Zum Beispiel das Tag "’Owner’ oder ‚CreatedBy’, um festzustellen, wer die Ressource erstellt hat, und das Tag ‚Environment’, um festzustellen, ob sich die Ressource in der Produktion, in der Entwicklung usw. befindet. Weitere Informationen finden Sie unter Ihre Benennungs- und Tagging-Strategie für Azure-Ressourcen entwickeln.
    11. Klicken Sie auf Überprüfen und Erstellen.
    12. Überprüfen Sie die Auswahl Ihres neuen Agents für elastische Aufträge auf der Seite Überprüfen und Erstellen und wählen Sie dann Erstellen.
    13. Weitere Schritte sind erforderlich, um sich bei den Zielservern/-datenbanken zu authentifizieren. Fahren Sie mit den Schritten in den folgenden Abschnitten dieses Lernprogramms fort.

Erstellen der Auftrags-Agent-Authentifizierung

Der Agent für elastische Aufträge muss in der Lage sein, sich bei jedem Zielserver oder jeder Zieldatenbank zu authentifizieren. In diesem Abschnitt erläutern wir die Schritte, die erforderlich sind, damit sich der Agent für elastische Aufträge bei Servern/Datenbanken in Zielgruppen authentifizieren kann.

Es gibt zwei Optionen für die Authentifizierung eines Agents für elastische Aufträge für Ziele:

Verwenden Sie die Microsoft Entra-Authentifizierung mit einer vom Benutzer zugewiesenen verwalteten Identität (UMI)

Verwenden Sie die Microsoft Entra-Authentifizierung (früher Azure Active Directory) mit einer benutzerseitig zugewiesene verwaltete Identität (UMI). Dies ist die empfohlene Authentifizierungsmethode.

  1. Aktivieren Sie die Microsoft Entra-Authentifizierung (vormals Azure Active Directory) für alle logischen Auftragszielserver(n)/Datenbank(en) und auf dem logischen Server für die Auftragsausgabe.
  2. Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität (UMI), falls erforderlich, oder verwenden Sie eine bereits vorhandene.
    • Eine neue UMI kann über die Azure-Portal, Azure CLI, PowerShell, Resource Manager oder REST-API erstellt werden.
  3. Weisen Sie die UMI dem erstellten Agent für elastische Aufträge zu.
    • Es wird empfohlen, bei der Erstellung des Agents für elastische Aufträge eine UMI zuzuweisen, siehe die Schritte in Erstellen und Konfigurieren des Agents für elastische Aufträge. Weisen Sie beim Erstellen eines Auftrags-Agents im Azure-Portal auf der Registerkarte Identität diesen als Agent für elastische Aufträge aus.
    • Um einen bestehenden Agent für elastische Aufträge auf die Verwendung einer UMI zu aktualisieren, navigieren Sie auf der Azure-Portalseite für den Agent für elastische Aufträge unter dem Menüpunkt Sicherheit im Ressourcenmenü zu Identität. Wählen Sie die UMI aus, und weisen Sie sie dem Agent für elastische Aufträge zu.
    • Verwenden Sie beim Erstellen oder Aktualisieren eines elastischen Job-Agenten mit New-AzSqlElasticJobAgent oder Set-AzSqlElasticJobAgent PowerShell Cmdlets die Parameter: -IdentityType UserAssigned -IdentityID <identity resource path>. Beispiel:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • Die REST-API kann ebenfalls verwendet werden, um den Agent für elastische Aufträge zu erstellen oder zu aktualisieren.
  4. Erstellen Sie eine Zielgruppe und fügen Sie Ziele für die Aufträge hinzu. Definieren Sie die Zielgruppe und die Ziele (die Datenbanken, gegen die Sie den Auftrag ausführen möchten) mit PowerShell oder definieren Sie die Zielgruppe und die Ziele mit T-SQL.
  5. Erstellen Sie in jedem der Zielserver/Datenbanken einen enthaltenen Benutzer, der den UMI- oder datenbankbezogenen Anmeldeinformationen mithilfe von T-SQL oder PowerShell zugeordnet ist:
    1. Erstellen der Auftragsauthentifizierung mit T-SQL.
    2. Erstellen Sie die Auftragsauthentifizierung mit PowerShell.
  6. Erstellen Sie in der Ausgabedatenbank den Benutzer für den UMI-Auftrag und weisen Sie ihm die entsprechenden Berechtigungen zu. Verbinden Sie sich mit der Ausgabedatenbank und führen Sie das folgende Beispielskript für einen Benutzer namens jobuserUMI aus:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Wenn Ausgabeparameter im sp_add_jobstep-Aufruf in the @output_table_name argument angegeben werden, müssen der Job-Agent-UMI oder datenbankbezogenen Anmeldeinformationen Berechtigungen zum CREATE TABLE (TABELLE ERSTELLEN) und INSERT (EINFÜGEN) Daten in dieser Ausgabetabelle erteilt werden.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. Erteilen Sie dem Datenbankbenutzer auf dem/den einzelnen Zielserver(n) bzw. der/den einzelnen Zieldatenbank(en) die erforderlichen Berechtigungen zur Ausführung von Auftragsskripten. Diese Berechtigungen variieren je nach den Anforderungen der T-SQL-Abfrage.

Datenbankübergreifende Anmeldeinformationen verwenden

Sie können in der Auftragsdatenbank und in jedem Zielserver/jeder Zieldatenbank eine datenbankübergreifende Anmeldeinformation zur Authentifizierung verwenden. In der Vergangenheit waren datenbankgestützte Anmeldeinformationen die einzige Option, die bei elastischen Aufträgen zur Verfügung stand.

Hinweis

Wenn dem Auftrags-Agenten eine UMI zugewiesen ist, wird die SQL-Authentifizierung nicht für die Verbindung zu seinen Zielen verwendet. Der Auftrags-Agent verwendet nur die Microsoft Entra-Authentifizierung mit der UMI, um eine Verbindung mit allen Zieldatenbanken herzustellen.

  1. Erstellen Sie eine datenbankübergreifende Anmeldeinformation in der Auftragsdatenbank.
    1. Verwenden Sie PowerShell, um eine datenbankübergreifende Anmeldeinformation zu erstellen
    2. Verwenden Sie T-SQL, um eine datenbankbezogene Anmeldeinformation zu erstellen.
  2. Definieren Sie die Zielgruppe (die Datenbanken, gegen die Sie den Auftrag ausführen möchten) mit PowerShell oder definieren Sie Ziele mit T-SQL.
  3. Erstellen Sie in jeder Zieldatenbank, in der der Auftrag ausgeführt werden soll, ein Login/einen Benutzer für den Auftrags-Agent. Das Login/Der Benutzer auf jedem Zielserver/jeder Zieldatenbank muss denselben Namen wie die Identität der datenbankübergreifenden Anmeldeinformationen für den Auftragsbenutzer und dasselbe Passwort wie die datenbankübergreifenden Anmeldeinformationen für den Auftragsbenutzer haben.
    1. Verwenden Sie PowerShell, um die Anmeldeinformationen und den Benutzer zu den einzelnen Zieldatenbanken hinzuzufügen.
    2. Weitere Informationen zum Hinzufügen von Benutzern finden Sie unter Autorisieren des Server- und Datenbankzugriffs über Logins und Benutzerkonten.
  4. Erstellen Sie in der Ausgabedatenbank den Benutzer für den Auftrag und weisen Sie ihm die entsprechenden Berechtigungen zu.
    1. Verbinden Sie sich mit der Datenbank master des logischen Servers, der die Ausgabedatenbank hostet. Wenn noch keine vorhanden ist, erstellen Sie ein authentifiziertes SQL-Login mit demselben Namen wie die Identität der datenbankübergreifenden Anmeldeinformationen für den Auftragsbenutzer und demselben Passwort wie die datenbankübergreifenden Anmeldeinformationen für den Auftragsbenutzer.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Verbinden Sie sich mit der Ausgabedatenbank und führen Sie das folgende Beispielskript für einen Benutzer namens job_user aus:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Wenn Ausgabeparameter im sp_add_jobstep-Aufruf im Argument @output_table_name angegeben werden, müssen dem Job-Agent-UMI oder datenbankbezogenen Anmeldeinformationen Berechtigungen für CREATE TABLE (TABELLE ERSTELLEN) und INSERT (EINFÜGEN) Daten in dieser Ausgabetabelle erteilt werden.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. Erteilen Sie dem Datenbankbenutzer auf dem/den einzelnen Zielserver(n) bzw. der/den einzelnen Zieldatenbank(en) die erforderlichen Berechtigungen zur Ausführung von Auftragsskripten. Diese Berechtigungen variieren je nach den Anforderungen der T-SQL-Abfrage.

Erstellen, Ausführen und Verwalten von Aufträgen

  1. Verwenden Sie PowerShell, um einen Auftrag zu erstellen, oder verwenden Sie T-SQL, um einen Auftrag zu erstellen.
  2. Fügen Sie jedem elastischen Auftrag Schritte hinzu. Für jeden Auftragsschritt muss eine Zielgruppe ausgewählt werden. Verwenden Sie PowerShell, um Auftragsschritte hinzuzufügen oder T-SQL.
  3. Verwenden Sie PowerShell, um einen Auftrag auszuführen, oder verwenden Sie T-SQL, um einen Auftrag auszuführen.
  4. Überwachen Sie den Status der Auftragsausführung über das Azure-Portal, überwachen Sie Aufträge mit PowerShell oder mit T-SQL.

Konfigurieren des privaten Azure SQL-Endpunkts für elastische Aufträge

Jeder Zielserver kann über einen dienstverwalteten privaten Endpunkt erreicht werden, der von Microsoft erstellt und verwaltet wird und ausschließlich für die Verwendung mit elastischen Aufträgen bestimmt ist. Das Erstellen eines privaten Endpunkts für elastische Aufträge stellt eine private Verbindung zwischen dem elastischen Auftrag und dem Zielserver her. Sobald die Konfiguration abgeschlossen ist, erfolgt die gesamte Kommunikation zwischen dem Agent für elastische Aufträge und dem Zielserver über den privaten Endpunkt.

Die Konfiguration ist einfach. Sie müssen für jeden gewünschten Zielserver und den Auftragsausgabeserver einen privaten Endpunkt erstellen, um diese Kommunikation zu ermöglichen.

  1. Wählen Sie im Navigationsmenü des elastischen Auftrags-Agents unter Sicherheit die Option Private Endpunkte.
  2. Wählen Sie Server hinzufügen und privaten Endpunkt erstellen.
  3. Es öffnet sich das Fenster Privaten Endpunkt erstellen.
    1. Sie können einen Zielserver von einem beliebigen Abonnement aus überall in Azure auswählen.
    2. Wählen Sie einen logischen Azure SQL-Database-Zielserver in diesem Abonnement.
    3. Geben Sie einen Namen für den privaten Endpunkt an.
  4. Wählen Sie Privaten Endpunkt erstellen aus. Die Bereitstellung dauert etwas. Kurz darauf wird der Verbindungsstatus auf der Seite Private Endpunkte als Ausstehend angezeigt.
  5. Navigieren Sie im Azure-Portal zu dem logischen Azure SQL-Datenbank-Zielserver.
  6. Als Administrator dieses logischen Azure SQL-Datenbank-Zielservers wählen Sie im Navigationsmenü des SQL-Servers unter Sicherheit die Option „Netzworking.
  7. Wählen Sie Privater Zugriff aus.
  8. Genehmigen Sie die Anforderung des ausstehenden privaten Endpunkts.
  9. Der Verbindungsstatus auf der Seite Private Endpunkte wird mit Genehmigt angezeigt. Jetzt läuft jede Kommunikation zwischen dem Auftrags-Agenten und den Datenbanken oder Pools für elastische Datenbanken auf dem logischen Azure SQL-Database-Zielserver über den vom Dienst verwalteten privaten Endpunkt.
  10. Als Administrator dieses logischen Azure SQL-Datenbank-Zielservers wählen Sie im Navigationsmenü des SQL-Servers unter „Sicherheit“ die Option Networking. Es ist nicht notwendig, den öffentlichen Zugang zum Zweck der Ausführung der elastischen Ausführung freizuschalten.

Konfigurieren von Auftrags-Agent-Warnungen mit Azure Monitor

Konfigurieren Sie Azure Monitor-Benachrichtigungen für die Ressource des Agenten für elastische Aufträge, um über den Auftragsausführungsstatus benachrichtigt zu werden. So können Sie beispielsweise über benutzerkonfigurierte Aktionsgruppen über das Scheitern/den Erfolg eines Auftrags benachrichtigt werden.

Sie können das Azure-Portal, PowerShell oder die REST-API zum Erstellen von Benachrichtigungen zum Agent für elastische Aufträge verwenden.

Erstellen von Auftrags-Agent-Benachrichtigungen über das Azure-Portal

Erstellen Sie Azure Monitor-Benachrichtigungsregeln mit der Azure-Portal, Azure CLI, PowerShell oder REST-API. Warnregeln für elastische Aufträge funktionieren ähnlich wie andere Warnregeln, z. B. für Azure SQL-Datenbank.

So fahren Sie mit dem Azure-Portal fort:

  1. Gehen Sie im Ressourcenmenü des Azure-Portals für den Agent für elastische Aufträge zum Menü Überwachen und wählen Sie Benachrichtigungen.
  2. Wählen Sie unter Benachrichtigungsregeln für diese Ressource einrichten die Option Benachrichtigungsregel erstellen.
  3. Auf der Seite Benachrichtigungsregel erstellen wird die Seite Signal auswählen geöffnet. Wählen Sie die elastischen Auftragsmetriken Elastische Auftragsausführungen fehlgeschlagen, Elastische Auftragsausführungen erfolgreich oder Elastische Auftragsausführungen mit Zeitüberschreitung. Screenshot aus dem Azure-Portal mit der Seite „Erstellen einer Warnregel“.
  4. Belassen Sie unter Benachrichtungslogik den Schwellenwert, den Aggregationstyp, den Operator und die Einheit.
  5. Legen Sie Schwellenwert auf 0 fest. Lassen Sie adie anderen Einstellungen unverändert.
  6. Wählen Sie Weiter: Aktionen aus.
  7. Wählen Sie Aktionsgruppe erstellen oder wählen Sie eine bestehende Aktionsgruppe.
    1. Erstellen Sie Azure Monitor Benachrichtigungs-Aktionsgruppen im Azure-Portal, um Benachrichtigungseinstellungen festzulegen, z. B. an E-Mail-Administratoren oder Entwickler, die hinter diesem Fehler stehen könnten.
    2. Testen Sie die Benachrichtigungs-Aktionsgruppe.
  8. Wählen Sie Weiter: Details aus.
  9. Geben Sie eine Abonnement und eine Ressourcengruppe als Projektdetails an.
  10. Stellen Sie die Details zu den Benachrichtungsregeln für die Benachrichtungskommunikation bereit. Einen Namen für die Alert-Regel angeben.
  11. Wählen Sie Tags und geben Sie Metadaten wie CreatedBy oder Environment für diese Benachrichtigung an.
  12. Klicken Sie auf Überprüfen und Erstellen. Klicken Sie auf Erstellen. Es kann einige Minuten dauern, bis die Benachrichtigungsregel im Azure-Portal angezeigt wird.
  13. Erstellen Sie optional Azure Monitor-Warnungsverarbeitungsregeln mithilfe der Azure-Portal, Azure CLI oder PowerShell. Verwenden Sie Warnungsverarbeitungsregeln, um zu entscheiden, was passiert, wenn eine Warnung ausgelöst wird, z. B. das Unterdrücken von Benachrichtigungen oder das Anwenden bestimmter Aktionen auf bestimmte Arten von Warnungen.

Skalieren der Auftrags-Agents

Standardmäßig werden Auftrags-Agents auf JA100 erstellt, sodass bis zu 100 flexible Auftragsausführungen gleichzeitig möglich sind. Das Initiieren einer Änderung auf Dienstebene ist ein asynchroner Vorgang, und die neue Dienstebene wird nach kurzer Bereitstellungsverzögerung zur Verfügung gestellt.

Wenn Sie mehr als 100 gleichzeitige Ausführungen von Agents für elastische Aufträge benötigen, sind höhere Dienstebenen verfügbar, siehe Parallelkapazitätsstufen. Sie können derzeit die Dienstebene eines Auftrags-Agents über die Azure-Portal-, PowerShell- oder REST-API ändern.

Die Überschreitung des Servicelevels mit gleichzeitigen Aufträgen führt zu Verzögerungen in der Warteschlange, bevor die Aufträge beginnen, die das Limit des Service-Levels für gleichzeitige Aufträge überschreiten.

Skalieren des Agents für elastische Aufträge mithilfe des Azure-Portals

  1. Navigieren Sie im Azure-Portal zur Seite Agent für elastische Aufträge.
  2. Wählen Sie Preisniveau aus, oder wählen Sie im Kontextmenü die Option Hoch-/Runterskalieren aus.
  3. Wählen Sie in der Dropdownliste der Dienstebene eine neue Dienstebene aus.
  4. Überprüfen Sie die Tarifkarte.
  5. Wählen Sie Aktualisieren.

Skalieren des Agents für elastische Aufträge mithilfe von PowerShell

Der optionale -ServiceObjective-Parameter Set-AzSqlElasticJobAgent kann zum Angeben eines neuen Dienstziels verwendet werden. Zum Beispiel:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Skalieren des Agents für elastische Aufträge mithilfe der REST-API

Sie können die REST-API des Auftrags-Agents verwenden, um einen Auftrags-Agent zu skalieren. Zum Beispiel:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}