2008-09-16 2 views
9

Так что наш SQL Server 2000 дает мне ошибку: «Файл журнала для базы данных заполнен. Создайте резервную копию журнала транзакций для базы данных, чтобы освободить место для журнала».Файл журнала для базы данных заполнен

Как я могу это исправить, не удаляя журнал, как упоминали некоторые другие сайты?

Дополнительная информация: Включить AutoGrowth можно увеличить на 10% и ограничить до 40 МБ.

ответ

4

Скотт, как вы уже догадались: усечение журнала является плохим ходом, если вы заботитесь о ваших данных.

Следующие, бесплатные видеоролики помогут вам точно увидеть, что происходит, и покажет вам, как исправить проблему, не обрезая журналы. (Это видео также объяснить, почему это такой опасным хак и почему вы правы искать другое решение.)

Вместе эти видео помогут вам точно поймите, что происходит, и покажет вам, хотите ли вы переключиться на восстановление SIMPLE, или посмотрите на фактическое изменение ваших подпрограмм резервного копирования. Также есть несколько дополнительных «практических» видеороликов, которые покажут вам, как настроить резервные копии, чтобы обеспечить доступность при управлении размером и размером файла журнала.

-1

Переименуйте его. например:
old-log-16-09-08.log

Затем SQL-сервер может использовать новый пустой.

0

Ну вы могли бы взять копию журнала транзакций, а затем усечь файл журнала, который является то, что предлагает сообщение об ошибке.

Если пространство на диске заполнено, и вы не можете скопировать журнал на другой компьютер по сети, затем подключите диск через USB и скопируйте его таким образом.

2

Я не думаю, что переименование или перемещение файла журнала будет работать во время работы базы данных.

Самое простое, что нужно сделать, IMO - открыть свойства базы данных и переключить их на Simple Recovery Model. затем сжимайте базу данных, а затем возвращайтесь назад и устанавливайте БД в полноэкранную модель (или любую другую модель, которая вам нужна).

Изменение режима ведения журнала заставляет SQL Server устанавливать контрольную точку в базе данных, после чего сокращение базы данных освободит лишнее пространство.

+1

Более точная терминология может быть «простой моделью восстановления». – SeaDrive 2010-02-17 16:02:09

0

У вас есть ответ на ваш вопрос: Резервное копирование журнала, тогда оно будет сокращено. Сделайте план обслуживания для регулярной резервной копии базы данных и не забудьте выбрать «Резервное копирование журнала транзакций». Таким образом, вы будете держать его маленьким.

17

Чтобы просто опустошить:

backup log <dbname> with truncate_only 

Чтобы сохранить его где-нибудь:

backup log <dbname> to disk='c:\somefile.bak' 

Если вы действительно не нужно транзакционной историю, попробуйте установить режим восстановления базы данных просто.

+5

Параметр TRUNCATE_ONLY при резервном копировании журнала прекращен в SQL 2008. – Sean 2010-04-19 20:51:53

0

Если это среда производства не использовать

dump tran <db_name> with no_log; 

После этого завершения сжать файл журнала, чтобы освободить дисковое пространство. Наконец, переключите режим восстановления базы данных на простой.

+0

Это старый синтаксис, который теперь устарел. BACKUP LOG - предпочтительный метод. – 2008-09-16 15:13:06

1

Мой друг, кто сталкивался с этой ошибки в прошлом рекомендует:

Попробуйте

  • Резервное копирование БД. План обслуживания включает усечение этих файлов.
  • попробовать Также изменения «режим восстановления» для БД в Simple (вместо Полный, например)

Причина: Журнал транзакций раздувается за счет регистрируемых событий (Может быть у вас есть количество транзакций, которые не выполняются и откатываются назад или внезапные пики транзакций на сервере)

0

Как только вы берете полную резервную копию базы данных, а база данных не использует модель простого восстановления, SQL Server хранит полную запись всех транзакций, когда-либо выполнявшихся в базе данных. Он делает это так, чтобы в случае катастрофического сбоя, когда вы потеряли файл данных, вы можете восстановить до отказа, выполнив резервное копирование журнала и, восстановив старую резервную копию данных, восстановите журнал, чтобы воспроизвести потерянный сделки.

Чтобы предотвратить создание этого здания, необходимо создать резервную копию журнала транзакций. Или вы можете разбить цепочку в текущей точке, используя опции TRUNCATE_ONLY или NO_LOG в BACKUP LOG.

Если вам не нужна эта функция, установите для модели восстановления значение Simple.

2

эфирное резервное копирование вашей базы данных регулярно, если вам нужно восстановить до минуты или сделать другие забавные вещи, такие как отправка журналов в будущем, или установить базу данных в простой режим и сжать файл данных.

НЕ копируйте, не переименовывайте и не удаляйте файл .ldf, это приведет к поломке вашей базы данных, и после восстановления после этого у вас могут быть данные в несогласованном состоянии, что делает его недействительным.

0

Уважаемый друг, важно, чтобы администратор базы данных достаточно часто проверял его файл журнала. Потому что, если вы не будете уделять ему много внимания, однажды он даст эту ошибку.

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

Другое, кроме того, приведенное выше предложение является совершенно правильным.