OS fouten 1450 en 665 worden gerapporteerd voor de gegevensbestanden van de database

Van toepassing: SQL Server 2008 R2 StandardSQL Server 2008 R2 DatacenterSQL Server 2008 R2 Enterprise

Symptomen


Op een computer met SQL Server, wordt ervan uitgegaan dat u een van de volgende acties uitvoert:

  • U maakt een momentopname van de database op een grote database. Na dit u een groot aantal bewerkingen voor het wijzigen van gegevens of onderhoudswerken uitvoeren in de brondatabase.
  • U maakt een momentopname van de database op een mirrordatabase
  • Uitvoeren van opdrachten voor het controleren van de consistentie van een grote database DBCC CHECKDB-familie en u ook een groot aantal wijzigingen uitvoeren in de database.

In dit scenario ziet u de volgende fouten gerapporteerd in het foutenlogboek van SQL Server, afhankelijk van de omgeving op SQL Server wordt uitgevoerd.

Windows Server 2003

Het besturingssysteem heeft fout 1450 (Er zijn onvoldoende systeembronnen beschikbaar om de aangevraagde service.) met SQL Server tijdens een schrijfbewerking op offset 0x00002a3ef96000 in het bestand met ingang van 0x0000000000000D5C. Dit is meestal een tijdelijke situatie en de SQL-Server wordt behouden het opnieuw. Als het probleem blijft bestaan vervolgens onmiddellijk moet actie worden ondernomen om deze te corrigeren.

Windows Server 2008, Windows Vista en latere versies van de server en client-besturingssystemen

Het besturingssysteem heeft fout 665 (de gevraagde bewerking kan niet worden voltooid vanwege een beperking bestand systeem) met SQL Server tijdens een schrijfbewerking op offset 0x00002a3ef96000 in het bestand 'Sam.mdf:MSSQL_DBCC18'

Naast deze fouten ziet u ook De hendel van time- outfouten zoals hieronder wordt weergegeven:

  • Er is een time-out opgetreden tijdens het wachten op de hendel: klasse 'DBCC_MULTIOBJECT_SCANNER', 000000002C61DF40, id, type 4, taak 0x00000000038089B8: 16, 600, wachttijd vlaggen 0x1a, die eigenaar is van taak 0x0000000006A09828. Bezig met wachten.
  • Er is een time-out opgetreden tijdens het wachten op de hendel: klasse 'ACCESS_METHODS_HOBT_COUNT', 000000002C61DF40, id, type 4, taak 0x00000000038089B8: 16, 600, wachttijd vlaggen 0x1a, die eigenaar is van taak 0x0000000006A09828. Bezig met wachten.

Daarnaast ook mogelijk blokkeren als u verschillende weergaven van dynamische management (DMV) zoals sys.dm_exec_requests, sys.dm_os_waiting_tasks, enz.

Oorzaak


Dit probleem treedt op als een groot aantal exemplaren van de ATTRIBUTE_LIST_ENTRY zijn nodig voor het onderhouden van een sterk gefragmenteerd bestand in NFTS. Dit probleem wordt beschreven in het volgende Knowledge Base-artikel:

  • 967351  een sterk gefragmenteerd bestand in een NTFS-volume kan niet groter worden dan een bepaalde grootte

De verspreide bestanden gemaakt met SQL Server voor de databasemomentopnamen kunnen ophalen gefragmenteerd op deze niveaus wanneer grote hoeveelheden gegevenswijzigingen voor de duur van deze snapshot-bestanden gebeuren.

Raadpleeg de volgende koppelingen voor een volledige achtergrond van de manier waarop SQL Server Engine NTFS verspreide bestanden en alternatieve gegevensstromen gebruikt:

Oplossing


  1. Verdeel de grote database in kleinere bestanden. Bijvoorbeeld, als u een bestand met 8 TB kunt u splits deze in acht gegevensbestanden van 1 TB. Op hoog niveau zijn de stappen om dit te doen:
    1. 7 nieuwe 1 TB aan bestanden toevoegen aan dezelfde groep.
    2. De geclusterde indexen van de bestaande tabellen opnieuw opbouwen en dit wordt automatisch de gegevens van elke tabel tussen 8 bestanden verspreiden. Als er geen geclusterde index voor een tabel, een maken en vervolgens neer om hetzelfde te bereiken.
    3. Verkleinen de oorspronkelijke 8 TB bestand, die over ongeveer 12-15% is volledig.
  2. U kunt met behulp van een verwijzing naar de desbetreffende die niet de ATTRIBUTE_LIST_ENTRY dezelfde beperkingen die NTFS biedt. U moet het volume formatteren met behulp van referenties.
  3. U kunt het defragmenteren van het volume waarop de databasebestanden zich bevinden. Voor meer informatie Zie Besturingssysteemfout (665 – systeembeperking bestand) niet alleen voor meer DBCC
  4. Fix Windows uit Knowledge Base-artikel 967351 van toepassing en vervolgens het volume formatteert met de optie /L grote FRS verkrijgen 
  5. 3029977 FIX: Besturingssysteemfout 665 wanneer u opdracht voor database in SQL Server 2014 columnstore-index met DBCC CHECKDB uitvoeren
  6. De levensduur van de opdrachten DBCC controleren met behulp van de volgende prestatieverbeteringen te verminderen en bijgevolg de 665 fouten voorkomen:
    • 2634571verbeteringen voor de DBCC-opdracht CHECKDB kunnen leiden tot betere prestaties wanneer u de optie PHYSICAL_ONLYEnable trace vlaggen - T2562 en -T2549
    • 945770 FIX: de DBCC CHECKDB instructie kost meer tijd de optie Traceren inschakelt vlag - T2566
    • 3029825 FIX: DBCC CHECKDB uitvoeren wanneer u SQL CLR UDT's betrokken zijn langer duren
  7. Windows Server 2008klanten wordt aangeraden de volgende oplossing:
    • 957065  foutmelding de status van het stuurprogramma ntfs.sys wanneer sommige toepassingen zeer grote bestanden in Windows Server 2008 of Windows Vista-systemen werken: "0xc0000427 STATUS_FILE_SYSTEM_LIMITATION" 
  8.  Klanten van SQL Server 2005 of SQL Server 2008 te sterk aan raden de volgende correcties van toepassing op de versie die ze uitvoeren toe te passen:
    • 961123  FIX: de SQL Server-service stopt wanneer u een van de opdrachten DBCC controleren op een database van SQL Server 2005 uitvoert of wanneer u een momentopname van de database voor een SQL Server 2005-database maken
    • 967164  FIX: foutbericht 1450 als momentopname van de database maken of controleren van de DBCC-instructie uitgevoerd op een database in SQL Server 2005 en SQL Server 2008 en de SQL Server-service reageert niet meer
    • 967470  FIX: Foutbericht wanneer u een update of een bewerking op een tabel die geen geclusterde index gemaakt in SQL Server 2005 en SQL Server 2008 uitvoert: "het besturingssysteem fout 1450"

Onder bepaalde omstandigheden kan u nog steeds de bovengenoemde fouten optreden na het toepassen van deze correcties. In dat geval kunt u enkele van de oplossingen die worden beschreven in de volgende blogbericht evalueren:

Zie de volgende Microsoft-bronnen voor meer informatie:

Besturingssysteemfout (systeembeperking 665 bestand) niet alleen voor meer DBCC

 

Sparse-bestanden ondersteund op NTFS- en REFERENTIES

DBCC CHECKDB gedrag wanneer de SQL Server-database zich op een volume worden weergegeven bevindt