Poboljšanje
U trenutnoj implementaciji VDI (SQL Server Virtual Backup Device Interface) protokola, poslednja poruka poslata sa SQL Servera VDI klijentu biće VDC_Flush uređaja. Da bi sprečio gubitak podataka, VDI klijent mora da završi pravljenje rezervne kopije pre nego što odgovori VDC_Flush komandu. Počevši od sistema SQL Server 2008 i uvođenja FILESTREAM-a, VDC_Flush može biti poslata više puta tokom pravljenja rezervne kopije. Ova operacija izaziva problem zbog kojeg VDI klijent mora više puta da završi pravljenje rezervne kopije tokom operacije pravljenja rezervne kopije. To nije moguće za neke VDI klijente. Pored toga, ako VDI klijent odgovori na VDC_Flush komandu bez obezbeđivanja da rezervna kopija bude očvrsnuta kada posle VDC_Flush- a dođe još podataka, SQL Server može skratiti evidenciju transakcija. Međutim, ako rezervna kopija na kraju ne uspe na VDI klijentu, a evidencija transakcija je takođe skraćena, može doći do gubitka podataka. Ova ispravka dodaje novu VDI komandnu VDC_Complete koja ukazuje na to da je SQL Server dovršio slanje podataka VDI klijentu. Zbog toga će VDI klijent moći da završi pravljenje rezervne kopije pre nego što pošalje odgovor na SQL Server.Ova funkcionalnost omogućava VDI klijentu da ne uspe u pravljenju rezervne kopije u slučaju da nešto pođe po zlu, a takođe sprečava da se evidencija transakcija greškom odseca.Napomena Da bi podržala novu VDC_Complete, ova ispravka dodaje i dve nove VDI funkcije VDF_RequestComplete i VDF_CompleteEnabled.
Informacije o ažuriranju
Ovo poboljšanje je uključeno u sledeće kumulativne ispravke za SQL Server: Kumulativna ispravka 2 za SQL Server 2016 SP1 Kumulativna ispravka 4 za SQL Server 2016
Kumulativna ispravka 5 za SQL Server 2012 servisni paket 3 (SP3) Kumulativna ispravka 3 za SQL Server 2014 SP2 Kumulativna ispravka 10 za SQL Server 2014 SP1
Kumulativne ispravke za SQL Server
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2016
Više informacija
Da biste koristili novu VDC_Complete, na VDI klijent moraju da se primene sledeće implementacije:
-
Zahtevaj novu VDI funkciju VDF_RequestComplete. Ako SQL Server podržava VDC_Complete, on će dati odgovor not NULL. U suprotnom, ona će vratiti null odgovor za zahtevanu funkciju. Uzorak koda ovde prikazuje kako se zahteva funkcija:
m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);
-
Utvrdite da li SQL Server podržava novu VDC_Complete komandu pomoću funkcije GetConfiguration.
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; }
-
Kada obrađujete VDI poruke koje dobija funkcija GetCommand, dodajte dodatnu izjavu o predmetu da biste obradili VDC_Complete datoteke.
case VDC_Complete: // Close the media and ensure that book keeping is completed. backupMedia->Close(); completionCode = ERROR_SUCCESS; break;
Napomena Poruka VDC_Complete mora biti uključena u rezervnu aplikaciju da bi mogla da koristi poboljšanje.
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.