Файл журнала для базы данных полон

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

9
задан Scott Gottreu 16 September 2008 в 14:32
поделиться

11 ответов

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

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

Вместе эти видео помогут Вам понять точно, что продолжается и покажет Вам, хотите ли Вы переключиться на ПРОСТОЕ восстановление или изучить фактическое изменение Ваших резервных стандартных программ. Существуют также некоторые дополнительные видео 'с практическими рекомендациями', которые покажут Вам точно, как настроить Ваши резервные копии для обеспечения доступности при управлении калибровкой файла журнала и ростом.

4
ответ дан 4 December 2019 в 08:17
поделиться

К просто освобождают его:

backup log <dbname> with truncate_only  

Сохранить его где-нибудь:

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

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

17
ответ дан 4 December 2019 в 08:17
поделиться

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

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

2
ответ дан 4 December 2019 в 08:17
поделиться

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

Самая легкая вещь сделать, IMO, состоит в том, чтобы открыть свойства для базы данных и переключить его на Простую Модель Восстановления. затем уменьшите базу данных и затем возвратитесь и установите DB на Полную Модель Recoery (или безотносительно модели, в которой Вы нуждаетесь).

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

2
ответ дан 4 December 2019 в 08:17
поделиться

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

Попробовать

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

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

1
ответ дан 4 December 2019 в 08:17
поделиться

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

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

0
ответ дан 4 December 2019 в 08:17
поделиться

Можно хотеть проверить связанный ТАК вопрос:

1
ответ дан 4 December 2019 в 08:17
поделиться

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

0
ответ дан 4 December 2019 в 08:17
поделиться

Если это - не использование продуктивной среды

dump tran <db_name> with no_log;

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

0
ответ дан 4 December 2019 в 08:17
поделиться

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

Для предотвращения этого создания необходимо создать резервную копию журнала транзакций. Или, можно повредить цепочку в текущей точке с помощью опций TRUNCATE_ONLY или NO_LOG ЖУРНАЛА РЕЗЕРВНОГО КОПИРОВАНИЯ.

Если Вам не нужна эта функция, установите модель восстановления на Простой.

0
ответ дан 4 December 2019 в 08:17
поделиться

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

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

-1
ответ дан 4 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: