Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Bijzonderheden
| Attribute | Waarde |
|---|---|
| Productnaam | SQL Server |
| Gebeurtenis-id | 1101 |
| Bron van gebeurtenis | MSSQLSERVER |
| Onderdeel | SQLEngine |
| Symbolische naam | NOALLOCPG |
| Berichttekst | Kan geen nieuwe pagina toewijzen voor database '%.*ls', omdat de bestandsgroep '%.*ls' vol is vanwege onvoldoende opslagruimte of databasebestanden die de maximale toegestane grootte bereiken. Houd er rekening mee dat ONBEPERKTE bestanden nog steeds beperkt zijn tot 16 TB. Maak de benodigde ruimte door objecten in de bestandsgroep neer te zetten, extra bestanden toe te voegen aan de bestandsgroep of door automatisch groei in te stellen voor bestaande bestanden in de bestandsgroep. |
Explanation
Geen schijfruimte beschikbaar in een bestandsgroep.
Gebruikersactie
De volgende acties kunnen ruimte beschikbaar maken in de bestandsgroep.
Zet AUTOGROW aan.
Voeg meer bestanden toe aan de bestandsgroep.
Maak schijfruimte vrij door onnodige indexen of tabellen in de bestandsgroep te verwijderen.
Dit T-SQL-script kan je helpen diagnosticeren welke bestanden vol zijn en een oplossingscommando bieden om het probleem op te lossen. Let op: het stelt geen problemen met schijfruimte vast.
set nocount on
declare @prcnt_full int = 95
SELECT db_name(database_id) DbName,
name LogName,
physical_name,
type_desc ,
convert(bigint, SIZE)/128 File_Size_MB ,
convert(bigint,(case when max_size = -1 then 17179869176 else max_size end))/128 File_MaxSize_MB ,
(size/(case when max_size = -1 then 17179869176 else max_size end)) *100 as percent_full_of_max_size
FROM sys.master_files
WHERE file_id != 2
AND (size/(case when max_size = -1 then 17179869176 else max_size end)) *100 > @prcnt_full
if @@ROWCOUNT > 0
BEGIN
DECLARE @db_name_max_size sysname, @log_name_max_size sysname, @configured_max_log_boundary bigint
DECLARE reached_max_size CURSOR FOR
SELECT db_name(database_id) DbName,
name LogName,
convert(bigint, SIZE)/128 File_Size_MB
FROM sys.master_files
WHERE file_id != 2
AND (size/(case when max_size = -1 then 17179869176 else max_size end)) *100 > @prcnt_full
OPEN reached_max_size
FETCH NEXT FROM reached_max_size into @db_name_max_size , @log_name_max_size, @configured_max_log_boundary
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT 'The database "' + @db_name_max_size+'" contains a data file "' + @log_name_max_size + '" whose max limit is set to ' + convert(varchar(24), @configured_max_log_boundary) + ' MB and this limit is close to be reached!' as Finding
SELECT 'Consider using one of the below ALTER DATABASE commands to either change the log file size or add a new file' as Recommendation
SELECT 'ALTER DATABASE ' + @db_name_max_size + ' MODIFY FILE ( NAME = N''' + @log_name_max_size + ''', MAXSIZE = UNLIMITED)' as SetUnlimitedSize
SELECT 'ALTER DATABASE ' + @db_name_max_size + ' MODIFY FILE ( NAME = N''' + @log_name_max_size + ''', MAXSIZE = something_larger_than_' + CONVERT(varchar(24), @configured_max_log_boundary) +'MB )' as IncreaseFileSize
SELECT 'ALTER DATABASE ' + @db_name_max_size + ' ADD FILE ( NAME = N''' + @log_name_max_size + '_new'', FILENAME = N''SOME_FOLDER_LOCATION\' + @log_name_max_size + '_NEW.NDF'', SIZE = 81920KB , FILEGROWTH = 65536KB )' as AddNewFile
FETCH NEXT FROM reached_max_size into @db_name_max_size , @log_name_max_size, @configured_max_log_boundary
END
CLOSE reached_max_size
DEALLOCATE reached_max_size
END
ELSE
SELECT 'Found no files that have reached max log file size' as Findings