Автор Тема: Глюк SQL 2008  (Прочитано 1509 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 6169
  • Рейтинг: 39
  • Пол: Мужской
    • s.popov-skype
    • Просмотр профиля
  • Откуда: замкадыш
Глюк SQL 2008
« : 02 Ноября 2018, 11:40:49 »
Смотрите какая забавная штука поймалась.

Были базы bp unf ut2014 zup, и ещё две fdata и gdata

Эти две даты fdata и gdata были переведены в автономный режим и вообще потом удалены.

И перестал работать план бэкапа... Падает и всё... смотрите журналы...
Смотрим...

И видим там в выполняемом коде на котором всё падает
USE [bp]
GO
DBCC CHECKDB(N''bp'')  WITH NO_INFOMSGS

GO
USE [fdata]
GO
DBCC CHECKDB(N''fdata'')  WITH NO_INFOMSGS

GO
USE [gdata]
GO
DBCC CHECKDB(N''gdata'')  WITH NO_INFOMSGS

GO
USE [unf]
GO
DBCC CHECKDB(N''unf'')  WITH NO_INFOMSGS

GO
USE [ut2014]
GO
DBCC CHECKDB(N''ut2014'')  WITH NO_INFOMSGS

И падает оно на том что
Сбой выполнения запроса "USE [fdata]
" со следующей ошибкой: "Не удалось открыть базу данных "fdata", поскольку она в автономном режиме.". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.


Смотрим в код плана, который должен выполняться...


USE [bp]
GO
DBCC CHECKDB(N'bp')  WITH NO_INFOMSGS
GO
USE [unf]
GO
DBCC CHECKDB(N'unf')  WITH NO_INFOMSGS
GO
USE [ut2014]
GO
DBCC CHECKDB(N'ut2014')  WITH NO_INFOMSGS
GO
USE [zup]
GO
DBCC CHECKDB(N'zup')  WITH NO_INFOMSGS

 %)

wtf.

Я конечно могу сделать новое задание... но wtf.


Updated: 02 November 2018, 12:10:48

Тупо создал всё заново, тестировать пока не буду, вечером, народу в базе все кто есть.
« Последнее редактирование: 02 Ноября 2018, 12:10:48 от Triangle »
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн Opium

  • Старожил
  • ****
  • Сообщений: 501
  • Рейтинг: 18
  • Пол: Мужской
    • ronohan
    • Просмотр профиля
  • Откуда: Мск
Глюк SQL 2008
« Ответ #1 : 15 Ноября 2018, 09:26:51 »
что такое "автономный режим" в данном контексте?
кстати, вот это вот "USE [zup]" можно не указывать, всё будет выполняться в контексте внутреннего снапшота БД
тоесть
use master/use tempdb/use <что угодно>
GO
DBCC CHECKDB(N'gdata')  WITH NO_INFOMSGS

Оффлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 6169
  • Рейтинг: 39
  • Пол: Мужской
    • s.popov-skype
    • Просмотр профиля
  • Откуда: замкадыш
Глюк SQL 2008
« Ответ #2 : 15 Ноября 2018, 12:55:48 »
Ну то и значит, базы стали не нужны, но пока не убивал и перевел в автономный режим, с этого момента прям сразу процедура и перестала выполняться, а я начал  сравнивать код T-SQL отображавшийся в задаче, впрочем в графическом интерфейсе эти две автономных базы тоже не отображались, но при просмотре ошибки отображалось что код выполняется с учетом этих баз.

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

Оффлайн Opium

  • Старожил
  • ****
  • Сообщений: 501
  • Рейтинг: 18
  • Пол: Мужской
    • ronohan
    • Просмотр профиля
  • Откуда: Мск
Глюк SQL 2008
« Ответ #3 : 15 Ноября 2018, 14:19:12 »
дык что такое "автономный режим"?
ты базы в офлайн положил
или через
ALTER DATABASE [test] SET CONTAINMENT
?

Оффлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 6169
  • Рейтинг: 39
  • Пол: Мужской
    • s.popov-skype
    • Просмотр профиля
  • Откуда: замкадыш
Глюк SQL 2008
« Ответ #4 : 15 Ноября 2018, 14:24:07 »
Ну как, как, через Management Studio, Задачи-перевести в автономный режим.
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.

Оффлайн Opium

  • Старожил
  • ****
  • Сообщений: 501
  • Рейтинг: 18
  • Пол: Мужской
    • ronohan
    • Просмотр профиля
  • Откуда: Мск
Глюк SQL 2008
« Ответ #5 : 15 Ноября 2018, 14:41:29 »
а, сорян
не снобизма ради - я просто не ориентируюсь в русской студии><
но вобщем всё верно, базы уходят в офлайн и недоступны для проверки, в итоге у тебя в исходном коде 2 "спотыкашки"
1. use <dbname>
2. DBCC CHECKDB(N'<dbname>')  WITH NO_INFOMSGS

ЗЫ:
вообще переводить базу в офлайн - такая себе тема, в этом режиме сиквел перестаёт "держать" файлы на диске и их можно удалить, переименовать и вообще что угодно с ними делать непосредственно из операционки
как следствие, если сделать drop database офлайновой базы - сиквел не удалит файлы, они останутся лежать там же где и лежали и будут занимать место.

Оффлайн Triangle

  • Модераторы
  • Олдфаг
  • *****
  • Сообщений: 6169
  • Рейтинг: 39
  • Пол: Мужской
    • s.popov-skype
    • Просмотр профиля
  • Откуда: замкадыш
Глюк SQL 2008
« Ответ #6 : 15 Ноября 2018, 14:55:11 »
Да меня что удивило что в исходном коде, в том который виден в задаче не было этих спотыкашек, а в логе по результатам выполнения есть, вот это блин номер. Я их в автономку загнал чтобы к ним случайно не подключились, это надо то было на пару дней, пока всем лишние ярлыки на приложения прибивал(старый самопал на базе Аксеса с хранением в SQL)
Тетрис научил нас жизненно важному пониманию, успехи исчезают, ошибки накапливаются.