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

Persistenza

PowerShell Universal archivia l'output e l'input dei job, le identità e i token delle app all'interno del database.

SQLite

Quando si utilizza SQLite, PowerShell Universal archivia tutti i dati all'interno di un unico database su file locale all'applicazione PowerShell Universal. Consigliamo SQLite rispetto a LiteDB per le nuove installazioni, poiché è più diffuso e supportato.

È possibile configurare SQLite aggiornando il file appsettings.json.

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

Risoluzione dei problemi di database di grandi dimensioni

I database SQLite di grandi dimensioni possono essere il risultato di una lunga cronologia dei job, di job che scrivono in modo eccessivo nell'output della pipeline o nei flussi di output di PowerShell, di informazioni obsolete su computer, processi o runspace, oppure di tabelle di voci di log molto grandi.

Con la crescita del database, le prestazioni di PowerShell Universal ne risentiranno. Per individuare la causa di questa crescita, utilizzi lo strumento SQLite_Analyzer. Può scaricare SQLite_Analyzer come parte dello ZIP degli strumenti nella pagina di download di SQLite.

Una volta scaricato, esegua l'analyzer sul file di database di PowerShell Universal per ottenere un elenco esaustivo di informazioni sullo stato del database. Consigliamo di arrestare PowerShell Universal prima di eseguire il comando seguente.

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

Il comando includerà informazioni sulla dimensione delle tabelle e degli indici all'interno del database. Questo aiuterà a individuare esattamente dove viene archiviata la grande quantità di dati.

Riduzione della dimensione del database

SQLite mantiene lo spazio inutilizzato nella freelist all'interno del database dopo che i record sono stati aggiornati o eliminati. I database che eseguono molti job o che sono in funzione da lungo tempo possono avere un file di database di grandi dimensioni con una freelist estesa. È possibile eseguire lo strumento sqlite_analyzer per determinare quanto spazio è utilizzato dalla freelist.

Il database di esempio qui sotto ha una dimensione di 23 GB, ma il 99,946% è spazio inutilizzato.

Per recuperare questo spazio, SQLite può utilizzare la funzionalità vacuum per ricostruire il database e ridurre la dimensione della freelist. auto-vacuum non è abilitato nei database di PowerShell Universal. Se riscontra problemi con la dimensione del database, può eseguire il comando VACUUM; all'interno dello strumento Database del Support Tool.

Clicchi su Help \ Support Tools \ Tools \ Database \ Execute. Inserisca il comando seguente ed esegualo.

SQL

Il supporto SQL richiede una licenza.

È possibile configurare PowerShell Universal per archiviare i dati all'interno di un database Microsoft SQL. Questo consente di scalare orizzontalmente il database e le istanze di PowerShell Universal. PowerShell Universal eseguirà automaticamente i job sul pool di agent. Può aggiornare il file appsettings.json di PowerShell Universal come segue per connettersi a un server SQL centralizzato.

Le istanze di PowerShell Universal condivideranno un'unica coda di job e una sola istanza eseguirà un job, sia in base alla pianificazione, sia come trigger, sia manualmente. Tutti i dati relativi ai job saranno archiviati nel database centralizzato.

Azure SQL

Consigliamo di utilizzare le Azure Managed Identities quando si lavora con Azure SQL. Di seguito è mostrata una stringa di connessione di esempio.

Una guida su come utilizzare la Managed Identity per Azure SQL è disponibile qui.

Installazione\aggiornamento manuale dello schema

In alcuni ambienti, il servizio PSU potrebbe non avere accesso per creare lo schema nel database. In questo scenario, è possibile installare e aggiornare manualmente lo schema eseguendo i file SQL inclusi con PowerShell Universal. All'interno della cartella di installazione di PowerShell Universal, troverà una directory SQL che include due file SQL.

Esegua questi file sul database prima di aggiornare PowerShell Universal. Sarà necessario arrestare PowerShell Universal mentre lo fa. Può eseguirli in qualsiasi ordine. Entrambi gli script sono idempotenti.

Per impostazione predefinita, PowerShell Universal tenterà di aggiornare lo schema del database. Per disabilitare completamente questa funzionalità, può impostare l'impostazione RunMigrations su false in appsettings.json.

Domande frequenti

Privilegi dell'account del database

Qual è l'autorizzazione massima necessaria per un account utente del database durante le installazioni o gli aggiornamenti?

Durante l'avvio del server PowerShell Universal, il database verrà installato e aggiornato, se necessario. Se il database esiste già, sarà necessario db_owner per creare e modificare le tabelle. Se il database non esiste ancora, sarà necessario dbcreator .

Qual è l'autorizzazione massima necessaria una volta creati i database per le attività quotidiane correnti?

PowerShell Universal esegue operazioni limitate sul database durante le attività quotidiane. Queste consistono nell'inserimento, aggiornamento, eliminazione e visualizzazione dei dati nelle tabelle create. Saranno necessari solo i seguenti ruoli: db_datawriter, db_datareader

Installazione e supporto del database e del sistema operativo

Quali versioni di SQL Server sono supportate? È richiesta una versione minima?

PowerShell Universal supporta Microsoft SQL Server 2016 e successivi.

Quali versioni di compatibilità del database supportate?

PowerShell Universal richiede la versione di compatibilità del database 130 o successiva.

È necessario installare altri componenti di SQL Server oltre al Database Engine?

Nessuno

Quali versioni di Windows Server sono supportate?

Le versioni attualmente supportate da Microsoft - Windows Server 2016 e successive. Attualmente, la data di fine del supporto esteso di Microsoft per 2012 R2 è il 10 ottobre 2023, momento in cui interromperemo il supporto per il sistema operativo.

Manutenzione e backup del database

Con quale rapidità devono essere recuperati i dati?

I dati servono principalmente per la reportistica, a parte i token delle app, quindi non è necessario recuperarli immediatamente. A seconda dell'uso dei token delle app, alcuni sistemi potrebbero perdere l'accesso al server durante il ripristino del database.

Progettazione del database

Quanto saranno grandi i database al caricamento iniziale?

Il database iniziale non include un ampio set di dati iniziali e occuperà principalmente solo lo spazio dello schema.

Qual è la crescita stimata al mese/anno di ciascun database?

La crescita stimata dipende da molti fattori, tra cui il numero di job eseguiti al mese, la quantità di log dei job e di output della pipeline archiviati e quanto è aggressiva la pulizia dei dati.

La dimensione del database raramente supera i 2 GB con le impostazioni predefinite. Estendere le impostazioni di grooming per conservare una cronologia dei job più lunga, eseguire i job più frequentemente e archiviare dati come la cronologia del terminale può aumentare la dimensione del database.

La vostra applicazione supporta l'uso della compressione di SQL Server (a livello di riga o di pagina)?

Sì. Utilizziamo un client di database standard e non vi è alcuna limitazione sulla compressione a livello di riga e di pagina.

Utilizzo del database

Si tratta di un database transazionale (OLTP) o di reportistica (OLAP)?

Si tratta principalmente di un database di reportistica che include informazioni come la cronologia dei job, l'output dei job e i token delle app.

Qual è il numero totale di connessioni utente/dispositivo?

Un pool di connessioni per server PSU. Massimo 1024 connessioni per server.

Qual è il numero massimo di connessioni utente/dispositivo simultanee?

Un pool di connessioni per server PSU. Massimo 1024 connessioni per server.

PostgreSQL

È possibile abilitare PostgreSQL con il plugin PostgreSQL.

Ultimo aggiornamento

È stato utile?