Geliştirme
SQL Server sanal yedekleme aygıtı arabirimi (VDı) protokolünün geçerli uygulamasında, SQL Server 'dan VDı istemcisine gönderilen son ileti VDC_Flush komut olacaktır. Veri kaybını önleyebilmeniz için, VDı istemcisinin VDC_Flush komutuna yanıt vermeden önce yedeklemeyi tamamlaması gerekir. SQL Server 2008 ve FILESTREAM 'den başlayarak, yedekleme sırasında VDC_Flush komutu birden çok kez gönderilebilir. Bu işlem, yedekleme işlemi sırasında VDı istemcisinin yedeklemeyi birden çok kez bitirmesine neden olur. Bu, bazı VDı istemcilerinde mümkün değildir. Ayrıca, VDı istemcisi VDC_Flushsonra daha fazla veri geldiğinde yedeklemenin sağlamlaştırılmış bir VDC_Flush komutuna yanıt verirse, SQL Server işlem günlüğünü kesebilir. Ancak yedekleme, VDı istemcisinde başarısız olursa ve işlem günlüğü de kesilirse, veri kaybı olabilir. Bu güncelleştirme SQL Server 'ın VDı istemcisine veri göndermeyi tamamladığını belirten yeni bir VDı komutu VDC_Complete ekler. Bu nedenle, VDı istemcisi SQL Server 'a yanıt göndermeden önce yedeklemeyi tamamlayabilecektir. Bu işlev, bir şeyler yanlış kaldığında ve aynı zamanda işlem günlüğünün yanlışlıkla kesilmesine engel olmak için VDı istemcisinin yedeklemenin başarısız olmasını sağlar.Not Yeni VDC_Complete komutunu desteklemek için, bu güncelleştirme ayrıca ıkı yeni vdı özelliği VDF_RequestComplete ve VDF_CompleteEnabledde ekler.
Güncelleştirme bilgileri
Bu geliştirme SQL Server için aşağıdaki toplu güncelleştirmelerde bulunmaktadır: SQL Server 20162016 SP1 toplu güncelleştirme 2
SQL Server 2012 Service Pack 3 (SP3) Için toplu güncelleştirme 5sql Server 20142014 SP2 toplu güncelleştirme 3
SQL Server için toplu güncelleştirmeler hakkında
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
En son SQL Server 2016 toplu güncelleştirmesi
Ek Bilgi
Yeni VDC_Complete komutunu kullanmak için, AŞAĞıDAKI uygulamaların VDI istemcinize uygulanması gerekir:
-
Yeni VDı VDF_RequestComplete özelliğini isteyin . SQL Server VDC_Complete komutunu desteklerse, bir değersiz yanıt döndürür. Aksi takdirde, istenen özellik için NULL bir yanıt döndürecektir. Buradaki kod örneği, özelliğin nasıl isteneceğini gösterir:
m_pvdiComponents->m_pvdConfig->features = VDF_RequestComplete; printf("Requested features to SQL Server: 0x{0:X}", m_pvdiComponents->m_pvdConfig->features);
-
GetConfiguration IŞLEVINI kullanarak SQL Server 'ın yeni VDC_Complete komutunu destekleyip desteklemediğini belirleme.
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; }
-
GetCommand işlevi tarafından getirilen VDI iletilerini işlediğinizde, VDC_Complete komutunu işlemek için ek bir Case deyimi ekleyin.
case VDC_Complete: // Close the media and ensure that book keeping is completed. backupMedia->Close(); completionCode = ERROR_SUCCESS; break;
NotVDC_Complete ileti, geliştirme uygulaması için yedekleme uygulamasına dahil olmalıdır.
Başvurular
Microsoft 'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında bilgi edinin.