For the complete documentation index, see llms.txt. This page is also available as Markdown.

Persistenz

PowerShell Universal speichert Job-Ausgaben und -Eingaben, Identitäten und App-Token in der Datenbank.

SQLite

Bei Verwendung von SQLite speichert PowerShell Universal alle Daten in einer einzelnen Dateidatenbank, die lokal zur PowerShell Universal-Anwendung liegt. Für Neuinstallationen empfehlen wir SQLite gegenüber LiteDB, da es weiter verbreitet und besser unterstützt ist.

Sie können SQLite konfigurieren, indem Sie die Datei appsettings.json aktualisieren.

 "Plugins": [
    "SQLite"
  ],
  "Data": {
    "ConnectionString": "Data Source=%ProgramData%\\UniversalAutomation\\psu.db",
  },

Fehlerbehebung bei großen Datenbankgrößen

Große SQLite-Datenbanken können die Folge einer langen Job-Historie, von Jobs, die übermäßig in die Pipeline-Ausgabe oder die PowerShell-Ausgabestreams schreiben, veralteter Computer-, Prozess- oder Runspace-Informationen oder großer Protokolleintragstabellen sein.

Wenn die Datenbank wächst, wird die Leistung von PowerShell Universal beeinträchtigt. Um die Ursache dieses Wachstums zu ermitteln, verwenden Sie das Tool SQLite_Analyzer. Sie können SQLite_Analyzer als Teil des Tools-ZIP auf der SQLite Download-Seite herunterladen.

Führen Sie den Analyzer nach dem Herunterladen gegen Ihre PowerShell Universal-Datenbankdatei aus, um eine umfangreiche Liste von Informationen über den Status Ihrer Datenbank zu erhalten. Wir empfehlen, PowerShell Universal zu beenden, bevor Sie den folgenden Befehl ausführen.

.\sqlite_analyzer.exe C:\ProgramData\UniversalAutomation\database.db

Der Befehl enthält Informationen über die Größe von Tabellen und Indizes in der Datenbank. Dies hilft, genau zu bestimmen, wo die große Datenmenge gespeichert wird.

Datenbankgröße reduzieren

SQLite behält nicht genutzten Speicherplatz in der Freelist innerhalb der Datenbank, nachdem Datensätze aktualisiert oder gelöscht wurden. Datenbanken, die viele Jobs ausführen oder über einen längeren Zeitraum in Betrieb sind, können eine große Datenbankdatei mit einer großen Freelist haben. Sie können das Tool sqlite_analyzer ausführen, um zu ermitteln, wie viel Speicherplatz von der Freelist belegt wird.

Die Beispieldatenbank unten hat eine Größe von 23 GB, aber 99,946 % davon sind nicht genutzter Speicherplatz.

Um diesen Speicherplatz freizugeben, kann SQLite die Vacuum-Funktion verwenden, um die Datenbank neu aufzubauen und die Größe der Freelist zu reduzieren. auto-vacuum ist in PowerShell Universal-Datenbanken nicht aktiviert. Wenn Sie Probleme mit der Datenbankgröße haben, können Sie den Befehl VACUUM; im Datenbank-Tool des Support Tools ausführen.

Klicken Sie auf Help \ Support Tools \ Tools \ Database \ Execute. Geben Sie den folgenden Befehl ein und führen Sie ihn aus.

SQL

SQL-Unterstützung erfordert eine Lizenz.

Sie können PowerShell Universal so konfigurieren, dass Daten in einer Microsoft SQL-Datenbank gespeichert werden. Dadurch können Sie Ihre Datenbank und Ihre PowerShell Universal-Instanzen skalieren. PowerShell Universal führt Jobs automatisch über den Pool von Agenten aus. Sie können die Datei appsettings.json für PowerShell Universal wie folgt aktualisieren, um eine Verbindung zu einem zentralen SQL-Server herzustellen.

Die PowerShell Universal-Instanzen teilen sich eine einzige Job-Warteschlange, und nur eine Instanz führt einen Job aus – entweder nach Zeitplan, als Trigger oder manuell. Alle Daten über Jobs werden in der zentralisierten Datenbank gespeichert.

Azure SQL

Wir empfehlen die Verwendung von Azure Managed Identities bei der Arbeit mit Azure SQL. Ein Beispiel für eine Verbindungszeichenfolge wird unten gezeigt.

Eine Anleitung zur Verwendung von Managed Identity für Azure SQL finden Sie hier.

Manuelle Schema-Installation-Aktualisierung

In einigen Umgebungen hat der PSU-Dienst möglicherweise keine Berechtigung, ein Schema in der Datenbank zu erstellen. In diesem Szenario können Sie das Schema manuell installieren und aktualisieren, indem Sie die SQL-Dateien ausführen, die in PowerShell Universal enthalten sind. Im Installationsordner von PowerShell Universal finden Sie ein Verzeichnis SQL, das zwei SQL-Dateien enthält.

