Ah
Dalam implementasi protokol SQL Server virtual backup Device Interface (VDI) saat ini, pesan terakhir yang dikirim dari SQL Server ke klien VDI akan menjadi perintah VDC_Flush . Untuk mencegah hilangnya data, klien VDI harus menyelesaikan pencadangan sebelum merespons perintah VDC_Flush . Dimulai dengan SQL Server 2008 dan pengenalan FILESTREAM, perintah VDC_Flush dapat dikirim beberapa kali selama pencadangan. Operasi ini menyebabkan masalah saat klien VDI menyelesaikan pencadangan beberapa kali selama operasi pembuatan cadangan. Ini tidak dimungkinkan untuk beberapa klien VDI. Selain itu, jika klien VDI merespons perintah VDC_Flush tanpa memastikan bahwa cadangan diperkeras saat lebih banyak data yang datang setelah VDC_Flush, SQL Server mungkin memotong log transaksi. Namun, jika cadangan akhirnya gagal pada klien VDI, dan log transaksi juga dipotong, maka kehilangan data mungkin terjadi. Pembaruan ini menambahkan perintah VDI baru VDC_Complete yang menunjukkan SQL Server telah menyelesaikan pengiriman data ke klien VDI. Oleh karena itu, klien VDI akan bisa menyelesaikan pencadangan sebelum mengirim respons ke SQL Server. fungsionalitas ini memperbolehkan klien VDI gagal mencadangkan jika terjadi kesalahan, dan juga mencegah log transaksi terpotong secara tidak sengaja.Catatan Untuk mendukung perintah VDC_Complete baru, pembaruan ini juga menambahkan dua fitur baru VDF_RequestComplete dan VDF_CompleteEnabled.
Informasi pembaruan
Penyempurnaan ini disertakan dalam pembaruan kumulatif berikut ini untuk SQL Server: Pembaruan kumulatif 2 untuk SQL server 2016 SP1 pembaruan kumulatif 4 untuk SQL Server 2016
Pembaruan kumulatif 5 untuk SQL server 2012 Service Pack 3 (SP3)pembaruan kumulatif 3 untuk SQL Server 2014 SP2pembaruan kumulatif 10 untuk SQL Server 2014 SP1
Tentang pembaruan kumulatif untuk SQL Server
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Pembaruan kumulatif terbaru untuk SQL Server 2016
Informasi Selengkapnya
Untuk menggunakan perintah VDC_Complete baru, penerapan berikut ini harus diterapkan ke klien VDI Anda:
-
Permintaan fitur baru VDI VDF_RequestComplete. Jika SQL Server mendukung perintah VDC_Complete , maka akan menghasilkan RESPONS bukan null. Jika tidak, akan mengembalikan respons NULL untuk fitur yang diminta. Sampel kode di sini memperlihatkan cara meminta fitur:
m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);
-
Tentukan Apakah SQL Server mendukung perintah VDC_Complete baru dengan menggunakan fungsi 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; }
-
Saat Anda memproses pesan VDI yang diambil oleh fungsi Getcommand , tambahkan pernyataan huruf tambahan untuk memproses perintah VDC_Complete .
case VDC_Complete: // Close the media and ensure that book keeping is completed. backupMedia->Close(); completionCode = ERROR_SUCCESS; break;
Catatan Pesan VDC_Complete harus dimasukkan ke dalam aplikasi cadangan sehingga dapat menggunakan penyempurnaan.
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.