Номер статті: 873235 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

На цій сторінці

ВСТУП

У статті подано вказівки, яких слід дотримуватися в разі надмірного збільшення розміру журналів транзакцій. У разі переповнення журналів транзакцій база даних SQL Server може стати непридатною для використання. У статті розповідається, як очистити та стиснути журнали транзакцій, а також як запобігти несподіваному збільшенню розміру журналів транзакцій.

ДОДАТКОВІ ВІДОМОСТІ

Зменшення розміру журналу транзакцій

Щоб вирішити проблему з переповненням журналів транзакцій, слід зменшити їхній розмір. Для цього потрібно видалити неактивні транзакції з журналу та стиснути файл журналу транзакцій.

Примітка. Журнали транзакцій відіграють важливу роль у підтриманні цілісності транзакцій у базі даних. Тому навіть після резервного копіювання бази даних і журналів транзакцій не можна видаляти останні.


Докладні відомості про зменшення розміру журналу транзакцій див. в таких статтях на веб-сайті Microsoft:
Стискання журналу транзакцій у базі даних SQL Server 2000
Стискання журналу транзакцій у базі даних SQL Server 2005

Видалення неактивних транзакцій у журналі транзакцій

Коли журнали транзакцій заповнюються, слід відразу створити резервну копію файлів журналів. У процесі створення резервної копії сервер SQL Server автоматично видаляє неактивні транзакції в журналі. Неактивні транзакції у файлі журналу – це завершені транзакції, а тому сервер SQL Server не використовує її у процесі відновлення. Сервер SQL Server повторно використовує цей очищений, незайнятий простір журналу замість того, щоб використовувати додатковий простір і переповнювати журнал.

Додаткові відомості про створення резервної копії журналів транзакцій і відновлення журналів із резервних копій див. в таких статтях електронної документації для SQL Server:
  • Резервні копії журналів транзакцій
  • Резервні копії журналів транзакцій і відновлення
Також можна видалити неактивні транзакції з файлу журналу, скориставшись способом Очищення журналу. Додаткові відомості про очищення журналів транзакцій див. у статті "Очищення журналу транзакцій" в електронній документації для SQL Server.

Увага! Після очищення файлів журналу транзакцій уручну створіть резервну копію всієї бази даних, перш ніж створювати резервну копію журналу транзакцій.

Додаткові відомості про можливі проблеми у процесі очищення файлів журналу транзакцій див. в такій статті бази знань Microsoft:
62866 Причини, по яким журнал транзакцій бази даних SQL не очищається (може бути англійською мовою)

Стискання файлу журналу транзакцій

Під час резервного копіювання та очищення розмір файлу журналу не зменшується. Щоб зменшити файл журналу транзакцій, стисніть його. Щоб стиснути файл журналу до потрібного розміру та видалити непотрібні сторінки, використайте операцію DBCC SHRINKFILE. Оператор DBCC SHRINKFILE Transact-SQL може стиснути лише неактивну частину файлу журналу.

Примітка. Оператор DBCC SHRINKFILE Transact-SQL не може самостійно очистити журнал і стиснути використовуваний простір у файлі.

Додаткові відомості про стискання файлів журналу транзакцій див. в таких цих статтях електронної документації для SQL Server:
  • Стискання журналу транзакцій
  • DBCC SHRINKFILE
Щоб отримати додаткові відомості про стискання файлів журналу транзакцій на сервері SQL Server 2000, клацніть цей номер статті бази знань Microsoft:
272318 Стискання журналу транзакцій за допомогою оператора DBCC SHRINKFILE на сервері SQL Server 2000 (може бути англійською мовою)
Щоб отримати додаткові відомості про можливі проблеми у процесі стискання файлів журналу транзакцій, клацніть ці номери статей бази знань Microsoft:
814574 Проблема: під час стискання файлу журналу транзакцій відображається повідомлення про помилку: "Не вдалося стиснути файл журналу..." (може бути англійською мовою)
324432 Проблема: команди DBCC SHRINKFILE і SHRINKDATABASE можуть не працювати через наявність неповністю заповнених стовпців типу text, ntext, image (може бути англійською мовою)

Запобігання несподіваному збільшенню файлів журналу транзакцій

Щоб запобігти несподіваному збільшенню розміру файлів журналу транзакцій, скористайтеся одним із наведених нижче способів.
  • Установіть велике значення для розміру файлів журналу транзакцій, що запобігти їх автоматичному збільшенню.
  • Оцініть оптимальний обсяг пам’яті, потрібний для файлів журналу, і настройте автоматичне розширення файлів журналу транзакцій, указавши одиниці пам’яті замість відсотків.

    Щоб отримати додаткові відомості про настроювання параметра автоматичного збільшення, клацніть цей номер статті в базі знань Microsoft:
    315512 Зауваження щодо настроювання параметрів автоматичного збільшення та стискання (може бути англійською мовою)
  • Змініть модель відновлення. У разі аварії або пошкодження даних потрібно відновити базу даних, щоб зберегти узгодженість даних і цілісність транзакцій. Залежно від важливості даних, можна вибрати одну з наявних моделей відновлення та визначити, як відбувається резервне копіювання файлів і який ризик втрати даних.
    • Модель простого відновлення
    • Модель повного відновлення
    • Модель групового відновлення
    Модель простого відновлення дає змогу відновити базу даних до етапу останнього резервного копіювання. Завдяки моделям повного та групового відновлення базу даних можна відновити до етапу, коли трапилася неполадка, за допомогою резервних копій файлів журналу транзакцій.

    За промовчанням на серверах SQL Server 2000 і SQL Server 2005 для бази даних SQL Server установлено модель повного відновлення. У моделі повного відновлення використовуються резервні копії журналу транзакцій, що дає змогу запобігти збільшенню файлу журналу транзакцій до розміру, що не відповідає розміру бази даних. Якщо ж резервне копіювання журналу не здійснюється, файл журналу транзакцій займе весь дисковий простір і операції із внесення змін у базу даних SQL Server стануть неможливими.

    Якщо не потрібно використовувати файли журналу транзакцій у процесі післяаварійного відновлення, можна вибрати модель простого відновлення.
  • Регулярно створюйте резервні копії для файлів журналу, щоб видалити неактивні транзакції.
  • Робіть транзакції якомога меншими.
  • Переконайтеся, що немає незавершених транзакцій, які тривають протягом невизначеного часу.
  • Установіть щоденне оновлення статистики.
  • Для дефрагментації індексів використайте оператор DBCC INDEXDEFRAG Transact-SQL замість оператора DBCC DBREINDEX Transact-SQL. Це дасть можливість покращити продуктивність в робочому середовищі. Якщо для бази даних SQL Server установлено режим повного відновлення, після використання оператора DBCC DBREINDEX журнал транзакцій може значно збільшитися. Крім того, на відміну від оператора DBCC DBREINDEX, оператор DBCC INDEXDEGRAG не містить довгострокових блокувань.

    Додаткові відомості про дефрагментацію індексів на сервері SQL Server 2000 див. на цьому веб-сайті Microsoft: Якщо план обслуговування бази даних включає завдання, яке передбачає запуск оператора DBCC DBREINDEX, це завдання потрібно розбити на кілька менших завдань. Між виконаннями цих завдань потрібно постійно виконувати резервне копіювання журналів транзакцій.

Додаткові відомості про файли журналу транзакцій

На серверах SQL Server 2000 та SQL Server 2005 кожна база даних містить принаймні один файл даних і один файл журналу транзакцій. У файлі даних містяться всі дані бази даних SQL Server. Файл журналу транзакцій містить інформацію про всі зміни в базі даних SQL Server і відомості про всі транзакції, які викликали зміни. Оскільки основна характеристика, притаманна серверу SQL Server, – це цілісність даних транзакцій, функцію журналювання не можна вимкнути.

Файл журналу транзакцій логічно поділено на менші сегменти під назвою віртуальні файли журналу. На сервері SQL Server 2000 файл журналу транзакцій можна настроїти на розширення до потрібного розміру. Розширенням журналу може керувати користувач, або журнал може збільшуватися за рахунок доступного дискового простору. Усі зміни на сервері SQL Server, які стосуються змінення розміру файлу журналу транзакцій, наприклад стискання чи розширення файлів, відбуваються у віртуальних файлах журналу.

Якщо файл журналу транзакцій певної бази даних SQL Server переповнено та для нього встановлено параметр автоматичного розширення, розмір журналу збільшуватиметься на потрібну кількість віртуальних файлів журналу. Інколи файл журналу транзакцій стає занадто великим і вичерпує весь дисковий простір. Якщо весь простір використав файл журналу транзакцій, операції із внесення змін до бази даних стануть неможливими. Крім того, через відсутність вільного простору для розширення журналу транзакцій сервер SQL Server може позначити базу даних як "сумнівну".

Щоб отримати додаткові відомості про причини несподіваного розширення файлу журналу транзакцій, клацніть цей номер статті бази знань Microsoft:
317375 Переповнення журналу транзакцій на сервері SQL Server або неочікуване збільшення його розміру (може бути англійською мовою)

ПОСИЛАННЯ

Додаткові відомості про виправлення неполадок, пов’язаних із відсутністю вільного дискового простору під час відновлення, див. у статті "Недостатньо дискового простору" в електронній документації для SQL Server. Додаткові відомості про архітектуру журналу транзакцій див. в таких статтях електронної документації для SQL Server:
  • Архітектура журналу транзакцій
  • Логічна архітектура журналу транзакцій
  • Фізична архітектура журналу транзакцій
Докладні відомості про моделі відновлення на сервері SQL Server 2000 див. в таких статтях електронної документації для SQL Server:
  • Вибір моделі відновлення
  • Просте відновлення
  • Повне відновлення
  • Групове відновлення
  • Змінення моделі відновлення

Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Властивості

Номер статті: 873235 - Востаннє переглянуто: 29 лютого 2012 р. - Редакція: 1.0
ЗАСТОСОВУЄТЬСЯ ДО:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Ключові слова: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Надіслати відгук

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com