Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Come posso ottimizzare il consumo di spazio di archiviazione nella mia istanza database Amazon RDS per SQL Server?
La mia istanza database Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server utilizza più spazio del previsto. Desidero ottimizzare il mio spazio di archiviazione su disco.
Breve descrizione
È possibile utilizzare la metrica FreeStorageSpace in Amazon CloudWatch per monitorare lo spazio di archiviazione disponibile per un'istanza database. La metrica FreeStorageSpace non descrive in che modo il motore di SQL Server utilizza lo spazio di archiviazione disponibile. Monitora frequentemente questa metrica e attiva la scalabilità automatica dello spazio di archiviazione per assicurarti di non esaurirlo.
Risoluzione
Nota: se si verificano errori durante l'esecuzione dei comandi dell'interfaccia a riga di comando AWS (AWS CLI), consulta Troubleshooting errors for the AWS CLI (Risoluzione degli errori per AWS CLI). Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Istanza Amazon RDS per SQL Server nello stato Spazio di archiviazione esaurito
Non è possibile eseguire operazioni di base quando l'istanza Amazon RDS è bloccata nello stato Spazio di archiviazione esaurito. Per maggiori informazioni, consulta Come faccio a risolvere i problemi che si verificano quando le istanze database di Amazon RDS esauriscono lo spazio di archiviazione?
Alcune istanze database RDS per SQL Server presentano limitazioni sulla possibilità di modificare lo spazio di archiviazione. Se l'istanza database non è modificabile, l'opzione Archiviazione allocata nella console Amazon RDS è disattivata. Per scalare lo spazio di archiviazione su un'istanza quando l'opzione di modifica non è disponibile, utilizza l'opzione nativa di backup e ripristino per migrare i dati a una nuova istanza. Assicurati che la nuova istanza abbia capacità di IOPS (input/output per second) allocata o il tipo di spazio di archiviazione per uso generico (SSD). In alternativa, utilizza uno strumento di migrazione dei dati per migrare alla nuova istanza. Per maggiori informazioni, consulta Modifying an Amazon RDS DB instance (Modifica di un'istanza database Amazon RDS).
Per vedere le opzioni di archiviazione valide per l'istanza database, esegui il comando describe-valid-db-instance-modifications:
describe-valid-db-instance-modifications
Nota: il dimensionamento dello spazio di archiviazione e il dimensionamento automatico dello spazio di archiviazione non sono supportati nelle istanze RDS per SQL Server che utilizzano l'archiviazione magnetica.
Nelle istanze in cui è attivato il dimensionamento automatico dello spazio di archiviazione, lo spazio di archiviazione può essere esteso solo in determinati scenari. Per ulteriori informazioni, consulta Managing capacity automatically with Amazon RDS storage autoscaling (Gestione automatica della capacità con il dimensionamento automatico dello spazio di archiviazione di Amazon RDS). Inoltre, è possibile estendere lo spazio di archiviazione solo quando la soglia massima di archiviazione non è uguale o superiore all'incremento di archiviazione. Per ulteriori informazioni, consulta Limitations (Limitazioni).
Consumo di spazio di archiviazione per istanze RDS per SQL Server
Per ottenere informazioni sull'utilizzo dello spazio fisico su disco per un'istanza database SQL Server, esegui una query simile a quella del seguente esempio:
SELECT D.name AS [database_name] , F.name AS [file_name] , F.type_desc AS [file_type] , CONVERT(decimal(10,2), F.size * 0.0078125) AS [size_on_disk_mb] , CONVERT(decimal(10,2), F.max_size * 0.0078125) AS [max_size_mb] FROM sys.master_files AS F INNER JOIN sys.databases AS D ON F.database_id = D.database_id;
I file contenenti ROWS includono dati, mentre i file contenenti LOG rappresentano transazioni in transito.
Per ulteriori informazioni, consulta sys.master_files (Transact-SQL) sul sito web di Microsoft.
Nota: la vista di sistema sys.master\ _files mostra la dimensione di avvio di tempdb. Non riflette la dimensione attuale di tempdb.
Per verificare la dimensione attuale di tempdb, esegui la seguente query:
select name AS [database_name], physical_name AS [file_name], convert(decimal(10,2),size*0.0078125) AS [size_on_disk_mb] from tempdb.sys.database_files;
Prima di ottimizzare lo spazio di archiviazione, assicurati di aver compreso in che modo il motore di SQL Server utilizza lo spazio di archiviazione. Lo spazio di archiviazione del motore di SQL Server è ampiamente definito nelle seguenti categorie:
File di database
È possibile suddividere lo spazio di archiviazione totale utilizzato da un singolo database in riga, indice e spazio libero nel database attivo corrente. Per suddividere lo spazio di archiviazione totale, esegui la seguente query:
EXEC sp_spaceused;
File di log delle transazioni
Per determinare la quantità di spazio di archiviazione utilizzata dai log delle transazioni, esegui la seguente query:
DBCC SQLPERF(LOGSPACE)
È possibile che venga visualizzato lo spazio libero nei log delle transazioni. Per deallocare lo spazio libero in eccesso, esegui il comando DBCC SHRINKFILE. Per ulteriori informazioni, consulta DBCC SHRINKFILE (Transact-SQL) sul sito web di Microsoft.
Per ridurre lo spazio libero assegnato ai log delle transazioni, utilizza il file ALTER DATABASE (transact-SQL) e le opzioni di filegroup. Le opzioni consentono di configurare le impostazioni di crescita automatica del database. Per ulteriori informazioni, consulta ALTER DATABASE (Transact-SQL) File and Filegroup Options sul sito web di Microsoft.
Database temporaneo (tempdb)
Il tempdb di SQL Server cresce automaticamente. Se il tempdb consuma una quantità eccessiva di spazio di archiviazione, è possibile ridurre le dimensioni del database.
Nota: se riduci le dimensioni di un database tempdb, dopo avere eseguito il comando controlla eventuali messaggi di errore nella scheda Messaggio in SQL Server Management Studio (SSMS).
Se viene visualizzato il messaggio di errore "DBCC SHRINKFILE: Page could not be moved because it is a work table page", consulta DBCC FREESYSTEMCACHE (Transact-SQL) e DBCC FREEPROCCACHE (Transact-SQL) sul sito web di Microsoft. Puoi anche riavviare l'istanza database per cancellare il database tempdb.
Il riavvio delle istanze database in uno stato Spazio di archiviazione esaurito potrebbe non andare a buon fine. In tal caso, aumenta lo spazio di archiviazione assegnato all'istanza database e riavvia nuovamente. Per maggiori informazioni, consulta Come faccio a risolvere i problemi che si verificano quando le istanze database di Amazon RDS esauriscono lo spazio di archiviazione?
Indici del database
Se si dedica una grande quantità di spazio di archiviazione agli indici, si può risparmiare spazio con la messa a punto degli indici. Per ottenere informazioni sull'utilizzo dell'indice, esegui la vista di gestione dinamica sys.dm_db_index_usage_stats. Queste informazioni possono aiutare a valutare le priorità di messa punto. Per ulteriori informazioni, consulta sys.dm_db_index_usage_stats (Transact-SQL) sul sito web di Microsoft.
File di traccia
I file di traccia, compresi i file C2 Audit Trace e i file di dump, possono consumare una grande quantità di spazio su disco. Amazon RDS elimina automaticamente i file di traccia e di dump più vecchi di 7 giorni, ma è anche possibile modificare le relative impostazioni. Per maggiori informazioni, consulta Setting the retention period for trace and dump files.
Spazio consumato dall'integrazione con Amazon S3
Se l'istanza database RDS è stata integrata con Amazon S3, è possibile che sull'unità D: sia stati caricati dei file che occupano spazio. Per verificare lo spazio occupato dall'integrazione S3, esegui un comando per elencare i file sull'istanza database. Per maggiori informazioni, consulta Listing files on the RDS DB instance (Elenco dei file sull'istanza database RDS).
CDC
Per i database in cui è attivato CDC, la dimensione del file di log aumenta in base alla frequenza delle modifiche alle tabelle o ai database di origine. Col tempo, lo spazio di archiviazione potrebbe esaurirsi. Se il disco di log si riempie, CDC non potrà elaborare ulteriori transazioni.
Verifica
Se la verifica non è configurata correttamente per un'istanza, i log potrebbero crescere in modo esponenziale e influire sullo spazio di archiviazione. Per maggiori informazioni, consulta SQL Server Audit (Verifica di SQL Server).
La modalità di verifica C2 salva nel file di log una grande quantità di informazioni sugli eventi. Il file di log potrebbe crescere rapidamente e portare l'istanza nello stato Spazio di archiviazione esaurito. Per maggiori informazioni, consulta C2 audit mode (server configuration option) sul sito web di Microsoft.
Inoltre, se si attivano funzionalità come archivio query, l'utilizzo delle risorse potrebbe risentirne.
Informazioni correlate
Amazon RDS for Microsoft SQL Server
Monitoring metrics in an Amazon RDS instance
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa