Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Datenintegration und Datenzugriff » WKL Database Gateway » Anleitungen » So spielen Sie Datenbank-Updates ohne Datendienst ein

So spielen Sie Datenbank-Updates ohne Datendienst ein

Ihr Softwarehersteller liefert Änderungen an der Datenbank als signierte Pakete, Sie betreiben aber keinen Datendienst. Dann spielt der Dienst „WKL Database Update“ die Pakete auf dem Server ein: geprüft, gesichert, in einer Transaktion, mit Bestätigung, wo Sie es wünschen.

Lösungsübersicht

graph LR
    H[Hersteller] -->|signiertes Paket| E[Eingangsordner]
    E --> D[Dienst WKL Database Update]
    K[Geschützte Konfiguration] --> D
    D -->|prüfen, sichern, einspielen| B[(Datenbank)]
    A[Administrator] -->|Befehlszeile| D

Sie installieren den Dienst, legen je Datenbank eine geschützte Konfiguration mit den Schlüsseln des Herstellers an und geben dem Konto des Dienstes die nötigen Berechtigungen in der Datenbank. Danach nimmt der Dienst jedes Paket aus dem Eingangsordner. Was warten soll, bestätigen Sie mit der Befehlszeile auf dem Server. Alle Einzelheiten stehen in der Referenz.

Umsetzung

  1. Installieren Sie das Paket als Administrator:

    msiexec /i Wkl.Data.Update-1.0.0.msi /qn /l*v install.log

    Der Dienst Wkl.Data.Update läuft danach unter dem Konto NT SERVICE\Wkl.Data.Update. Für ein gruppenverwaltetes Dienstkonto geben Sie UPD_SERVICE_ACCOUNT=DOMÄNE\name$ mit.

  2. Geben Sie dem Konto des Dienstes in SQL Server eine Anmeldung und in der Datenbank die Berechtigungen, Struktur zu ändern und zu sichern, etwa die Rolle db_owner. Sollen offene Sitzungen älterer Anwendungen eine Frist aufhalten, braucht die Anmeldung zusätzlich VIEW SERVER STATE (ab SQL Server 2022 VIEW SERVER PERFORMANCE STATE).

    CREATE LOGIN [NT SERVICE\Wkl.Data.Update] FROM WINDOWS;
    USE Kunden;
    CREATE USER [NT SERVICE\Wkl.Data.Update] FOR LOGIN [NT SERVICE\Wkl.Data.Update];
    ALTER ROLE db_owner ADD MEMBER [NT SERVICE\Wkl.Data.Update];

    Läuft SQL Server auf einem anderen Rechner, gilt das virtuelle Konto dort als Computerkonto (DOMÄNE\SERVER$); nehmen Sie dann ein gruppenverwaltetes Dienstkonto.

  3. Legen Sie Eingangs- und Archivordner an. Beide ändern nur Administratoren, SYSTEM und das Konto des Dienstes, das darin die Unterordner done und failed anlegt und Pakete archiviert:

    mkdir D:\Updates\Kunden D:\Updates\Kunden-Archiv
    icacls D:\Updates\Kunden /inheritance:r /grant:r *S-1-5-32-544:(OI)(CI)F *S-1-5-18:(OI)(CI)F "NT SERVICE\Wkl.Data.Update:(OI)(CI)M"
    icacls D:\Updates\Kunden-Archiv /inheritance:r /grant:r *S-1-5-32-544:(OI)(CI)F *S-1-5-18:(OI)(CI)F "NT SERVICE\Wkl.Data.Update:(OI)(CI)M"
  4. Legen Sie die geschützte Konfiguration an, als Administrator, in C:\ProgramData\WKL\Database Update\databases\kunden.json:

    {
      "format": 1, "id": "kunden", "product": "Kunden", "dialect": "sqlserver",
      "connection": { "string": "Server=sql01;Database=Kunden;Integrated Security=True;Encrypt=True" },
      "keys": [ "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE…" ],
      "inbox": "D:\\Updates\\Kunden", "archive": "D:\\Updates\\Kunden-Archiv",
      "backup": { "mode": "native", "target": "D:\\Sicherung" }
    }

    keys ist der öffentliche Schlüssel, den Ihnen der Hersteller nennt; product der Produktname aus seinen Paketen. backup.target ist ein Ordner auf dem Datenbankserver.

  5. Prüfen Sie in einer Eingabeaufforderung als Administrator, dass der Dienst die Konfiguration annimmt:

    "C:\Program Files\Wkl\Database Update\Wkl.Data.Update.exe" databases

    Steht die Datei unter „nicht beachtet“, nennt die Zeile den Grund.

  6. Stellen Sie ein, was warten soll, etwa jedes Paket bestätigen und zusätzlich in eine Datei melden:

    Wkl.Data.Update.exe settings kunden --expand confirm --contract confirm --channels eventlog,file
  7. Legen Sie Pakete des Herstellers in den Eingangsordner, oder übergeben Sie eines direkt:

    Wkl.Data.Update.exe upload kunden D:\Lieferung\Kunden-schema-14.zip
  8. Sehen Sie nach, was wartet, und bestätigen Sie:

    Wkl.Data.Update.exe status kunden
    Wkl.Data.Update.exe confirm kunden 41

Hinweise

  • Die Befehle laufen nur auf dem Server selbst und nur in einer Eingabeaufforderung als Administrator.
  • Der Dienst trägt bei einer Bestätigung Ihr Windows-Konto als Bestätigenden in die Datenbank ein.
  • Ein nicht abwärtsverträgliches Paket mit contract = automatic kündigt der Dienst an und spielt es zur Frist ein; move-deadline verschiebt die Frist, cancel-notice nimmt die Ankündigung zurück.
  • Meldungen stehen im Ereignisprotokoll (Quelle WKL Database Update) und, wenn eingeschaltet, in C:\ProgramData\WKL\Database Update\log. Für Mails tragen Sie den Mailserver als mail in die geschützte Konfiguration ein und schalten den Meldeweg mit Empfängern ein: settings kunden --channels eventlog,email --email-to "it@example.com".
  • Betreiben Sie den Datendienst, nehmen Sie stattdessen dessen Update-Modul.

Siehe auch

de/wiki/data-conectivity/database-gateway/how-to/apply-database-updates-without-gateway.txt · Zuletzt geändert: von Wolfgang van der Stille