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

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

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

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


а чем не устраивает sys.databases ?
...
Рейтинг: 0 / 0
10.12.2020, 13:50
    #40026352
Guf
Guf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
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
10.12.2020, 14:24
    #40026370
rozen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
Konst_One
а что показывает , когда close?

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


показывает ONLINE
...
Рейтинг: 0 / 0
10.12.2020, 14:25
    #40026373
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
тогда по логам надо искать
...
Рейтинг: 0 / 0
10.12.2020, 14:28
    #40026378
rozen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
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
10.12.2020, 14:29
    #40026379
rozen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
Ролг Хупин
а чем не устраивает sys.databases ?
там эта БД находится в ONLINE. Куда еще смотреть?
...
Рейтинг: 0 / 0
10.12.2020, 14:47
    #40026390
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
rozen
Ролг Хупин
а чем не устраивает sys.databases ?
там эта БД находится в ONLINE. Куда еще смотреть?


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

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

автоотключение с какой целью настроено?
...
Рейтинг: 0 / 0
10.12.2020, 15:48
    #40026428
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
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
11.12.2020, 06:51
    #40026663
Guf
Guf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как понять, что база данных Closed?
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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как понять, что база данных Closed? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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