Führen Sie diese Dateien gegen Ihre Datenbank aus, bevor Sie PowerShell Universal aktualisieren. Sie müssen PowerShell Universal während dieses Vorgangs beenden. Sie können sie in beliebiger Reihenfolge ausführen. Beide Skripte sind idempotent.

Standardmäßig versucht PowerShell Universal, das Schema der Datenbank zu aktualisieren. Um diese Funktion vollständig zu deaktivieren, können Sie die Einstellung RunMigrations in appsettings.json auf false setzen.

Häufig gestellte Fragen

Berechtigungen des Datenbankkontos

Was ist die maximale Berechtigung für ein Datenbankbenutzerkonto, die während Installationen oder Upgrades benötigt wird?

Beim Start des PowerShell Universal-Servers wird die Datenbank installiert und bei Bedarf aktualisiert. Wenn die Datenbank bereits vorhanden ist, benötigen Sie db_owner, um Tabellen zu erstellen und zu ändern. Wenn die Datenbank noch nicht vorhanden ist, benötigen Sie dbcreator.

Was ist die maximale Berechtigung, die nach der Erstellung der Datenbank(en) für laufende tägliche Aktivitäten benötigt wird?

PowerShell Universal führt bei täglichen Aktivitäten nur begrenzte Datenbankoperationen durch. Diese bestehen aus dem Einfügen, Aktualisieren, Löschen und Anzeigen von Daten in den erstellten Tabellen. Sie benötigen nur die folgenden Rollen: db_datawriter, db_datareader

Datenbank- und Betriebssysteminstallation & Support

Welche Versionen von SQL Server werden unterstützt? Gibt es eine erforderliche Mindestversion?

PowerShell Universal unterstützt Microsoft SQL Server 2016 und höher.

Welche Datenbankkompatibilitätsversionen unterstützen Sie?

PowerShell Universal erfordert Datenbankkompatibilitätsversion 130 oder höher.

Müssen neben der Datenbank-Engine weitere SQL Server-Komponenten installiert werden?

Keine

Welche Versionen von Windows Server werden unterstützt?

Derzeit von Microsoft unterstützte Versionen – Windows Server 2016 und höher. Derzeit ist das erweiterte Enddatum für den Support von 2012 R2 durch Microsoft der 10. Oktober 2023; zu diesem Zeitpunkt stellen wir die Unterstützung für das Betriebssystem ein.

Datenbankwartung & Sicherung

Wie schnell müssen die Daten wiederhergestellt werden?

Die Daten dienen abgesehen von App-Token primär der Berichterstellung, daher müssen die Daten nicht sofort wiederhergestellt werden. Je nach Verwendung der App-Token können einige Systeme den Zugriff auf den Server verlieren, während die Datenbank wiederhergestellt wird.

Datenbankdesign

Wie groß werden die Datenbank(en) bei der Erstbeladung sein?

Die initiale Datenbank enthält keinen großen Satz an Anfangsdaten und benötigt primär nur den Speicherplatz des Schemas.

Wie hoch ist das geschätzte Wachstum pro Monat/Jahr jeder Datenbank?

Das geschätzte Wachstum hängt von vielen Faktoren ab, darunter die Anzahl der pro Monat ausgeführten Jobs, die Menge der gespeicherten Job-Protokolle und Pipeline-Ausgaben sowie wie aggressiv Daten aufgeräumt werden.

Die Datenbankgröße wächst mit den Standardeinstellungen selten über 2 GB hinaus. Das Erweitern der Groom-Einstellungen zur Aufbewahrung einer längeren Job-Historie, das häufigere Ausführen von Jobs und das Speichern von Daten wie der Terminal-Historie können die Datenbankgröße erhöhen.

Unterstützt Ihre Anwendung die Verwendung von SQL Server-Komprimierung (auf Zeilen- oder Seitenebene)?

Ja. Wir verwenden einen Standard-Datenbankclient und haben keine Einschränkung bei der Komprimierung auf Zeilen- und Seitenebene.

Datenbanknutzung

Ist dies eine transaktionale (OLTP) oder eine Reporting-Datenbank (OLAP)?

Dies ist primär eine Reporting-Datenbank, die Informationen wie Job-Historie, Job-Ausgabe und App-Token enthält.

Wie hoch ist die Gesamtzahl der Benutzer-/Geräteverbindungen?

Ein Verbindungspool pro PSU-Server. Maximal 1024 Verbindungen pro Server.

Wie hoch ist die maximale Anzahl gleichzeitiger Benutzer-/Geräteverbindungen?

Ein Verbindungspool pro PSU-Server. Maximal 1024 Verbindungen pro Server.

PostgreSQL

Sie können PostgreSQL mit dem Plugin PostgreSQL aktivieren.

Zuletzt aktualisiert

War das hilfreich?