Logboek met stand-by modus op een schijf formatteren Geavanceerd terugzetten veroorzaken een fout 9004 in SQL Server 2008 R2 of SQL Server 2012

Bug #: 96663 (Content Idea)

Symptomen

Neem het volgende scenario:

  • U hebt Microsoft SQL Server logboekbestanden of back-up en terugzetten instellen tussen twee servers.

  • De primaire database is opgeslagen op een schijf met "Bytes per fysieke Sector" instellen als 512 bytes het transactielogbestand (.ldf).

  • U neemt de transactie log back-ups van de database en vervolgens probeert te herstellen met de optie stand-by op de secundaire database.

  • Het transactielogbestand secundaire database (.ldf) bevindt zich op een schijf met "Bytes per fysieke Sector" instellen als 4096 bytes.

In dit scenario wordt de bewerking voor terugzetten is mislukt en retourneert het volgende foutbericht weergegeven:

Fout: 9004, ernst: 16 staat: 6. Er is een fout opgetreden tijdens het verwerken van het logboekbestand voor de database databasenaam. Indien mogelijk herstellen vanaf back-up. Als u een back-up niet beschikbaar is, kan het nodig zijn om het logboek opnieuw te zijn.

Als deze fout optreedt, wordt de secundaire database in een verdachte toestand.

Oplossing

Cumulatieve Update

Dit probleem werd in eerste instantie opgelost in de volgende cumulatieve update van SQL Server:

Opmerking Nadat u deze update installeert, moet u de traceringsvlag 3057 inschakelen zodat deze correctie is opgenomen. Zie het onderwerp Trace vlaggen Transact-SQL () op de website van Microsoft Developer Network (MSDN) traceringsvlag 3057 inschakelen.

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en beveiligingsupdates correcties die opgenomen in de vorige cumulatieve update zijn. De meest recente cumulatieve updates voor SQL Server wilt weergeven:

Opmerking Voor exemplaren van SQL Server 2008 R2 SP3 moet u de server een upgrade naar de meest recente beveiligingsupdate beschikbaar op:

Beveiligingsupdate voor SQL Server 2008 R2 SP3 downloaden

Hotfix for SQL Server 2008 R2 SP3To resolve this issue, apply KB 3033860: An on-demand hotfix update package is available for SQL Server 2008 R2 SP3.

Hotfix voor SQL Server 2008 R2 SP2Een ondersteunde hotfix is beschikbaar bij Microsoft. Deze hotfix is echter alleen bedoeld voor het probleem dat wordt beschreven in dit artikel. Voer deze hotfix alleen uit op systemen waarop dit specifieke probleem zich voordoet. Als er een hotfix beschikbaar is om te downloaden, ziet u een sectie 'Hotfix kan worden gedownload' boven aan dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, dien dan een verzoek in bij Microsoft Customer Service and Support om de hotfix te verkrijgen. Opmerking Als er andere problemen optreden of als probleemoplossing is vereist, moet u wellicht een apart serviceverzoek indienen. De normale ondersteuningskosten gelden voor extra ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Voor een volledige lijst met telefoonnummers van Microsoft Customer Service and Support of een afzonderlijk serviceverzoek maken, gaat u naar de volgende Microsoft-website:

http://support.microsoft.com/contactus/?ws=supportOpmerking Het formulier 'Hotfix kan worden gedownload' geeft de talen weer waarin de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, is dit omdat een hotfix niet voor die taal beschikbaar is.

Workaround

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'. Gebruik dit probleem oplossen door een van de volgende oplossingen:

  • Verplaats het transactielogboekbestand op de bestemming naar een station met "Bytes per fysieke Sector" instellen als 512 bytes. Opmerking De stand-by-bestand kan nog steeds bevinden op het station met "Bytes per fysieke Sector" instellen als 4096 bytes.

  • De log back-ups terugzetten zonder de optie stand-by. Gebruik de optie gemarkeerd tijdens het terugzetten in plaats van de optie stand-by.

Meer informatie

U kunt het hulpprogramma Fsutil bepalen de waarde "Bytes per fysieke Sector". Als deze parameter niet weergegeven in de uitvoer wordt, u moet de hotfix toepassen die is opgegeven in de KB982018. Als u wilt controleren of de aard van de schijf die u hebt, als volgt te werk:

  1. De volgende opdracht uitvoeren vanaf een opdrachtprompt:Fsutil fsinfo ntfsinfo x : Opmerking In deze opdracht staat < x > voor het station dat u controleert.

  2. De waarden voor "Bytes Per Sector" en "Bytes per fysieke Sector" gebruiken om te bepalen welk type station dat u hebt. Gebruik hiervoor de volgende tabel.

    De waarde "Bytes Per Sector"

    De waarde "Bytes per fysieke Sector"

    Stationstype

    4096

    4096

    4K native

    512

    4096

    Geavanceerde opmaak (ook wel bekend als 512E)

    512

    512

    native 512 byte

Microsoft Internal Support Information

This is a known issue. Refer to VSTS 2780247 for more details. The scenario is very specific to Restore Log with StandBy option.

VSTS: 2780247
Hotfix: 2891952 & 2891962

Call stack of the thread which reports 9004 error message and the input buffer of the same:

Call Site
sqlservr!CImageHelper::DoMiniDump+0x3d4
sqlservr!stackTrace+0x82b
sqlservr!stackTraceCallBack+0x49
sqlservr!ex_raise2+0x21f
sqlservr!ex_raise+0x99
sqlservr!SQLServerLogMgr::CheckLogBlockReadComplete+0x908
sqlservr!SQLServerLogIterForward::TryLogReadAhead+0x85
sqlservr!SQLServerLogIterForward::GetNextBlock+0x25e
sqlservr!SQLServerLogIterForward::GetNext+0xda
sqlservr!RecoveryMgr::AnalysisPass+0x25a
sqlservr!RecoveryMgr::RecoverUpToRollback+0x334
sqlservr!RecoveryMgr::RecoverDb+0x5e
sqlservr!BackupOperation::BringDatabaseToStandby+0x27d
sqlservr!BackupOperation::BringDatabaseOnline+0x59
sqlservr!BackupOperation::CompleteRestore+0x28b
sqlservr!BackupOperation::Restore+0x3bb
sqlservr!BackupEntry::RestoreLog+0x1b6
sqlservr!CStmtLoadXact::XretExecute+0x85
sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+0x3a9
sqlservr!CMsqlExecContext::FExecute+0x986
sqlservr!CSQLSource::Execute+0x7b5
sqlservr!process_request+0x64b
sqlservr!process_commands+0x4e5


RESTORE LOG [CS_DB]
FROM DISK = N'C:\SQLBackup\CS_DB_20140606040347.trn'
WITH FILE = 1
,STANDBY = N'C:\SQLBackup\CS\CS_DB_log_standby.tuf'
,NOUNLOAD
,STATS = 10;

Author ID (email alias): pradm
Writer ID(email alias):
Tech Review ID (email alias): Sureshka; tejasaks; mikez; pradm
Editor ID (email alias): v-mordew; v-jesits

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×