powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как понять, что база данных Closed?
14 сообщений из 14, страница 1 из 1
Как понять, что база данных Closed?
    #40026342
rozen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такая настройка БД Auto Close
Ее состояние отлично видно в соответствующей колонке sys.databases

Я понимаю, что лучше ЭТО держать выключенным. Но тем не менее случайно напоролся на единственную такую на сервере БД, которой было разрешено выключаться и она была выключена. Как можно "снаружи" понять её состояние, чтобы вообще не пытаться теребить?
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026345
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что показывает , когда close?

Код: sql
1.
select name, state_desc from sys.databases
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026346
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen
есть такая настройка БД Auto Close
Ее состояние отлично видно в соответствующей колонке sys.databases

Я понимаю, что лучше ЭТО держать выключенным. Но тем не менее случайно напоролся на единственную такую на сервере БД, которой было разрешено выключаться и она была выключена. Как можно "снаружи" понять её состояние, чтобы вообще не пытаться теребить?


а чем не устраивает sys.databases ?
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026352
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen,
https://mssqltrek.com/2011/07/15/database-status-auto-close/
So if Auto Close is turned ON, your database will be Closed when the last session is terminated
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026370
rozen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
а что показывает , когда close?

Код: sql
1.
select name, state_desc from sys.databases


показывает ONLINE
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026373
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда по логам надо искать
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026378
rozen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guf
rozen,
https://mssqltrek.com/2011/07/15/database-status-auto-close/
So if Auto Close is turned ON, your database will be Closed when the last session is terminated


я нахожусь снаружи, в БД master, пробегаю курсоров по sys.databases, которые в состоянии online и в каждой вызываю одну и ту же хранимку через динамический SQL с указанием имени из 3 частей. (база-схема-хранимка). Если БД оказалась closed, то возникает ошибка. В sys.databases я не догадался как увидеть этот факт.
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026379
rozen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
а чем не устраивает sys.databases ?
там эта БД находится в ONLINE. Куда еще смотреть?
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026390
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen
Ролг Хупин
а чем не устраивает sys.databases ?
там эта БД находится в ONLINE. Куда еще смотреть?


А зачем еще куда-то смотреть, значит база онлайн.
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026400
rozen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин
А зачем еще куда-то смотреть, значит база онлайн.

нет. Если я из БД master делаю вызов exec [target_database].[sys].[sp_updatestats] то получаю ошибку как-то вроде "БД с именем таким то и id таким то отключена". Если потыкать в нее из management studio, то все получается. У этой базы у единственной был установлен параметр Auto Close в True. Я его снял, проблема исчезла, но осадочек остался.
Базы я перепирал курсором строго только с id > 4 и статусом ONLINE. Ошибка надёжно повторилась несколько раз, пока я её не "разбудил" прямым подключением.
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026418
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen
Ролг Хупин
А зачем еще куда-то смотреть, значит база онлайн.

нет. Если я из БД master делаю вызов exec [target_database].[sys].[sp_updatestats] то получаю ошибку как-то вроде "БД с именем таким то и id таким то отключена". Если потыкать в нее из management studio, то все получается. У этой базы у единственной был установлен параметр Auto Close в True. Я его снял, проблема исчезла, но осадочек остался.
Базы я перепирал курсором строго только с id > 4 и статусом ONLINE. Ошибка надёжно повторилась несколько раз, пока я её не "разбудил" прямым подключением.


А что написано в SSMS->Database->Properties->General->Status для базы, которая имеет AutoClose=ON?
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026420
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen,

автоотключение с какой целью настроено?
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026428
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen
Ролг Хупин
а чем не устраивает sys.databases ?
там эта БД находится в ONLINE. Куда еще смотреть?

пробовали databasepropertyex и Status ?
https://docs.microsoft.com/en-us/sql/t-sql/functions/databasepropertyex-transact-sql

NoteThe function may return a status of ONLINE while the database opens and has not yet recovered. To identify if an ONLINE database can accept connections, query the Collation property of DATABASEPROPERTYEX. The ONLINE database can accept connections when the database collation returns a non-null value.
...
Рейтинг: 0 / 0
Как понять, что база данных Closed?
    #40026663
Guf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rozen
Если БД оказалась closed, то возникает ошибка

Текст ошибки приведете?
Мои эксперименты не подтверждают наличие ошибки. Каждый раз когда я обращался к базе она нормально просыпалась.
Код: plaintext
Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64) Jul  5 2017 23:41:17 Copyright (c) Microsoft Corporation Developer Edition (64-bit)
скрипт
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
use master
go
create database d1
go
use d1
go
create procedure dbo.p1 as select db_name(), getdate();
go
create database d2
go
use d2
go
create procedure dbo.p1 as select db_name(), getdate();
go
create database d3
go
use d3
go
create procedure dbo.p1 as select db_name(), getdate();
go
use master
go
alter database d2 set auto_close on
go
use master
go
select  d.Name
      , d.is_auto_close_on
      , d.state_desc
      , sp.spid
    from sys.databases d
         left join sys.sysprocesses sp on sp.dbid = d.database_id
    where d.name like N'd_'
;
declare @cmd nvarchar(4000);
declare cur cursor for
select d.name+N'.dbo.p1' from sys.databases d where d.name like N'd_'

open cur
while 1 = 1
begin
    fetch next from cur into @cmd
    if @@fetch_status <> 0
        break;
    exec @cmd
end;
close cur
deallocate cur
;

exec sp_readerrorlog 0, 1, N'Starting up'

...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как понять, что база данных Closed?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]