Vylepšenie
V aktuálnej implementácii protokolu SQL Server Virtual Backup Device Interface (VDI) bude posledná správa odoslaná z SQL Server klientovi VDI príkazom VDC_Flush. Aby sa predišlo strate údajov, klient VDI musí pred odpoveďou na príkaz VDC_Flush dokončiť zálohovanie.
Počnúc SQL Server 2008 a zavedením FILESTREAM môže byť príkaz VDC_Flush počas zálohovania odoslaný viackrát. Táto operácia spôsobí problém, že klient VDI musí počas operácie zálohovania viackrát dokončiť zálohovanie. Nie je to možné pre niektorých klientov VDI. Okrem toho, ak klient VDI odpovie na príkaz VDC_Flush bez toho, aby zaistil zabezpečenie zabezpečenia zabezpečenia zálohy, keď po VDC_Flush prichádzajú ďalšie údaje, môže SQL Server skrátiť denník transakcií. Ak však zálohovanie na klientovi VDI nakoniec zlyhá a denník transakcií sa tiež skráti, môže dôjsť k strate údajov.
Táto aktualizácia pridáva nový príkazový VDC_Complete VDI, ktorý označuje, SQL Server dokončil odosielanie údajov klientovi VDI. Klient VDI preto bude môcť dokončiť zálohovanie predtým, ako odošle odpoveď SQL Server.
Táto funkcia umožňuje klientovi VDI zlyhať pri zálohovaní v prípade, že sa niečo pokazí, a tiež zabraňuje omylu skráteniu denníka transakcií.
Poznámka Na podporu nového príkazu VDC_Complete táto aktualizácia pridáva aj dve nové funkcie VDI VDF_RequestComplete a VDF_CompleteEnabled.
Informácie o aktualizácii
Toto vylepšenie je zahrnuté v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Kumulatívna aktualizácia 2 pre SQL Server 2016 SP1
Kumulatívna aktualizácia 4 pre SQL Server 2016
Kumulatívna aktualizácia 5 pre balík SQL Server 2012 Service Pack 3 (SP3)
Kumulatívna aktualizácia 3 pre SQL Server 2014 SP2
Kumulatívna aktualizácia 10 pre SQL Server 2014 SP1
Informácie o kumulatívnych aktualizáciách pre SQL Server
Informácie o kumulatívnych aktualizáciách pre SQL Server
Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Najnovšia kumulatívna aktualizácia pre SQL Server 2016
Najnovšia kumulatívna aktualizácia pre SQL Server 2014 SP1/SP2
Najnovšia kumulatívna aktualizácia balíka SQL Server 2012 SP3
Ďalšie informácie
Ak chcete použiť nový príkaz VDC_Complete, na klienta VDI je potrebné použiť nasledujúce implementácie:
Požiadajte o novú funkciu VDI VDF_RequestComplete. Ak SQL Server podporuje príkaz VDC_Complete, vráti odpoveď iná než NULL. V opačnom prípade by sa vrátila odpoveď s hodnotou NULL pre požadovanú funkciu. Ukážka kódu tu ukazuje, ako požiadať o funkciu:
m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);Pomocou funkcie GetConfiguration určite, či SQL Server podporuje nový príkaz VDC_Complete.
hr = m_pvdiComponents->m_pvdDeviceSet->GetConfiguration(timeout, m_pvdiComponents->m_pvdConfig); if (!(m_pvdiComponents->m_pvdConfig->features & VDF_CompleteEnabled)) { printf("Server does not support VDC_Complete."); return VD_E_NOTSUPPORTED; }Pri spracovávaní správ VDI, ktoré načítala funkcia GetCommand, pridajte ďalší príkaz case, aby sa spracoval VDC_Complete príkaz.
case VDC_Complete: // Close the media and ensure that book keeping is completed. backupMedia->Close(); completionCode = ERROR_SUCCESS; break;
Poznámka: Správa VDC_Complete musí byť začlenená do zálohovacej aplikácie, aby mohla použiť vylepšenie.
Odkazy
Získajte informácie o terminológii, ktorú Microsoft používa na popis aktualizácií softvéru.