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 zusätzliche Schritte im Vergleich zur Verwendung eines lokalen SQL-Servers.

Anforderungen

  • Azure SQL-Datenbank können nur mit Azure DevOps Server 2019 und höheren Versionen verwendet werden.
  • Sie müssen den Azure DevOps Server auf einem virtuellen Azure-Computer installieren.
  • Der virtuelle Computer muss die vom System verwaltete Identität aktiviert haben, die zur Authentifizierung bei der Azure SQL-Datenbank verwendet wird.
  • Der virtuelle Computer muss einer Domäne, aber nicht einer Arbeitsgruppe beigetreten sein.
  • Azure SQL-Datenbanken müssen einzelne Datenbanken sein. Verwaltete Instanzen und elastische Pools werden in Azure DevOps Server 2022 und höher unterstützt.

Alle Allgemeinzweck- und Premium-SKUs werden unterstützt. Standard-SKUs S3 und höher werden ebenfalls unterstützt. Grundlegende SKUs und Standard-SKUs S2 und unten werden nicht unterstützt. Azure DevOps Server-Konfigurationen, die Azure SQL-Datenbank verwenden, unterstützen keine älteren SQL Server Reporting Services mit SQL Server Analysis Services-Berichterstellungsfeatures. Stattdessen können Sie azure DevOps Analytics verwenden.

Das Upgrade auf Azure DevOps Server wird nur von Team Foundation Server 2015 und höher unterstützt, wenn Sie Azure SQL-Datenbank 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

      Hinweis

      Sie können diesen Schritt überspringen, wenn Sie vorhandene Datenbanken für eine der folgenden Methoden verwenden:

      • Aktualisieren Sie eine neue Version von Azure DevOps Server.
      • Migrieren Sie eine aktuelle Instanz von Azure DevOps Server zu Azure SQL-Datenbank.
  3. Konfigurieren Sie die Azure Active Directory-Authentifizierung für Ihren Azure SQL-Datenbank-Server. Machen Sie sich selbst zum Active Directory-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.

  4. Aktivieren Sie Ihre verwaltete Identität oder Identitäten, wenn Sie mehrere Server verwenden, um sich bei Ihrer Azure SQL-Datenbank anzumelden und ihm die entsprechenden Berechtigungen zu erteilen. Stellen Sie mithilfe von SQL Server Management Studio eine Verbindung mit dem Datenbankserver her. Stellen Sie eine Verbindung mithilfe eines Azure Active Directory-Benutzers mit Active Directory-Authentifizierung her. Sie können Azure Active Directory-Benutzer nicht bearbeiten, wenn Sie sich bei Azure SQL-Datenbank unter SQL-Authentifizierung anmelden.

    a. Führen Sie den folgenden T-SQL-Befehl in der main Datenbank aus:

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

    Ersetzen Sie VMName durch den Namen des virtuellen Computers, dessen verwaltete Identität Sie der Datenbank hinzufügen.

    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  
    

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 das SQL Server Management Studio mithilfe von SSMS von der VM, die im selben VNET wie ein privater Endpunkt ausgeführt 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 SQL Server Management Studio-Assistenten zum Exportieren von Datenebenen 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. Wählen Sie mit der rechten Maustaste die SQL-Datenbank auf logischem SQL Server aus SSMS>Aufgaben>Assistent zum Exportieren von Datenebenenanwendung 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.

Voraussetzungen

Kategorie Anforderungen
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.

Herstellen einer Verbindung mit azure SQL-Datenbank

  1. Abrufen von 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. Konnektivität testen: Führen Sie eine Abfrage oder einen Befehl in SSMS aus, um die Konnektivität zu überprüfen:

     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.

Trinkgeld

  • 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.
    • Lösen Sie die Pipeline manuell aus oder richten Sie Trigger ein (z. B. bei Code-Commit, Zeitplan) gemäß Ihrer Bereitstellungsstrategie.
  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.

Trinkgeld

  • 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
Access 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.

    Screenshot zeigt die laufende Bereitschaftsprüfung.

Beheben von Fehlern

Im Falle eines Bereitschaftsprüfungsfehlers 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 Zusammenfassung der Anwendungsebene für den lokalen NT Authority-Dienst.

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 führen Sie die Bereitschafts-Prüfungen erneut aus. Screenshot zeigt, dass alle Überprüfungen erfolgreich waren.

Erfolgreiche Sicherungskonfiguration:Screenshot zeigt eine erfolgreiche Sicherungskonfiguration.

Geplante Sicherungsprotokolle:Screenshot zeigt geplante Sicherungsprotokolldateien.

geplante Sicherungen der Verwaltungskonsole:Screenshot zeigt die 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\TFS_Scheduled Backups_0627_192409.logBeispielprotokolldateifehlermeldung:[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.