Freigeben über


Verwenden von Azure SQL-Datenbank mit Azure DevOps Server

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Führen Sie die Schritte in diesem Artikel aus, um Azure DevOps Server mit Azure SQL-Datenbank zu konfigurieren. Diese Topologie verfügt über einige weitere Schritte im Vergleich zur Verwendung eines lokalen SQL-Servers.

Voraussetzungen

Kategorie Anforderungen
Azure DevOps Server-Version Azure SQL-Datenbank können nur mit Azure DevOps Server 2019 und höheren Versionen verwendet werden.
Installationsumgebung Azure DevOps Server auf einer Azure-VM installiert.
Authentifizierung Der virtuelle Computer (VM) verfügt über eine vom System verwaltete Identität, die zur Authentifizierung bei der Azure SQL-Datenbank verwendet wird.
Domänenmitgliedschaft Der virtuelle Computer ist mit einer Domäne verbunden, aber keine Arbeitsgruppe.
Datenbanktyp Azure SQL-Datenbanken sind einzelne Datenbanken. Verwaltete Instanzen und elastische Pools werden in Azure DevOps Server 2022 und höher unterstützt.
Firewallregeln Firewallregeln für Azure SQL-Datenbanken ermöglichen eingehende Verbindungen von der IP-Adresse oder dem Subnetz, in dem Azure DevOps Server gehostet wird. Wechseln Sie dazu zu: Azure-Portal>Azure SQL-Datenbank>Einstellungen>Firewalls und virtuellen Netzwerken> eine neue Regel hinzufügen, um den Zugriff von der öffentlichen IP-Adresse oder dem Subnetz Ihres Azure DevOps Servers zu ermöglichen.
Werkzeuge – Azure SQL-Datenbank bereitgestellt und über Azure zugänglich. Datensatz des Servernamens, des Datenbanknamens und der Authentifizierungsmethode.
– Azure DevOps Server 2022, das in Ihrer lokalen Umgebung ausgeführt wird.
– SSMS auf demselben Computer installiert, auf dem Azure DevOps Server installiert ist.

Alle General Purpose- und Premium-SKUs sowie Standard-SKUs ab S3 werden unterstützt. Sowohl Basic-SKUs als auch Standard-SKUs S2 werden jedoch nicht unterstützt.

Azure DevOps Server-Konfigurationen, die Azure SQL-Datenbank verwenden, unterstützen keine älteren SQL Server Reporting Services-Features mit SQL Server Analysis Services-Berichterstellungsfeatures. Stattdessen können Sie Azure DevOps Analytics für Berichte und Analysen verwenden.

Azure SQL-Datenbank unterstützt keine verschlüsselten gespeicherten Prozeduren.

Einrichten von Azure SQL-Datenbank

  1. Konfigurieren Sie eine verwaltete Identität auf Ihren virtuellen Computern. Zurzeit unterstützen wir nur vom System verwaltete Identitäten.

    Sie können die Konfiguration mit allen Standardmechanismen ausführen, einschließlich der folgenden:

  2. Um eine neue Azure DevOps Server-Instanz einzurichten, erstellen Sie zwei Azure SQL-Datenbanken:

    • AzureDevOps_Configuration
    • AzureDevOps_DefaultSammlung
  3. Konfigurieren Sie die Microsoft Entra ID-Authentifizierung für Ihren Azure SQL-Datenbankserver. Machen Sie sich selbst zum Microsoft Entra-Administrator auf dem Server. Sie benötigen Administratorberechtigungen für die Datenbank, um die verbleibenden Konfigurationsschritte auszuführen. Sie können diese Berechtigung später ändern.

    a) Führen Sie den folgenden T-SQL-Befehl in Der Hauptdatenbank aus. Ersetzen Sie VMName durch den Namen des virtuellen Computers, dessen verwaltete Identität Sie der Datenbank hinzufügen:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    b. Führen Sie den folgenden T-SQL-Befehl für die Konfiguration und alle Sammlungsdatenbanken aus:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo
    

    Ihre Datenbank ermöglicht es Ihrer VM jetzt, über die verwaltete Identität zu kommunizieren.

    Hinweis

    Wenn Sie Änderungen an Ihrer Azure-VM vornehmen, z. B. eine Momentaufnahme wiederherstellen oder den virtuellen Computer umbenennen, um die Verbindung wiederherzustellen:

Konfigurieren von Azure DevOps Server

Kehren Sie zum Azure DevOps Server-Konfigurationsassistenten zurück. Wenn Sie eine neue Instanz einrichten, wählen Sie "Dies ist eine neue Azure DevOps Server-Bereitstellung" aus. Wenn Sie ein Upgrade durchführen oder migrieren und vorhandene Daten in Ihren Datenbanken haben, wählen Sie "Ich habe vorhandene Datenbanken für diese Azure DevOps Server-Bereitstellung verwenden" aus.

Wenn Sie die Datenbankseite im Konfigurations-Assistenten aufrufen, geben Sie die Azure SQL-Datenbank Serverinstanz an. In der Regel befindet sich die Serverinstanz in Form von SQLInstanceName.database.windows.net.

Sie verfügen jetzt über eine Azure DevOps Server-Instanz, die auf Azure SQL-Datenbank ausgeführt wird.

Herstellen einer Verbindung mit einer Azure SQL-Datenbank über lokale SSMS

Führen Sie die folgenden Schritte aus, um eine Verbindung mit einer Azure SQL-Datenbank herzustellen, die von Ihrem lokalen SSMS stammt:

  1. Exportieren Sie über SQL Server Management Studio (SSMS) von der virtuellen Maschine, die im selben virtuellen Netzwerk wie ein privater Netzwerkendpunkt betrieben wird, von SQL in den Blob-Speicher oder die Dateifreigabe.

    Screenshot zeigt Schaltflächen, die für die Auswahl der Export Data Tier Application hervorgehoben sind.

  2. Sie können den Datenebenen-Anwendungs-Assistenten von SQL Server Management Studio verwenden, um die Azure SQL-Datenbank in eine BACPAC-Datei zu exportieren. Sie können die BACPAC-Datei in Azure Blob Storage oder im Fileshare speichern.

    Screenshot zeigt den Einführungsbildschirm zum Exportieren Ihrer Datenbank.

  3. Klicken Sie mit der rechten Maustaste auf die SQL-Datenbank im logischen SQL Server in SSMS>, wählen Sie Aufgaben> und dann Assistent zum Exportieren von Datenbankebenenanwendungen aus.

    Screenshot zeigt den eingegebenen Speicherort der Bacpac-Datei auf dem Bildschirm

  4. Wählen Sie Weiteraus.

    Screenshot zeigt eine Zusammenfassung Der angegebenen Einstellungen.

  5. Wählen Sie den Speicherort aus, an dem die BACPAC-Datei gespeichert werden soll.

    Screenshot zeigt die Meldung „Vorgang abgeschlossen“ und die Ergebnisseite.

  6. Wählen Sie Schließenaus.

Die DAC-Pakete befinden sich hier: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Verbinden mit der Azure SQL-Datenbank vom Azure DevOps Server 2022

Das Verbinden der Azure SQL-Datenbank von Azure DevOps Server 2022 (lokal) umfasst das Konfigurieren des Zugriffs, die Sicherstellung der Konnektivität und die Verwendung geeigneter Anmeldeinformationen. Führen Sie die folgenden Schritte aus, um die Azure SQL-Datenbank von Azure DevOps Server 2022 zu verbinden.

Herstellen einer Verbindung mit azure SQL-Datenbank

  1. Abrufen der Azure SQL-Datenbankverbindungsdetails:

    • Server-Name: <your-server-name>.database.windows.net
    • Datenbankname: <your-database-name>
    • Authentifizierungsmethode: SQL Server-Authentifizierung (Benutzername/Kennwort) oder Microsoft Entra ID-Authentifizierung.
  2. Verbinden mit SQL Server Management Studio (SSMS): a. Öffnen Sie SQL Server Management Studio auf dem Computer, auf dem Azure DevOps Server installiert ist. b. Stellen Sie eine Verbindung mit der Azure SQL-Datenbank her: c. Starten Sie SSMS. d. Im Fenster "Mit Server verbinden":

    • Geben Sie den Servernamen ein: <your-server-name>.database.windows.net
    • Wählen Sie "Authentifizierung" aus: SQL Server-Authentifizierung.
    • Geben Sie Ihren Benutzernamen und Ihr Kennwort ein.
    • Wählen Sie Verbinden aus. Nach der Verbindung wird die Azure SQL-Datenbank im Objekt-Explorer in SSMS aufgeführt.
  3. Testen der Konnektivität: Ausführen einer Abfrage oder eines Befehls in SSMS:

     SELECT @@VERSION;
    

    Diese Abfrage gibt die SQL Server-Version Ihrer Azure SQL-Datenbank zurück, wobei bestätigt wird, dass die Verbindung erfolgreich ist.

  4. Verbindung in Azure DevOps Server verwenden: Nachdem Sie die Verbindung von SSMS überprüft haben, können Sie diese Verbindung in Azure DevOps Server für verschiedene Aufgaben wie:

    • Automatisierte Bereitstellungen: Einrichten von Releasepipelines in Azure DevOps Server zum Bereitstellen von Datenbankänderungen.
    • Datenmigration: Verwenden Sie SQL-Skripts oder Datentools, die in Azure DevOps Server integriert sind.
    • Kontinuierliche Integration: Integrieren Sie Datenbankänderungen in Ihre CI/CD-Pipelines.

Tipp

  • Sicher sein: Erwägen Sie die Verwendung der Microsoft Entra-ID für einen sichereren Zugriff.
  • Verwalten von Anmeldeinformationen: Speichern Sie Anmeldeinformationen sicher und vermeiden Sie die Hardcodierung in Skripts oder Konfigurationen.
  • Überwachen: Überwachen von Datenbankverbindungen und -verwendung, um Sicherheit und Leistung sicherzustellen.

Verbinden Sie die Azure SQL-Datenbank von Azure DevOps Server 2022, die lokal ausgeführt wird, und ermöglichen Sie eine optimierte Datenbankverwaltung und Integration in Ihre Entwicklungs- und Bereitstellungsprozesse. Passen Sie Konfigurationen und Sicherheitsmaßnahmen basierend auf den Richtlinien und Anforderungen Ihrer Organisation an.

Verwenden Ihrer Azure SQL-Datenbankverbindung in Azure DevOps Server 2022

  1. Vorbereiten von Azure DevOps Server:
    a. Stellen Sie sicher, dass Azure DevOps Server 2022 auf Ihrer lokalen Umgebung installiert und konfiguriert ist.</
    b. Zugriff auf den Azure DevOps-Server mit entsprechenden Berechtigungen zum Erstellen und Verwalten von Pipelines.

  2. Einrichten des Azure DevOps-Projekts und -Repositorys (sofern noch nicht geschehen):
    a. Erstellen Sie ein neues Oder verwenden Sie ein vorhandenes Azure DevOps-Projekt.
    b. Richten Sie ein Git- oder TFVC-Repository ein, um Ihre Pipelinedefinitionen und Skripts zu speichern.

  3. Erstellen einer Pipeline:
    a. Wechseln Sie zu Ihrem Azure DevOps-Projekt.
    b. Wählen Sie Pipelines>Pipelines>Neue Pipelineaus.
    c. Wählen Sie die entsprechende Pipelinevorlage basierend auf Ihren Anforderungen aus. Bei Azure SQL-Datenbank können Sie mit einem leeren Auftrag beginnen oder eine Vorlage auswählen, die Ihren Bereitstellungsanforderungen entspricht (z. B. Azure Pipeline).
    d. Bearbeiten Sie die YaML-Pipelinedatei, oder verwenden Sie den klassischen Editor, um Ihre Pipelinephasen und -aufgaben zu definieren.

  4. Hinzufügen von Aufgaben zur Bereitstellung in der Azure SQL-Datenbank:

    • Aufgabe: SQL Server-Datenbankbereitstellung: Verwenden Sie die aufgabe SqlAzureDacpacDeployment, um Änderungen in Ihrer Azure SQL-Datenbank bereitzustellen. Beispiel für YAML-Codeausschnitt:

      steps:
      - task: SqlAzureDacpacDeployment@1
        inputs:
          azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
          serverName: '<your-server-name>.database.windows.net'
          databaseName: '<your-database-name>'
          deployType: 'DacpacTask'
          authenticationType: 'server'
          sqlUsername: '$(sqlUsername)'
          sqlPassword: '$(sqlPassword)'
      

      Ersetzen Sie <your-server-name>, <your-database-name>, $(sqlUsername)und $(sqlPassword) durch geeignete Werte oder Variablen.

    • Aufgabe: Azure SQL-Abfrage: Verwenden Sie die aufgabe AzureSqlQuery, um SQL-Abfragen für Ihre Azure SQL-Datenbank auszuführen. Beispiel für YAML-Codeausschnitt:

      steps:
      - task: AzureSqlQuery@1
       inputs:
         azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
         serverName: '<your-server-name>.database.windows.net'
         databaseName: '<your-database-name>'
         sqlUsername: '$(sqlUsername)'
         sqlPassword: '$(sqlPassword)'
         sqlQuery: 'SELECT * FROM TableName'
      
  5. Sicheres Verwalten von Anmeldeinformationen: Verwenden von Azure DevOps-Variablen oder der Azure Key Vault-Integration zum Verwalten vertraulicher Informationen wie SQL Server-Anmeldeinformationen (sqlUsername und sqlPassword).

  6. Trigger- und Ausführungspipeline:

    • Speichern und übernehmen Sie die Pipelineänderungen.
    • Starten Sie die Pipeline manuell oder richten Sie Trigger gemäß Ihrer Bereitstellungsstrategie ein (z. B. bei einem Code-Commit, zeitlich festgelegten Ereignis).
  7. Überwachen der Pipelineausführung:

    • Überwachen Sie Pipeline-Ausführungen in Azure DevOps, um sicherzustellen, dass Bereitstellungen in Azure SQL-Datenbank erfolgreich sind.
    • Überprüfen Sie Protokolle und Ausgaben, um Probleme während der Bereitstellung zu beheben.

Tipp

  • Integration in die Release-Pipelines: Integrieren Sie Ihre Build-Pipeline in die Release-Pipelines für komplexere Bereitstellungsszenarien und Genehmigungen.
  • Inkrementelle Datenbankänderungen vornehmen: Verwenden Sie Tools wie SQL Server Data Tools (SSDT) oder Migrationen, um inkrementelle Änderungen am Datenbankschema zu verwalten.
  • Versionssteuerung verwenden: Halten Sie Ihre SQL-Skripts und Datenbankänderungen unter Versionskontrolle, um Änderungen nachzuverfolgen und die Reproduzierbarkeit sicherzustellen.

Passen Sie Konfigurationen und Aufgaben basierend auf Ihren spezifischen Bereitstellungsanforderungen und organisatorischen Anforderungen an.

Erstellen einer SQL Server-Sicherung

Zum Erstellen einer SQL Server-Sicherung für Azure DevOps Server 2022 mithilfe der Azure DevOps Server-Verwaltungskonsole müssen Sicherungseinstellungen konfiguriert und regelmäßige Sicherungen geplant werden. Führen Sie die folgenden Schritte aus, um eine SQL Server-Sicherung zu erstellen.

Voraussetzungen für die Sicherung

Kategorie Anforderungen
Zugriff Administrator Zugriff auf den Server, auf dem der Azure DevOps Server installiert ist.
Berechtigungen Berechtigung zum Konfigurieren von Sicherungen und Zugreifen auf SQL Server Management Studio.

Sicherung erstellen

  1. Starten Sie die Azure DevOps Server-Verwaltungskonsole auf dem Server, auf dem Azure DevOps Server installiert ist, und wählen Sie Anwendungsebene>geplante Sicherungen>Erstellen geplanter Sicherungen.

    Screenshot zeigt Schaltflächen für die Auswahl in der Verwaltungskonsole zum Erstellen einer geplanten Sicherung.

  2. Geben Sie den Netzwerksicherungspfad ein, und wählen Sie dann Nextaus.

    Screenshot zeigt den eingegebenen Netzwerksicherungspfad.

  3. Wählen Sie alle gewünschten E-Mail-Benachrichtigungen aus, und wählen Sie dann Weiteraus.

    Screenshot mit hervorgehobener Schaltfläche

  4. Wählen Sie einen Sicherungszeitplan basierend auf Ihren Anforderungen aus, und wählen Sie dann Nextaus.

    Screenshot zeigt den ausgewählten Sicherungszeitplan und hervorgehobene Schaltfläche

  5. Bestätigen Sie Ihre Konfigurationseinstellungen, und wählen Sie Überprüfen Sieaus.

    Screenshot mit hervorgehobener Schaltfläche

    Der Sicherungs-Assistent überprüft, ob der Sicherungspfad vorhanden ist und ein Netzwerkpfad ist.

    Der Screenshot zeigt den Fortschritt der Bereitschaftsprüfung.

Beheben von Fehlern

Wenn ein Bereitschaftsprüfungsfehler auftritt, finden Sie in den folgenden Informationen Hilfe zur Problembehandlung.

Fehler: Dienstkontozugriff

Screenshot zeigt den Umgebungsfehler während der Bereitschaftsprüfung.

Fehlermeldung:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Dieser Fehler tritt auf, wenn das Dienstkonto NT AUTHORITY\LOCAL SERVICE ist.

Screenshot der Anwendungsebenen-Zusammenfassung für NT Authority Local Service.

Lösung:

  1. Erstellen Sie einen lokalen Benutzer mit den erforderlichen Zugriffsberechtigungen. Screenshot zeigt neu erstellte lokale Benutzer und Zugriffsmöglichkeiten.

  2. Wechseln Sie in der Azure DevOps Server-Verwaltungskonsole zum Bildschirm Anwendungsschicht und wählen Sie Konto ändernaus.

  3. Ändern Sie das Dienstkonto in das neu erstellte lokale Benutzerkonto. Screenshot zeigt neue Benutzergruppenmitgliedschaften.

  4. Wiederholen Sie den Sicherungsvorgang, um die Sicherung erfolgreich zu erstellen und die Bereitschaftsprüfungen erneut durchzuführen. Screenshot zeigt, dass alle Überprüfungen erfolgreich waren.

    Erfolgreiche Sicherungskonfiguration:

    Screenshot der erfolgreichen Sicherungskonfiguration.

    Geplante Sicherungsprotokolle:

    Screenshot zeigt geplante Sicherungsprotokolldateien.

    Geplante Sicherungen der Verwaltungskonsole:

    Screenshot der Verwaltungskonsole mit dem Bildschirm

Fehler: Protokolldatei

Screenshot zeigt hervorgehobenen Link, um jetzt die vollständige Sicherung zu erstellen.

Beispielspeicherort der Protokolldatei:

C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log

Beispielprotokolldatei-Fehlermeldung:

[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)

Lösung:

  • Stellen Sie sicher, dass alle Dateigruppen online sind, bevor Sie die Sicherung ausführen.

    Beispiel "LeadingKeyOffline":Screenshot zeigt Datenbankeigenschaften und Beispiel für LeadingKey-Datenbankdatei.

  • Testen Sie den Sicherungsvorgang mithilfe von SQL-Abfragen, um Probleme mit bestimmten Dateigruppen zu identifizieren und zu beheben.