Udostępnij za pośrednictwem


Agent usługi ASR lub inna nieskładnikowa kopia zapasowa usługi VSS kończy się niepowodzeniem dla serwera hostującego program SQL Server 2008 R2

Ten artykuł ułatwia obejście problemu, w którym nieskładnikowa kopia zapasowa usługi VSS, taka jak agent usługi ASR, kończy się niepowodzeniem dla serwera hostującego program SQL Server 2008 R2.

Oryginalna wersja produktu: SQL Server 2008, SQL Server 2008 R2
Oryginalny numer KB: 4504103

Objawy

Rozważmy następujący scenariusz:

  • Używasz programu Microsoft SQL Server 2008 lub SQL Server 2008 R2.
  • Uruchomić nieskładnikową kopię zapasową usługi VSS woluminu, który hostuje pliki programu SQL Server. Na przykład używasz agenta usługi Microsoft Azure Site Recovery.

W takiej sytuacji zauważysz, że tworzenie kopii zapasowej usługi VSS kończy się niepowodzeniem z powodu błędu SQLServerWriter, mimo że dziennik błędów programu SQL Server zgłasza pomyślną kopię zapasową.

Narzędzie SQLServerWriter zgłasza następujący wynik w danych wyjściowych "vssadmin list writers":

Nazwa składnika zapisywania: "SqlServerWriter"
Identyfikator składnika zapisywania: {ID}
Identyfikator wystąpienia składnika zapisywania: {ID}
Stan: [11] Niepowodzenie
Ostatni błąd: Błąd niemożliwy do ponowienia próby

Uwaga / Notatka

Poprzedni stan lub błąd jest bardzo ogólny. W związku z tym nie udostępnia wystarczającej ilości informacji, aby umożliwić selektywne zidentyfikowanie danego scenariusza. Ta sytuacja jest znacząca w kontekście kopii zapasowych nieskładnikowych w programie SQL Server 2008 lub R2.

Ponadto ślad SQLServerWriter zgłasza następujące kwestie:

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqllib\FileName(LineNumber): FrozenDatabase::GetNextPartialInfo: VDI::GetCommand nie powiodło się z powodu błędu 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] WYJŚCIE {DatabaseName::GetNextPartialInfo}: hr: 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): CSqlWriter::P ickupDifferentialInfo: Database master of server instance CGLONCSQL01 nie można wyliczyć informacji o pliku. hr = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): CSqlWriter::P ickupDifferentialInfo: Throwing HRESULT code 0x8077000e. Poprzedni kod HRESULT = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): CSqlWriter::P ickupDifferentialInfo: HRESULT EXCEPTION CAUGHT: hr: 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] EXIT {CSqlWriter::P ickupDifferentialInfo}: hr: 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): STDMETHODCALLTYPE CSqlWriter::OnPostSnapshot: Nie można pobrać informacji o plikach z serwerów baz danych . hr = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): STDMETHODCALLTYPE CSqlWriter::OnPostSnapshot: Rzucanie kodu HRESULT 0x8077000e. Poprzedni kod HRESULT = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber): STDMETHODCALLTYPE CSqlWriter::OnPostSnapshot: WYKRYTO WYJĄTEK HRESULT: hr: 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] ENTER {Snapshot::~Snapshot}:

Rozwiązanie

Nie ma poprawki dla programu SQL Server 2008 lub SQL Server 2008 R2. Ten problem został rozwiązany w wersji początkowej (RTM) programu SQL Server 2012. Ponieważ SQLServerWriter jest składnikiem udostępnionym, uaktualnienie składników udostępnionych do nowszej wersji głównej programu SQL Server zastępuje program SQL Server 2008 lub SQL Server 2008 R2 SQLServerWriter nowszą wersją zawierającą poprawkę.

W przypadkach, w których występuje ten problem w programie SQL Server 2008 lub SQL Server 2008 R2, zalecamy zainstalowanie bezpłatnej wersji najnowszej wersji programu SQL Server, takiej jak SQL Server Express Edition. (Zobacz sekcję Więcej informacji , aby uzyskać dokładną wersję do użycia, w zależności od wersji systemu operacyjnego). W tym celu wybierz pozycję Uaktualnij funkcje udostępnione tylko na stronie Wybieranie wystąpienia kreatora instalacji programu SQL Server Express.

Zrzut ekranu przedstawiający opcję Uaktualnianie z programu SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 lub SQL Server 2012 w oknie Centrum instalacji.

Zrzut ekranu opcji

Ta metoda uaktualnia wszystkie składniki udostępnione do używanej wersji programu SQL Server. Oznacza to, że ta sama usługa składnika zapisywania usługi VSS programu SQL Server, która była wcześniej uruchomiona w wersji 2008 lub 2008 R2 składnika zapisywania, jest teraz uruchomiona nowszą wersję programu SQL Server z programu SQL Express. Najnowsza wersja jest zgodna z poprzednimi wersjami.

Ta metoda umożliwia również zainstalowanie aktualizacji zbiorczych programu SQL Server, które są istotne dla wersji uaktualnienia programu SQL Express. Można na przykład zainstalować aktualizacje zbiorcze programu SQL Server 2014 lub SQL Server 2017, aby program SQLServerWriter był aktualizowany zgodnie z potrzebami. Aby uzyskać więcej informacji, zobacz FIX: Tworzenie kopii zapasowej bazy danych programu SQL Server przy użyciu aplikacji VSS Backup może zakończyć się niepowodzeniem po zainstalowaniu programu SQL Server

Więcej informacji

  • Programy SQL Server 2016 i SQL Server 2017 Express Edition wymagają systemu Windows Server 2012 lub nowszego albo windows 8 lub nowszego.

  • Jeśli używasz systemu Windows Server 2008 lub Windows Server 2008 R2 razem z programem SQL Server 2008 lub SQL Server 2008 R2, możesz użyć programu SQL Server 2014 z dodatkiem Service Pack 3 (SP3) Express Edition, aby uaktualnić składniki udostępnione: Pobierz program Microsoft SQL Server 2014 SP3 Express.

  • Podczas uaktualniania składników udostępnionych wszystkie składniki podrzędne są uaktualniane oprócz narzędzia SQLServerWriter. Na przykład: Integration Services, Master Data Services (MDS), SQL Server Management Studio (SSMS), SQL Server Data Tools (SSDT) i SQL Server Books Online są uaktualniane.

  • Innym obejściem jest uaktualnienie udostępnionych składników i uniknięcie problemu polega na zainstalowaniu dummy wystąpienia programu SQL Express nowszej wersji głównej. Podczas instalowania nowszej wersji głównej wystąpienia programu SQL Server również uaktualnia udostępnione składniki. Później można wyłączyć lub odinstalować fikcyjne wystąpienie. Jednak najczystsze podejście polega na uaktualnieniu udostępnionych składników.

Źródła

Dowiedz się więcej o opisie standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft.