Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 cannot be removed because it is not empty  [new]
remikc
Member

Откуда:
Сообщений: 6
Здравствуйте друзья. У меня возникла очень неприятная ситуация которая изрядно досаждает. Те кто соображает в вопросе пожалуйста помогите.

Дело вот в чём.
Есть база данных для программы navision (аналогия 1c)
Операционка Win 2003, на ней MS SQL 2008 имя базы navisionVladivostok

Заметил что у сервера кончается свободное пространство и ошалел когда увидел. Размер базы 58гб, это непомерно много при условии что её наполняет один только текст.

Через Microsoft SQL Server Management Studio в свойствах базы (раздел файлы) заметил что их аж 5. Я не силён в MS SQL но мне кажется что 2 лога и целых 3 mdf файла не к чему. Думал удалить хоть 1 лог и 1 mdf (в том же меню выделил и нажал remove) Сервер выдаёт ошибку:

TITLE: Microsoft SQL Server Management Studio
------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

The file 'navisionVladivostok' cannot be removed because it is not empty. (Microsoft SQL Server, Error: 5042)

Пожалуйста подскажите. Прав ли я (в присутствии "лишних деталей" =) )? Как от них избавится без потери информации или как уменьшить размер базы?
16 апр 13, 08:37    [14185004]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
Илья Петров
Member

Откуда:
Сообщений: 43
Уменьшить размер базы можно за счёт обрезки лога как его резать тут описано в Топ 10 вопосов
16 апр 13, 08:40    [14185013]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
Glory
Member

Откуда:
Сообщений: 104760
remikc
Я не силён в MS SQL но мне кажется что 2 лога и целых 3 mdf файла не к чему

Замечательный вывод.
Я не силен в медицине, но считаю, что 2 руки и 2 ноги вам никчему. Давайте отрежем вам 2 чего-нибудь на выбор.
remikc
Как от них избавится без потери информации или как уменьшить размер базы?

Позвать специалиста, который адекватно сможет оценить, чем заняты ваши 58Гб.
16 апр 13, 09:21    [14185200]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
remikc
Думал удалить хоть 1 лог и 1 mdf
Вы бакап то сделали? А то я могу представить содержание следующего топика :-)
16 апр 13, 09:35    [14185292]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
remikc
Member

Откуда:
Сообщений: 6
Glory можешь написать что нить дельное а не порцию сарказма? Что касательно специалиста, за этим я и решил обратится на этот форум.
alexeyvg разумеется я сделал полный бэкап =)
Если вам не хочется разбираться в причине такова объёма то всё таки подскажите пожалуйста способ отделить эти файлы или что я должен посмотреть/сделать.
17 апр 13, 04:15    [14190092]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
remikc
Glory можешь написать что нить дельное а не порцию сарказма? Что касательно специалиста, за этим я и решил обратится на этот форум.
alexeyvg разумеется я сделал полный бэкап =)
Если вам не хочется разбираться в причине такова объёма то всё таки подскажите пожалуйста способ отделить эти файлы или что я должен посмотреть/сделать.
Это вам очень повезло, что вам студия выдала такую ошибку, а не удалила файлы, а то накрылось бы у вас всё медным тазом. О чем вам тут и сказали.

Ответ на ваш вопрос может быть первый в TOP 10 1017441, (а может и нет). О чем вам уже тоже сказали 14185013

remics
Glory можешь написать что нить дельное а не порцию сарказма? Что касательно специалиста, за этим я и решил обратится на этот форум.
Это не сарказм. Не обижайтесь, но если вы додумались удалять файлы БД, то вам нужно искать специалиста по MS SQL-Server для решения вашей проблемы за деньги, а то вы только наломаете дров.
17 апр 13, 05:58    [14190115]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
remikc
Member

Откуда:
Сообщений: 6
Ruuu, я не хотел обидеть кого либо своим сообщением) Сервер находится на виртуальной машине, по этому я уже вволю наэкспериментировался с копиями. Осознаю что достаточно глупо изъяснил проблему. Просто я наверно давно по незнанию прицепил эти файлы а теперь когда джобу не стало хватать места для бэкапов начал суетится) Выражаю огромную благодарность тем, кто всё таки уделил внимание моему вопросу. Увы я ожидал получить ответ другой от "Позвать специалиста".
17 апр 13, 08:01    [14190202]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
remikc
Ruuu, я не хотел обидеть кого либо своим сообщением) Сервер находится на виртуальной машине, по этому я уже вволю наэкспериментировался с копиями. Осознаю что достаточно глупо изъяснил проблему. Просто я наверно давно по незнанию прицепил эти файлы а теперь когда джобу не стало хватать места для бэкапов начал суетится) Выражаю огромную благодарность тем, кто всё таки уделил внимание моему вопросу. Увы я ожидал получить ответ другой от "Позвать специалиста".


для того чтобы можно было удалить файл необходимо его сначала очистить, о чем и было сказано в ошибке
для этого есть команда
DBCC SHRINKFILE (
    { file_name | file_id } 
    { [ , EMPTYFILE ] 
)

это можно сделать из через IDE меню Task->Shrinkfile а там поставить крыжик
после этого либо командой ALTER DATABASE или через IDE файл можно будет удалить из базы

ЗЫЖ
1. Вы всегда должны отдавать себе отчет о том, что хотите проделать.
2. ВСЕГДА иметь АКТУАЛЬНЫЕ бэкапы базы, если потом вдруг решили, что ошиблись и захотите все вернуть обратно
3. Потренироваться на тестовой базе, которую не жалко и только потом работать с боевой
17 апр 13, 08:10    [14190210]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
remikc
Member

Откуда:
Сообщений: 6
HandKot, Спасибо тебе огромное, твой совет реально помог мне. Пройдя по Task->Shrink->file Увидел что 1 файл mdf и 1 ldf пустые на 98% поставив галочку на миграцию данных в другой файл и всё получилось. База по прежнему функционирует. Выражаю благодарность всем кто пытался помогать мне.
17 апр 13, 10:40    [14190874]     Ответить | Цитировать Сообщить модератору
 Re: cannot be removed because it is not empty  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
remikc
HandKot, Спасибо тебе огромное, твой совет реально помог мне. Пройдя по Task->Shrink->file Увидел что 1 файл mdf и 1 ldf пустые на 98% поставив галочку на миграцию данных в другой файл и всё получилось. База по прежнему функционирует. Выражаю благодарность всем кто пытался помогать мне.


дабы не терять время, быстрее бывает поискать ошибку в инете (тем более она стандартная) и пути ее решения
17 апр 13, 13:12    [14192317]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить