Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Коллеги, помогите! Какая то странная фигня творится!

Внезапно получил ошибку: Msg 924, Level 14, State 1, Procedure Get_operations, Line 16
Database 'ХХХХ_prev' is already open and can only have one user at a time.

Получаю как в приложении, так и в мэнеджмент студии.

Странность в том, что:
1. Я вообще то не к этой базе коннекчусь. Совсем!
2. Хранимая процедура к этой базе не обращается. Вообще. Она обращается к другой БД, это да. Но не к этой.
3. БД, к которой коннектится процедура тоже, вроде, не ссылается на ,fpe ХХХХ_prev. (Гм... Если ссылается, то как посмотреть?). Но то, что не ссылается - почти уверен!
4. Пользователь, под которым запускаюсь, привязан только к нужной БД и никак не привязан к ХХХХ_prev.
5. База ХХХХ_prev действительно есть, и действительно в сингл-юзер сейчас. И это - нормально!

Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
May 4 2015 19:11:32
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
3 авг 15, 15:44    [17969655]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
uaggster,

стеклянный шар говорит, что в процедуре Get_operations в строке 16 есть объект типа view или linkedserver или еще какая ddl шняга указывающая на ХХХХ_prev.
3 авг 15, 15:53    [17969726]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
uaggster,
и что в процедуре Get_operations в строке 16?
3 авг 15, 15:54    [17969731]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Да нету там ничего, в этом то вся и штука!
Процедура проста, как трусы по рубль-двадцать!

ALTER PROCEDURE [portal].[Get_operations]
	@date_begin datetime,
	@date_end datetime,
	@regn int 
	With execute as 'dbo'
AS
BEGIN
	SET NOCOUNT ON;
	Set transaction isolation level read uncommitted;

	Select 
	 sp.region_id [regn]
	,sp.operation_type_id
	,c.[description] 
	,sp.id [point]
	,sp.[description]
	,Count(a.operation_id) [CNT]
	from
		(Select s.[region_id], s.[id], s.[description], op.operation_type_id from
		[xxxx].[dbo].[points] s 
			Cross join (Values 
							(1)	,
							(3)	,
							(6)	, 
							(8)	,
							(9)	, 
							(10)	, 
							(11)	, 
							(12)	,
							(19)	, 
							(101)	,
							(102)	, 
							(103)	,
							(104)	,
							(105)
						) op (operation_type_id) 
	Where s.region_id=@regn) sp
	Left join [xxxx].[dbo].[operations] a on a.[service_point]=sp.id and a.operation_type_id=sp.operation_type_id and (a.actuality_date >= @date_begin and a.actuality_date < @date_end) 
	left join [xxxx].[dbo].[operation_types] c on sp.operation_type_id=c.id
	Group by 		 
	 sp.region_id
	,sp.operation_type_id
	,c.[description]
	,sp.id
	,sp.[description]
	Order by 4, 2


И вью там нету! Ни одного. Все участвующие в запросе объекты - честные таблицы.
3 авг 15, 16:14    [17969837]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
uaggster,

давайте структуру всех таблиц участвующих в запросе.
3 авг 15, 16:34    [17969950]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
чем можете доказать честность "таблиц" из соседней базы?
3 авг 15, 16:36    [17969963]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
Может быть [xxxx].[dbo].[points] синоним?
3 авг 15, 16:37    [17969965]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Коллеги, в целевой БД вообще нет синонимов и вью. Она проста, как валенок.
Таблицы тоже вроде ни на что не ссылаются.

Сейчас сделаю скрипты drop/create, посмотрю. Но в них НЕТ ничего такого!
3 авг 15, 17:14    [17970176]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
у вас ХП в одной схеме , а запускается вероятно ХП с таким же именем из схемы dbo?
3 авг 15, 17:18    [17970202]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
uaggster,

прицепите сюда Estimated Execution Plan, там все объекты подписывают с их базами.
именно реальные базы там будут указаны
3 авг 15, 17:18    [17970203]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Ага. А план - не создается! Т.к. возникает ошибка см.выше.
3 авг 15, 17:29    [17970263]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
uaggster,

ага. потому что в ту базу все-таки лезет.
можно закомментарить все соединения и просить план,
по одному раскомментаривая.
на каком джойне упрется выдать план,
тот объект и есть синоним/вьюха, смотрящее в базу в сингл-юзере
3 авг 15, 17:35    [17970292]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Konst_One,
>у вас ХП в одной схеме , а запускается вероятно ХП с таким же именем из схемы dbo?
ХП - в схеме portal другой бд. Процедуры с аналогичным именем в схеме dbo и в той бд, которая является хранилищем процедур, и в той бд, которая является хранилищем таблиц - нету. Это уникальноназванная ХП.
ХП ссылается на БД, являющейся хранилищем таблиц. Таблицы там расположены в схеме dbo.
На первый взгляд, никакой связи с блокированной, засинглюзерной базой - не просматривается.
Таблицы, на которые ссылается запрос - не алиесы и не вью, обращающиеся к блокированной базе.
Таблицы, на которые ссылается запрос - по виду - обычные. Есть куча констрентов - но всё типа внешних ключей, ведущих в эту же БД.
На первый взгляд.

Как посмотреть на второй - я не знаю.
3 авг 15, 17:36    [17970303]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
uaggster
Как посмотреть на второй - я не знаю.

вот так и смотреть.
исключить всех, добавлять по одному.
неизбежно упретесь в не совсем "честную" таблицу.

без джойнов можно тоже.
сходите селектом топ 1 в каждую из них сейчас,
когда та база недоступна
3 авг 15, 17:39    [17970314]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
o-o, Удивительное рядом.
Я попытался запустить запрос из ХП.
Сделал скрипт процедуры, убил заголовок создания, приписал к входным параметрам declare, инициализировал там же.
Запрос выполнился, даже не хрюкнув!

А хранимка - по прежнему блокируется!
Что за чудеса?
3 авг 15, 17:44    [17970344]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
uaggster,

ddl триггер ищите на сервере
3 авг 15, 17:49    [17970364]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
WarAnt, в ветке Server objects - Triggers - ничего нету!

Линкед сервер есть. Это ссылка на AD. Связанные с ней ХП работают нормально.
3 авг 15, 18:01    [17970410]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
komrad
Member

Откуда:
Сообщений: 5741
uaggster
Что за чудеса?


а если ее пересоздать через drop/create?
либо кэш процедурный скинуть для нее ...
3 авг 15, 19:53    [17970745]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
o-o
Guest
komrad
uaggster
Что за чудеса?


а если ее пересоздать через drop/create?
либо кэш процедурный скинуть для нее ...

Нет, ну так вы убьете чудо так и не узнав, что это было.
Можно в этом скрипте alter поменять на create и имя сменить и посмотреть. Все то же самое или нет?
3 авг 15, 20:28    [17970864]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
ИМХО, ТС просто заблудился в своих базах и схемах. В результате вызывает одну процедуру, а нам показывает другую...
3 авг 15, 20:35    [17970891]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
komrad
Member

Откуда:
Сообщений: 5741
o-o
komrad
пропущено...


а если ее пересоздать через drop/create?
либо кэш процедурный скинуть для нее ...

Нет, ну так вы убьете чудо так и не узнав, что это было.

это для нас это "чудо", развлечение ;)
а товарищ вон мается, не знает что делать
o-o
Можно в этом скрипте alter поменять на create и имя сменить и посмотреть. Все то же самое или нет?

в общем да, согласен
создать рядом дубль процы с другим именем
3 авг 15, 21:36    [17971149]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
посмотреть зависимости
3 авг 15, 23:46    [17971573]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
invm
ИМХО, ТС просто заблудился в своих базах и схемах. В результате вызывает одну процедуру, а нам показывает другую...
+1
Нужно хотя бы вызов сюда скопировать.
4 авг 15, 00:19    [17971616]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
uaggster
Member

Откуда:
Сообщений: 1064
Докладываю, чем закончилось.
После рестарта - проблема ушла и больше не повторялась.
Самое интересное - ХХХХ_prev и др. аналогичные базы по прежнему, как и задумывалось, становились однопользовательскими (там они ротируются как то, из нескольких создается одна база, потом переименовывается в рабочую, потом - выводится из этого состояния, преименовываясь, потом - убивается. Но пользователи работают с базой под "рабочим именем" хххх ).

Еще раз повторяю - в схемах я запутаться не мог. В бд, содержащей таблицы - просто нет процедур. А в БД, содержащей логику - они все уникальноназванные (синонимов в других схемах нет).

Теперь жду, когда чудо повторится.
4 авг 15, 14:19    [17973663]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение: Database 'ХХХХ' is already open and can only have one user at time.  [new]
sti
Member

Откуда:
Сообщений: 769
Вот что-то похожее наблюдал, как мне кажется
ссылка
4 авг 15, 14:31    [17973734]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить