Възстановяване от пълен регистрационен файл на транзакциите в база данни на SQL Server

Преводи на статии Преводи на статии
ID на статията: 873235 - Преглед на продукти, за които се отнася тази статия.
Разгъване на всички | Сгъване на всички

На тази страница

ВЪВЕДЕНИЕ

Тази статия описва стъпките, които трябва да изпълните, когато регистрационните файлове на транзакциите станат твърде големи. Пълните регистрационни файлове на транзакциите могат да направят неизползваема вашата база данни на Microsoft SQL Server. В тази статия се описва как да премахнете транзакции и да свиете регистрационните файлове на транзакциите и как да предотвратите неочакваното им нарастване.

ДОПЪЛНИТЕЛНА ИНФОРМАЦИЯ

Намаляване на размера на регистрационните файлове на транзакциите

За да извършите възстановяване от ситуация, при която регистрационните файлове на транзакциите са пълни, трябва да намалите размера им. За целта трябва да премахнете неактивните транзакции във вашия регистрационен файл на транзакциите и да свиете регистрационния файл на транзакциите.

Забележка Регистрационните файлове на транзакциите са много важни, за да се поддържа целостта на транзакциите в базата данни. Затова не трябва да изтривате регистрационните файлове на транзакциите дори след като архивирате вашата база данни и регистрационните файлове на транзакциите.


За повече информация за намаляването на размера на регистрационния файл на транзакциите посетете следния уеб сайт на Microsoft:

Премахване на неактивните транзакции във вашия регистрационен файл

Когато регистрационните файлове на транзакциите са пълни, трябва незабавно да архивирате вашия регистрационен файл на транзакциите. Докато се създават регистрационни файлове на транзакциите, SQL Server автоматично премахва неактивната част на регистрационния файл на транзакциите. Неактивната част на регистрационния файл на транзакциите съдържа завършените транзакции и затова регистрационният файл на транзакциите повече не се използва от SQL Server по време на процеса на възстановяване. SQL Server използва повторно премахнатото, неактивно пространство в регистрационния файл на транзакциите вместо да му разрешава да продължава да нараства и да използва още пространство.

За допълнителна информация за проблемите, които трябва да имате предвид, когато архивирате регистрационните файлове на транзакциите и когато възстановявате архивните им файлове, прегледайте следните теми в книгите за SQL Server онлайн:
  • Архивни файлове на регистрационните файлове на транзакциите
  • Архивиране и възстановяване на регистрационните файлове на транзакциите
Можете също да изтриете неактивни транзакции от регистрационния файл на транзакциите с помощта на метода Truncate. За допълнителна информация относно премахването на транзакции от регистрационните файлове на транзакциите вижте темата "Премахването на транзакции от регистрационния файл на транзакциите" в книгите за SQL Server онлайн.

Важно След като ръчно премахнете транзакции от регистрационните файлове на транзакциите, трябва да създаде пълен архивен файл на базата данни, преди да създадете архивен файл на регистрационните файлове на транзакциите.

За допълнителна информация относно проблемите, които биха могли да възникнат при премахването на транзакции от регистрационните файлове на транзакциите, щракнете върху следния номер на статия, за да видите статията в Базата знания на Microsoft:
62866 Причините, поради които не могат да се премахнат транзакции от регистрационния файл на транзакциите (Това може да е на английски)

Свиване на регистрационния файл на транзакциите

Операцията по архивиране или методът Truncate не намалява регистрационния файл на транзакциите. За да намалите размера на регистрационния файл на транзакциите, трябва да го свиете. За да свиете регистрационния файл на транзакциите до искания размер и да премахнете неизползваните страници, трябва да използвате операцията DBCC SHRINKFILE. Командата DBCC SHRINKFILE Transact-SQL може само да свие неактивната част вътре в регистрационния файл.

Забележка Командата DBCC SHRINKFILE Transact-SQL сама по себе си не може да премахне транзакции от регистрационния файл и да свие използваното пространство в него.

За повече информация за свиването на регистрационните файлове на транзакциите вижте следните теми в книгите за SQL Server онлайн:
  • Свиване на регистрационния файл на транзакциите
  • DBCC SHRINKFILE
За да получите допълнителна информация за свиването на регистрационните файлове на транзакциите в SQL Server 2000, щракнете върху следния номер на статия, за да видите статията в Базата знания на Microsoft:
272318 Свиване на регистрационния файл на транзакциите в SQL Server 2000 с DBCC SHRINKFILE (Това може да е на английски)
За допълнителна информация относно проблемите, които биха могли да възникнат при свиването на регистрационните файлове на транзакциите, щракнете върху следните номера на статии, за да видите статиите в Базата знания на Microsoft:
814574 PRB: Съобщение за грешка: "Не може да свие регистрационен файл..." – възниква, когато свиете регистрационния файл на транзакциите (Това може да е на английски)
324432 PRB: Възможно е команди DBCC SHRINKFILE и SHRINKDATABASE да не работят поради колони, в които няма много попълнен текст, ntext или изображения (Това може да е на английски)

Предотвратяване на неочакваното нарастване на регистрационните файлове на транзакциите

За да предотвратите неочакваното нарастване на регистрационните файлове на транзакциите, използвайте един от следните методи:
  • Задайте по-голяма стойност за размера на регистрационните файлове на транзакциите, за да избегнете автоматичното им разширяване.
  • Конфигурирайте автоматичното разширяване на регистрационните файлове на транзакциите, като използвате единици памет, а не проценти, след като изчерпателно прецените оптималния размер на паметта.

    За допълнителна информация за проблемите, които трябва да имате предвид, когато конфигурирате опцията за автоматично разширяване, щракнете върху следния номер на статия, за да видите статията в Базата знания на Microsoft:
    315512 Съображения за конфигуриране на автоматично разширяване и автоматично свиване
  • Промяна на модела на възстановяване Ако възникне авария или повреда на данни, трябва да възстановите вашата база данни, за да се запази съгласуваността на данните и целостта на транзакциите. Въз основа на това колко важни са данните във вашата база данни, можете да използвате един от следните модели на възстановяване, за да определите как да се архивират данните ви и доколко сте застрашени от загуба на данни:
    • Прост модел на възстановяване
    • Пълен модел на възстановяване
    • Модел на възстановяване с групово регистриране
    Като използвате простия модел на възстановяване, можете да възстановите вашата база данни до последния й архивен файл. Като използвате пълния модел на възстановяване или модел на възстановяване с групово регистриране, можете да възстановите вашата база данни до точката на възникване на грешката чрез архивните файлове на регистрационните файлове на транзакциите.

    По подразбиране в SQL Server 2000 и в SQL Server 2005 моделът на възстановяване за база данни на SQL Server е зададен на "Пълен модел на възстановяване". Чрез пълния модел на възстановяване се използват редовни архивирания на регистрационния файл на транзакциите, за да се предотврати прекаленото му разрастването спрямо размера на базата данни. Ако обаче не се извършват редовни архивирания на регистрационния файл на транзакциите, регистрационният файл на транзакциите се разраства, докато напълни диска, и е възможно да не можете да извършвате никакви операции по промяна на данните в базата данни на SQL Server.

    Можете да промените модела на възстановяване от пълен на прост, ако не искате да използвате регистрационните файлове на транзакциите по време на операция по аварийно възстановяване.
  • Архивирайте регистрационните файлове на транзакциите редовно, за да изтриете неактивните транзакции в тях.
  • Създавайте малки транзакции.
  • Уверете се, че няма нефиксирани транзакции, които продължават да се изпълняват за неопределено време.
  • Планирайте опцията за актуализиране на статистиката да се показва ежедневно.
  • За да дефрагментирате индексите и да се възползвате от производителност при натоварване във вашата производствена среда, използвайте командата BCC INDEXDEFRAG Transact-SQL, а не командата DBCC DBREINDEX Transact-SQL. Ако изпълните командата DBCC DBREINDEX, регистрационният файл на транзакциите може да нарасне значително, когато базата ви данни на SQL Server е в режим на пълно възстановяване. Освен това командата DBCC INDEXDEGRAG не задържа заключванията дълго време за разлика от командата DBCC DBREINDEX.

    За допълнителна информация относно дефрагментиране на индексите в SQL Server 2000 посетете следния уеб сайт на Microsoft: Ако трябва да изпълните командата DBCC DBREINDEX като задание, което е част от план за обслужване на бази данни, трябва да разделите заданието на много задания. Освен това трябва да извършвате чести архивирания за регистрационните файлове на транзакциите между изпълнението на заданията.

Повече информация за регистрационните файлове на транзакциите

В SQL Server 2000 и в SQL Server 2005 всяка база данни съдържа поне един файл с данни и един регистрационен файл на транзакциите. SQL Server физически съхранява данните във файла с данни. Регистрационният файл на транзакциите съхранява подробности за всички промени, които извършвате във вашата база данни на 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.

Свойства

ID на статията: 873235 - Последна рецензия: 29 февруари 2012 г. - Редакция: 1.0
ВАЖИ ЗА:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Ключови думи: 
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