Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 z dodatkiem Service Pack 1 (SP1) lub Microsoft SQL Server 2008 lub Microsoft SQL Server 2012 w jednym pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do wcześniejszego wydania dodatku SQL Server 2008 R2 z dodatkiem Service Pack 1 (SP1) lub SQL Server 2008 lub Microsoft SQL Server 2012.

Symptomy

Przywrócenie bazy danych w programie Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2008 lub Microsoft SQL Server 2012 może zająć dużo czasu.

Przyczyna

Ten problem występuje, ponieważ tworzenie listy wirtualnych plików dziennika (VLF) jest czasochłonne, jeśli w bazie danych istnieje wiele VLFs.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Program SQL Server 2012

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2012. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2679368 Pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2012Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2012. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2692828 Kompilacje programu SQL Server 2012 wydane po wydaniu programu SQL Server 2012 Musisz zastosować poprawkę SQL Server 2012 do instalacji programu SQL Server 2012.

SQL Server 2008 z dodatkiem Service Pack 2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w zbiorczej aktualizacji 8 dla programu SQL Server 2008 z dodatkiem Service Pack 2. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2648096 Pakiet aktualizacji zbiorczej 8 dla programu SQL Server 2008 z dodatkiem Service Pack 2Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2402659 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 2 dla programu SQL Server 2008 Poprawki programu Microsoft SQL Server 2008 są tworzone dla określonych pakietów Service Pack programu SQL Server. Musisz zastosować poprawkę dodatku Service Pack 2 dla programu SQL Server 2008 do instalacji dodatku Service Pack 2 do programu SQL Server 2008. Wszystkie poprawki podane w dodatku Service Pack programu SQL Server są domyślnie zawarte w następnym dodatku Service Pack dla programu SQL Server.

SQL Server 2008 z dodatkiem Service Pack 3

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 3 dla programu SQL Server 2008 z dodatkiem Service Pack 3. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2648098 Pakiet aktualizacji zbiorczej 3 dla programu SQL Server 2008 z dodatkiem Service Pack 3Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2629969 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 3 dla programu SQL Server 2008 Poprawki programu Microsoft SQL Server 2008 są tworzone dla określonych pakietów Service Pack programu SQL Server. Musisz zastosować poprawkę dodatku Service Pack 3 dla programu SQL Server 2008 do instalacji dodatku Service Pack 3 dla programu SQL Server 2008. Wszystkie poprawki podane w dodatku Service Pack programu SQL Server są domyślnie zawarte w następnym dodatku Service Pack dla programu SQL Server.

Pakiet aktualizacji zbiorczej 11 dla programu SQL Server 2008 R2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 11. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2633145 Pakiet aktualizacji zbiorczej 11 dla programu SQL Server 2008 R2Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń dołączone do poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

981356 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu programu SQL Server 2008 R2

Pakiet aktualizacji zbiorczej 4 dla programu SQL Server 2008 R2 z dodatkiem SP1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 4. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2633146 Pakiet aktualizacji zbiorczej 4 dla programu SQL Server 2008 R2 z dodatkiem SP1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2 SP1. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2567616 Kompilacje programu SQL Server 2008 R2 wydane po opublikowaniu programu SQL Server 2008 R2 SP1

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Więcej informacji

Liczbę segmentów VLF można sprawdzić, przeglądając plik dziennika błędów SQL, a następnie wyszukując numer sekwencyjny dziennika (LSN) w każdym pliku kopii zapasowej dziennika transakcji. Pierwsze cyfry przed symbolem dwukropka w LSNs odpowiadają numerowi LSN. Na przykład pierwszą liczbą w pierwszym komunikacie informacyjnym dla numeru LSN jest 1. Jednak pierwszy numer w drugim komunikacie informacyjnym dla numeru LSN to 100001. W tym scenariuszu istnieją 100 000 VLFs, które są używane między momentem pierwszego komunikatu informacyjnego a drugim komunikatem informacyjnym. Dlatego rejestrowany dziennik transakcji pofragmentowany, który zawiera wiele wirtualnych plików dziennika (VLFs), jest podobny do następującego:

{Wykonano kopię zapasową dziennika. Baza danych: mydbname, Data utworzenia (godzina): 2010/07/08 (12:36:46), pierwszy numer LSN: 1:5068:70, ostatni numer LSN: 1:5108:1, liczba urządzeń zrzutu: 1, informacje o urządzeniu: (plik = 1, wpisz = dysk: {"C:\folder\logbackup1.TRN"}). Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika. Wykonano kopię zapasową dziennika. Baza danych: mydbname, Data utworzenia (godzina): 2010/07/08 (15:36:46), pierwszy numer LSN: 100001:5108:1, ostatni numer LSN: 100002:5108:1, liczba urządzeń zrzutu: 1, informacje o urządzeniu: (plik = 2, wpisz = dysk: {"C:\folder\logbackup2.TRN"}). Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika.}

Informacje

Aby uzyskać więcej informacji na temat numerów sekwencyjnych dziennika (LSN), odwiedź następującą witrynę MSDN w sieci Web:

Informacje ogólne na temat numerów sekwencyjnych dziennika

Aby uzyskać więcej informacji na temat sposobu, w jaki Struktura pliku dziennika może wpływać na czas odzyskiwania bazy danych, odwiedź następującą witrynę MSDN w sieci Web:

Jak struktura pliku dziennika może wpływać na czas odzyskiwania bazy danychAby uzyskać więcej informacji na temat VLFs dziennika transakcji, odwiedź następującą witrynę MSDN w sieci Web:

Informacje ogólne o pliku dziennika transakcji

Obejście

  • Poczekaj na ukończenie operacji przywracania lub odzyskiwaniaJeśli masz nieodzyskaną bazę danych, która ma niską wydajność podczas przywracania lub odzyskiwania bazy danych, może być konieczne zaczekanie na ukończenie operacji przywracania lub odzyskiwania. Na przykład w przypadku nieodzyskanej bazy danych w programie SQL Server Management Studio (SSMS) może zostać wyświetlony stan offline lub odzyskiwanie. Zatrzymywanie programu SQL Server zwykle nie pozwala na powolne odzyskiwanie i może potrwać więcej czasu na powtarzanie tej samej fazy analizy odzyskiwania, fazy ponawiania lub fazy cofania.

  • Unikanie przywracania sekwencji dziennika transakcji zawierającej tysiące VLFsJeśli podczas przywracania i odzyskiwania bazy danych przy użyciu pliku kopii zapasowej będzie występować niska wydajność, możesz uniknąć przywracania sekwencji dziennika transakcji zawierających tysiące VLFs. Aby zidentyfikować plik kopii zapasowej, który ma najwięcej zarejestrowanych plików dziennika wirtualnego, należy użyć następującej instrukcji, aby wyświetlić kolumny FirstLSN i LastLSN w plikach kopii zapasowej dziennika: RESTORE HEADERONLY z dysku = ' C:\folder\file.TRN ' możesz zdecydować, aby uniknąć przywracania plików kopii zapasowej dziennika. Możesz też użyć instrukcji STOP AT w poleceniach RESTORE, aby uniknąć wysoce pofragmentowanych części dzienników transakcji. Jeśli nie będziesz w pełni przywracać sekwencji dziennika do ostatniego punktu w czasie, gdy wystąpił błąd, utracisz dane w bazie danych programu SQL Server. Ta utrata danych powstaje, ponieważ nie wszystkie transakcje są zachowywane. Dlatego istnieje decyzja w sprawie kompromisów dla firm. Możesz w pełni odzyskać wysoce pofragmentowany dziennik transakcji. Ta operacja może jednak trwać wiele godzin. Możesz też użyć instrukcji STOP AT w funkcji odzyskiwanie, aby zatrzymać odzyskiwanie przed bardzo pofragmentowaną częścią dziennika. Jednak wszystkie pominięte transakcje zostaną utracone.Uwaga Jeśli nie zainstalowano tej poprawki, po ponownym uruchomieniu programu SQL Server zazwyczaj nie będzie można bezpiecznie odwoływać się do przyspieszonego odzyskiwania. Program SQL Server musi zlokalizować listę VLFs w celu przeanalizowania plików dziennika, wykonania ponownie wykonanych transakcji, a następnie cofnąć nieukończone transakcje, aby zakończyć odzyskiwanie w celu bezpiecznego przełączenia bazy danych do trybu online. Podczas odzyskiwania nie można bezpiecznie pominąć transakcji.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×