Корпорація Майкрософт розповсюджує виправлення Microsoft SQL Server 2008 R2 з пакетом оновлень 1 (SP1) або Microsoft SQL Server 2008 або Microsoft SQL Server 2012 в одному файлі, який можна завантажити. Оскільки виправлення сукупні, кожен новий випуск містить усі виправлення та всі оновлення системи безпеки, які входили в попередній випуск оновлення SQL Server 2008 R2 з пакетом оновлень 1 (SP1) або SQL Server 2008 або Microsoft SQL Server 2012.
Ознаки
Відновлення бази даних у Microsoft SQL Server 2008 R2 або Microsoft SQL Server 2008 або Microsoft SQL Server 2012 може тривати довго.
Причина
Ця проблема виникає через те, що створення списку віртуальних журналів (VLF) триває довго, коли база даних містить багато файлів VLFs.
Спосіб вирішення
Сукупні відомості про оновлення
SQL Server 2012 р.
Виправлення цієї проблеми вперше випущено в сукупному пакеті оновлень 1 для SQL Server 2012. Щоб отримати додаткові відомості про цей пакет сукупного оновлення клацніть номер статті в базі знань Microsoft Knowledge Base:
2679368 Сукупний пакет оновлень 1 для SQL Server 2012Note оскільки збірки сукупні, кожен новий випуск виправлення містить усі виправлення та всі виправлення системи безпеки, які входили в попередній випуск виправлення SQL Server 2012. Корпорація Майкрософт рекомендує розглянути застосування останнього випуску виправлення, який містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2692828 Збірки SQL Server 2012, випущені після випуску SQL Server 2012, потрібно застосувати виправлення SQL Server 2012 до інсталяції SQL Server 2012.
SQL Server 2008 із пакетом оновлень 2
Виправлення цієї проблеми вперше випущено в сукупному пакеті оновлень 8 для пакета оновлень 2 SQL Server 2008. Щоб отримати додаткові відомості про цей пакет сукупного оновлення клацніть номер статті в базі знань Microsoft Knowledge Base:
2648096 Сукупний пакет оновлень 8 для пакета SQL Server 2008 із пакетом оновлень 2Note, оскільки збірки сукупні, кожен новий випуск виправлення містить усі виправлення для системи безпеки, які входили в попередній випуск виправлення SQL Server 2008. Корпорація Майкрософт рекомендує розглянути застосування останнього випуску виправлення, який містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2402659 Збірки SQL Server 2008 року, випущені після випуску пакета оновлень 2 SQL Server 2008 microsoft SQL Server 2008, створюються для певних пакетів оновлень SQL Server. Потрібно застосувати виправлення SQL Server 2008 з пакетом оновлень 2 до інсталяції пакета оновлень 2 SQL Server 2008 року. За промовчанням будь-які виправлення, які надаються в SQL Server пакет оновлень входить до складу наступного пакета оновлень SQL Server.
SQL Server 2008 із пакетом оновлень 3
Виправлення цієї проблеми вперше випущено в сукупному пакеті оновлень 3 для пакета оновлень 3 SQL Server 2008. Щоб отримати додаткові відомості про цей пакет сукупного оновлення клацніть номер статті в базі знань Microsoft Knowledge Base:
2648098 Сукупний пакет оновлень 3 для SQL Server 2008 із пакетом оновлень 3Note, оскільки ці збірки сукупні, кожен новий випуск виправлення містить усі виправлення та всі виправлення системи безпеки, що входили в попередній випуск виправлення SQL Server 2008. Корпорація Майкрософт рекомендує розглянути застосування останнього випуску виправлення, який містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2629969 Збірки SQL Server 2008 року, випущені після випуску пакета оновлень 3 SQL Server 2008 року, для певних пакетів оновлень SQL Server створюються виправлення microsoft SQL Server 2008 року. Потрібно застосувати виправлення SQL Server 2008 з пакетом оновлень 3 для інсталяції пакета оновлень 3 SQL Server 2008. За промовчанням будь-які виправлення, які надаються в SQL Server пакет оновлень входить до складу наступного пакета оновлень SQL Server.
Сукупний пакет оновлень 11 для SQL Server 2008 R2
Виправлення цієї проблеми вперше випущено в сукупному пакеті оновлень 11. Щоб отримати додаткові відомості про те, як отримати цей пакет сукупний пакет оновлень для SQL Server 2008 R2 клацніть номер статті в базі знань Microsoft Knowledge Base:
2633145 Сукупний пакет оновлень пакета 11 для SQL Server 2008 R2Note оскільки збірки сукупні, кожен новий випуск виправлення містить усі виправлення та всі виправлення системи безпеки, які входили в попередній випуск виправлення SQL Server 2008 R2. Радимо застосувати останній випуск виправлення, який містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
981356 Збірки SQL Server 2008 R2, випущені після випуску SQL Server 2008 R2
Сукупний пакет оновлень 4 для SQL Server 2008 R2 з пакетом оновлень 1 (SP1)
Виправлення цієї проблеми вперше випущено в сукупному пакеті оновлень 4. Щоб отримати додаткові відомості про те, як отримати цей пакет сукупний пакет оновлень для SQL Server 2008 R2 SP1 клацніть номер статті в базі знань Microsoft Knowledge Base:
2633146 Сукупний пакет оновлень пакета 4 для SQL Server 2008 R2 SP1Note Оскільки збірки сукупні, кожен новий випуск виправлення містить усі виправлення та всі виправлення системи безпеки, які входили в попередній випуск виправлення SQL Server 2008 R2 SP1. Радимо застосувати останній випуск виправлення, який містить це виправлення. Щоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2567616 Збірки SQL Server 2008 R2, випущені після випуску SQL Server 2008 R2 з пакетом оновлень 1 (SP1)
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "Стосується".
Додаткові відомості
Ви можете перевірити кількість сегментів VLF, переглянувши файл журналу помилок SQL, а потім знайшовши номер послідовності журналу (LSN) у кожному файлі резервної копії журналу транзакцій. Перші цифри перед символом двокрапки в LSN відповідають кількості LSN.Наприклад, перший номер у першому інформаційному повідомленні LSN – 1. Однак перший номер у другому інформаційному повідомленні LSN 100001. У цьому сценарії існує 100 000 VLFs, які використовуються між часом першого інформаційного повідомлення та другого інформаційного повідомлення. Таким чином, журнал записаних фрагментованих транзакцій, який має багато віртуальних журналів Files (VLFs) приблизно такого вигляду:
{Резервну копію журналу створено. База даних: mydbname, дата створення(час): 2010/07/08(12:36:46), перший LSN: 1:5068:70, останній LSN: 1:5108:1, кількість пристроїв дампа: 1, відомості про пристрій: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Це лише інформаційне повідомлення. Дії користувача не потрібні.Резервне копіювання журналу. База даних: mydbname, дата створення(час): 2010/07/08(15:36:46), перший LSN: 100001:5108:1, останній LSN: 100002:5108:1, кількість пристроїв дампа: 1, відомості про пристрій: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Це лише інформаційне повідомлення. Дії користувача не потрібні.}
Посилання
Щоб отримати додаткові відомості про номери послідовності журналу (LSN), відвідайте такий веб-сайт MSDN:
Загальні відомості про номери послідовностей журналу
Щоб отримати додаткові відомості про те, як структура файлу журналу може вплинути на час відновлення бази даних, відвідайте такий веб-сайт MSDN:
Як структура файлу журналу може вплинути на час відновлення бази данихЩоб отримати додаткові відомості про журнал транзакцій VLFs відвідайте такий веб-сайт MSDN:
Інші способи вирішення
-
Зачекайте, доки операцію відновлення не буде завершено. Якщо під час відновлення або відновлення бази даних спостерігається низька швидкодія, можливо, доведеться дочекатися завершення операції відновлення або відновлення. Наприклад, може відображатися стан автономного режиму або стан відновлення в SQL Server Management Studio (SSMS) для невідновленої бази даних. Зупинка SQL Server зазвичай не надає полегшення для повільного відновлення та може зайняти більше часу, щоб повторити той самий етап аналізу відновлення, повторити етап або етап скасування.
-
Не відновлюйте послідовність журналів транзакцій, яка містить тисячі файлів VLFs. Якщо під час відновлення та відновлення бази даних використовується резервний файл, можна уникнути відновлення послідовностей журналів транзакцій, які містять тисячі файлів VLFs. Щоб визначити файл резервної копії, який містить найбільше записів віртуальних файлів журналу, скористайтеся наведеною нижче інструкцією, щоб переглянути стовпці FirstLSN і LastLSN у файлах резервної копії журналів: RESTORE HEADERONLY FROM DISK='C:\folder\file.trn'You can decide to avoid restoreing the log backup files. Або можна скористатися інструкцією STOP AT у командах RESTORE, щоб уникнути дуже фрагментованих частин журналів транзакцій. Якщо не повністю відновити послідовність журналів до останньої точки часу під час сценарію відновлення помилок, у базі даних SQL Server втрата даних. Ця втрата даних відбувається через те, що зберігаються не всі транзакції. Тому є рішення про компроміс бізнесу. Ви можете повністю відновити дуже фрагментований журнал транзакцій. Проте ця операція може тривати багато годин. Або ви можете використовувати інструкцію STOP AT у відновленні, щоб зупинити відновлення перед сильно фрагментованою частиною журналу. Проте всі відсутні транзакції буде втрачено.Примітка. Без інсталяції цього виправлення, зазвичай немає безпечного регресивний для прискореного відновлення після перезавантаження SQL Server. SQL Server потрібно знайти список VLFs для аналізу файлів журналу, повторити завершені транзакції, а потім скасувати неповні транзакції, щоб завершити відновлення, щоб безпечно вивести базу даних в онлайновий доступ. Не можна безпечно пропустити транзакції під час відновлення.