Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
Кто-то удалил файлы одной БД. Как удалить её кэш-имя в MS SQL Server 2005?
Пытаюсь сделать через MS SQL Manager 2005 методом DROP или DETACH, отвечает что БД не существует, однако при запросе списка БД сервера MS SQL 2005,-- там имя удалённой вручную БД присутствует!
7 ноя 09, 12:49    [7896265]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
Ладно... Не удаляет так не удаляет. Попробовал методом через ж*пу:
Создал пустые файлы, назвав их именем прошлой БД и так жк назвал физические файлы, которые поместил в нужную папку. БД не приняла эти файлы, глючная зараза...

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

Ладно... Делаю DROP или DETACH на одну из них и, чёрт, удаляется только один экземпляр одной и той же БД, а я возвращаюсь к проблеме №1: остаётся прокэшированное имя той самой БД, не имеющей физического файла!
7 ноя 09, 12:56    [7896286]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
Влом регистрироваться
Guest
3dmaxim,

а сделать рестарт сиквелу?
7 ноя 09, 12:57    [7896291]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
Рестарт сиквелу?-- Не понял. Рестарт всех служб MS SQL 2005?-- Делал. Не помогло.
Мне походу нужна какая-то синхронизация физических БД с кэшом.
Есть ли такое в системных хранимых процедурах или что вообще здесь ещё можно сделать? Поковырялся в системной БД master, ничего нужного не нашёл. Где прописаны имена БД в MS SQL 2005, которые пересылаются клиенту при запросе у сервера?
7 ноя 09, 13:11    [7896320]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
Поковырялся в системной БД master, ничего нужного не нашёл. Где прописаны имена БД в MS SQL 2005, которые пересылаются клиенту при запросе у сервера?
sys.databases

Вот мне интересно, вы из файловой системы тоже так файлы удаляете - напрямую из секторов на диске, не удаляя записи из структуры файловой ситстемы, а потом удивляетесь, что "глючная ос возвращает имена файлов из кэша"???

Надо было сразу сделать drop database или detach.
7 ноя 09, 13:17    [7896332]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
alexeyvg, да нет же.
Во первых пока запущен сервер физически файлы БД не так просто удалить без флажка "только для чтения"...

А во вторых проблема, думаю, возникла в результате не корректного завершения работы Servera ибо имя файла той самой БД там оказалось всё в иероглифах...
7 ноя 09, 13:23    [7896345]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
А во вторых проблема, думаю, возникла в результате не корректного завершения работы Servera ибо имя файла той самой БД там оказалось всё в иероглифах...
Это, я думаю, проблема в диске.

При некорректном завершении данные в системных тадлицах не меняются.

Вы бы привели более детальные данные - статус базы, какие действия делали, какой результат.

У меня, к примеру, в 2008-м сиквеле drop database нормально отрабатывает в таких случаях.
7 ноя 09, 14:10    [7896423]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
SQL Server у меня стоит самая первая 2005'я версия (~50Mb. инсталлятор) без каких-либо обновлений. Поэтому глючная... Например, при Attach уже имеющейся БД она должна была заменить старую на новую...

А всё что я делал описано во втором здесь посте. Конечно файл с иероглифами я переименовал как положено, но он принят сервером не был даже после рестарта, а при Attach оказалось, что и таблицы там повреждены... В общем позже проверю жёсткие диски с исправлением ошибок...
7 ноя 09, 15:46    [7896586]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
А всё что я делал описано во втором здесь посте.
Неправда, до этого вы писали, что делали DROP и DETACH.

Нужно копировать в пост команду и результат.
8 ноя 09, 00:47    [7897557]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
Поскольку я использую MS SQL MANAGER 2005 (Enterpice). То вводить команды типа " DROP DATABASE 'Libraly'; ", там бесполезно, если конечно не прибегать к маленьким хитростям...
Я всё делал из визуального интерфейса и DROP и DETACH, в каком порядке не помню.
Но если в БД master точно есть таблица sys.databases, которую я ранее не заметил, с записями кэша, то вы, можно сказать, мне очень помогли. Ибо из-за того остатка от базы в MS SQL MANAGER'е я вообще не могу открыть вкладку назначения прав доступа к БД для пользователей с ошибкой с той самой базой...

PS Посути, метод Detach, наверное, просто и очищает нужные записи в таблице sys.databases?!
8 ноя 09, 10:39    [7897831]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
3dmaxim
Поскольку я использую MS SQL MANAGER 2005 (Enterpice). То вводить команды типа " DROP DATABASE 'Libraly'; ", там бесполезно, если конечно не прибегать к маленьким хитростям...
Я всё делал из визуального интерфейса и DROP и DETACH, в каком порядке не помню.

Честно говоря вот этот пассаж не очень понятен. Инструкция DROP прекрасно выполняется из студии, надо только активную базу поставить другую. А инструкции DETACH в скуле нет, есть процедура master.dbo.sp_detach_db. Попробуйте кстати выполнить ее с параметрами
EXEC master.dbo.sp_detach_db @dbname = N'tdb', @skipchecks = 'true' 

3dmaxim

Но если в БД master точно есть таблица sys.databases, которую я ранее не заметил, с записями кэша, то вы, можно сказать, мне очень помогли. Ибо из-за того остатка от базы в MS SQL MANAGER'е я вообще не могу открыть вкладку назначения прав доступа к БД для пользователей с ошибкой с той самой базой...

PS Посути, метод Detach, наверное, просто и очищает нужные записи в таблице sys.databases?!

это не таблица, это view, причем нередактируемое, т.е. явно вы и него ничего выкинуть не сможете.
8 ноя 09, 12:25    [7897914]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
3dmaxim,

да, еще - можете попробовать предварительно выполнить команду
alter database Library set emergency with NO_WAIT
8 ноя 09, 12:34    [7897921]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
3dmaxim,

сейчас специально залез на 2005, сохдал базу, стопнул сервис, снес файлы БД и стартанул сервис. База стала подозрительной, но выполнение команды DROP DATABASE снесло ее без всяких проблем, так что флаг вам в руки.
8 ноя 09, 13:32    [7897991]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
iljy
сейчас специально залез на 2005, сохдал базу, стопнул сервис, снес файлы БД и стартанул сервис. База стала подозрительной, но выполнение команды DROP DATABASE снесло ее без всяких проблем, так что флаг вам в руки.


Не знаю... Я от бессилия чуть ли хотел переустановить нахрен весь SQL Server 2005... А после команды DROP выдаёт ошибку о не существующей БД или недостатке прав, которые кстати полные...

Если ваши последние два способа не помогут, посмотрю исходный SQL-код просмотра sys.databases, доберусь до таблиц-источников и очищу их нахрен!

Если и это не поможет, то снесу этот глючный сервер и поставлю другой. Возможно, там вообще версия 2000... Не я его ставил...
8 ноя 09, 19:46    [7898594]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
Поскольку я использую MS SQL MANAGER 2005 (Enterpice). То вводить команды типа " DROP DATABASE 'Libraly'; ", там бесполезно, если конечно не прибегать к маленьким хитростям...
Я всё делал из визуального интерфейса и DROP и DETACH, в каком порядке не помню.
Но если в БД master точно есть таблица sys.databases, которую я ранее не заметил, с записями кэша, то вы, можно сказать, мне очень помогли. Ибо из-за того остатка от базы в MS SQL MANAGER'е я вообще не могу открыть вкладку назначения прав доступа к БД для пользователей с ошибкой с той самой базой...

PS Посути, метод Detach, наверное, просто и очищает нужные записи в таблице sys.databases?!
Интересно, почему вы предпочитаете тратить дни или недели на проблему, решаемую за 5 минут.

Так трудно набрать команду в 5 букв?
8 ноя 09, 20:48    [7898750]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
alexeyvg,

Блин, какая ещё команда в пять букв? Я за час перебрал все приходящие мне на ум способы и закончил свой рабочий день, оставив проблему до поннедельника...

Помню ровно год назад на другой АРМ с SQL SERVER 2005 ещё первый раз столкнулся с этой проблемой. Ни DROP ни DETACH также не помогли, зато когда я сделал Attach, то новая база заменила старую. А здесь ... что-то новенькое... DeInstall!!! Или попробую ещё из временного архива установки вытащить и заменить эти четыре чистые системные БД (master, temp, ...).
8 ноя 09, 21:21    [7898867]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
alexeyvg,

Блин, какая ещё команда в пять букв?
DROP или DETACH

3dmaxim
Я за час перебрал все приходящие мне на ум способы и закончил свой рабочий день, оставив проблему до поннедельника...
Все??? И не удосужились набрать строчку текста?

До этого вы писали:
3dmaxim
Поскольку я использую MS SQL MANAGER 2005 (Enterpice). То вводить команды типа " DROP DATABASE 'Libraly'; ", там бесполезно, если конечно не прибегать к маленьким хитростям...
Я всё делал из визуального интерфейса и DROP и DETACH, в каком порядке не помню.


Я вот специально не поленился, удалил файл, потом выполнил команду DROP, и у меня база удалилась без вопросов, как и у iljy.

Никаких маленьких хитростей не нужно, нужно просто открыть окно запросов и написать DROP DATABASE.

Все действия с сервером, особенно при нештатных ситуациях, нужно делать из окна запросов, когда просите помощи, пишите в посте результат выполнения команды.
8 ноя 09, 23:25    [7899154]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
3dmaxim,

удалите СОВСЕМ файлы битой базы, потом выполните команду DROP.
9 ноя 09, 00:06    [7899223]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
Влом регистрироваться
Guest
3dmaxim,

Пытаюсь сделать через MS SQL Manager 2005 методом DROP или DETACH, отвечает что БД не существует

EMS SQL Manager чёле? А запросом, без GUI, регилия не позволяет?
9 ноя 09, 11:02    [7900252]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
Дмитрий16
Member

Откуда: Новосибирск
Сообщений: 481
Кнопка Delete в менеджере :-)
9 ноя 09, 11:04    [7900262]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
Ёлки палки!
Вот ответы сервера на мои комманды:

1. use "master"; alter database "ganognu 66" set emergency with NO_WAIT;
_______________________________
User does not have permission to alter database 'ganognu 66' or the database does not exist

2. EXEC master.dbo.sp_detach_db @dbname = N'ganognu 66', @skipchecks = 'true'
_______________________________
The database 'ganognu 66' does not exist. Use sp_helpdb to show available databases

PS Я установил себе дома такую же версию MS SQL Server'а и проделал удаление в ручную, а остаток от БД без проблем стёрся по команде DROP DATABASE... Видимо, там что-то глюкануло.

Кстати таблицы sys.databases я нигде не нашёл в msdb.

Дмитрий16, где в мэнеджере копка "удалить"? У меня 2005. И ещё вопрос по менеджеру: в каком месте там можно исполнять комманды типа DROP DATABASES ...? Там есть "Execute SQL Script", но в нём можно только писать запросы, а другой редактор (execute query) работает только внутри текущей активной БД...
9 ноя 09, 11:48    [7900509]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
На запрос DROP DATABASE "Libraly"; Отвечал также как и при п.1 (см. пост выше).
9 ноя 09, 11:50    [7900527]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31175
3dmaxim
Ёлки палки!
Вот ответы сервера на мои комманды:

1. use "master"; alter database "ganognu 66" set emergency with NO_WAIT;
_______________________________
User does not have permission to alter database 'ganognu 66' or the database does not exist

2. EXEC master.dbo.sp_detach_db @dbname = N'ganognu 66', @skipchecks = 'true'
_______________________________
The database 'ganognu 66' does not exist. Use sp_helpdb to show available databases
Ну наконец-то!

Теперь
3. DROP DATABASE [ganognu 66]

3dmaxim
Кстати таблицы sys.databases я нигде не нашёл в msdb.

Дмитрий16, где в мэнеджере копка "удалить"? У меня 2005. И ещё вопрос по менеджеру: в каком месте там можно исполнять комманды типа DROP DATABASES ...? Там есть "Execute SQL Script", но в нём можно только писать запросы, а другой редактор (execute query) работает только внутри текущей активной БД...


3dmaxim
Кстати таблицы sys.databases я нигде не нашёл в msdb.
Дык откуда её взяться в msdb???
Смотреть всегда нужно начинать с хелпа, а не с msdb.

3dmaxim
Дмитрий16, где в мэнеджере копка "удалить"? У меня 2005. И ещё вопрос по менеджеру: в каком месте там можно исполнять комманды типа DROP DATABASES ...? Там есть "Execute SQL Script", но в нём можно только писать запросы, а другой редактор (execute query) работает только внутри текущей активной БД...
Удивительно для человека, больше года работающего с MSSQL. File -> New -> Database Engine Query

Что за термины - "редактор работает только внутри текущей активной БД"???

Редактор редактирует текст внутри вашего компа, а не в какой-то БД. А запрос из Query-окна может менять данные в какой угодно БД, причём даже во многих базах в одном скрипте.
9 ноя 09, 12:39    [7900966]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
3dmaxim
Member

Откуда:
Сообщений: 36
alexeyvg
Удивительно для человека, больше года работающего с MSSQL. File -> New -> Database Engine Query

Ага... Меню 'File' там отсутствует вообще, если вы про SQL Manager 2005 v.2.0.5.1

Ладно, я уже давно нашёл другой способ: из интерфейса выполнить заранее ошибочную функцию, например добавление пользователя из не существующего домена. В открывшемся окне с ошибкой удалить скрипт, сгенерированный средой, написать свой и нажать "execute again", ... Только так я пока выполняю запросы типа "DROP DATABASE ..." или назначение прав...

alexeyvg

Что за термины - "редактор работает только внутри текущей активной БД"???

Редактор редактирует текст внутри вашего компа, а не в какой-то БД. А запрос из Query-окна может менять данные в какой угодно БД, причём даже во многих базах в одном скрипте.

Ну так пункт "execute query" появляется только тогда, когда активеруешь хотя бы одну из баз...

PS Ваш третий метод попробую теперь уж завтра.
И вообще sys.databases я нигде не нашёл. А почему в msdb?-- Это единственная из системных БД, что не пустая, с кучей таблиц. В master'е всего две таблицы и два представления, котырые мне пока что не нужные... Е ещё... Эта хранимая процедура sp_detach... она как-бы исполняется но найти её код в какой-либо системной БД мне не удаётся, поскольку её в них нет! Где она лежит?
9 ноя 09, 13:00    [7901150]     Ответить | Цитировать Сообщить модератору
 Re: Удаление удалённой БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
3dmaxim,

откройте для себя SQL Server Management Studio, моэжно Express, вам хватит. Скачайте ее с мелкомягкого сайта и поставьте.
9 ноя 09, 13:15    [7901293]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить