Я застрял.
Я только что взял на себя обслуживание SQL-сервера ... который долгое время не копировался ... Размер файла журнала увеличился до 1,61 ТБ ... Да, 1,61 ТБ.
Он поглотил все доступное дисковое пространство. Я пытался сделать резервную копию (не могу из-за размера файла журнала), я попытался отсоединить (не могу, потому что файл журнала заполнен), я попытался сжать БД и файл журнала (не могу .. .получить различные ошибки.) Я нахожусь в очень трудном положении по нескольким причинам ...
Это больше не программа, которую «используют», но люди по-прежнему обращаются к ней для получения данных.
Объем диска с 2 ТБ уменьшился до 9,94 МБ.
Помогите.
РЕДАКТИРОВАТЬ: Кроме того, я не могу изменить режим восстановления на «ПОЛНЫЙ», чтобы сделать правильную резервную копию ... Он просто сидит и крутится ... Я собираюсь дать ему пару часов и проверить его.
Вот это боль.
Обычно в таких случаях лучше всего переключить режим восстановления базы данных на Простой, а затем уменьшить файл журнала (а не саму базу данных). Иногда вам придется пару раз сжать журнал, чтобы уменьшить его.
Если вы не можете получить хорошую резервную копию до этого, обязательно верните ее сразу после этого.
Поскольку вы сказали, что база данных находится в режиме простого восстановления ... Попробуйте это по частям во время планового обслуживания (будет простой).
USE master
Go
ALTER DATABASE YourDB
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE WITH NO_WAIT
GO
(Я знаю, я знаю, вы сказали, что это просто. Но это странное поведение для простого восстановления.)
USE [YourDB]
GO
DBCC SHRINKFILE (N'YourDB_log' , 0, TRUNCATEONLY)
GO
и
USE [YourDB]
GO
DBCC SHRINKFILE (N'YourDB_log' , 0)
GO
(При необходимости повторите.)
ALTER DATABASE YourDB
SET MULTI_USER;
GO
А потом резервное копирование.
Изменить: Хорошо, так что это не сработало. Если у вас есть другой сервер SQL 2005, вы можете попробовать скопировать mdf на другой сервер и использовать
EXEC sp_attach_single_file_db @dbname='YourDb',
@physname=N'D:\Path\YourDb.mdf'
GO
Если это сработает, вы можете сделать резервную копию старых файлов базы данных в другом месте, удалить старую базу данных и повторно подключить новую базу данных. Отказ от ответственности, отказ от ответственности, отказ от ответственности. (Незавершенные транзакции будут потеряны.)
Испытав эту проблему только на прошлой неделе, я переключил ее в простой режим, но это не позволило мне сжать базу данных. Решение, которое я использовал, заключалось в том, чтобы переключить резервную копию на простую, а затем создать резервную копию, которая теоретически очищает файл журнала. На моем сервере этого не произошло, поэтому я пошел дальше и восстановил базу данных из только что созданной резервной копии, а затем удалил оригинал, когда все было проверено. Размер файла моей базы данных теперь составляет 25 МБ с 200 ГБ. Однако обратная сторона этого заключается в том, что вы теряете все резервные копии на определенный момент времени (это означает, что ваша самая старая резервная копия теперь выполняется на вашем сервере). Для нас это не было проблемой, но может быть проблемой для вас.