Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перевод БД в ReadOnly -> snapshot_isolation ON  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10232
Блог
Странное поведение, кто в курсе ЗАЧЕМ!?

--Создаём БД
create database t
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
0            0
*/

--Переводим БД в ReadOnly
alter database t set read_only
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
1            1
*/



Как ОНО вообще связано!?




Но что ещё интереснее:

--Принудительно Выключаем snapshot_isolation
alter database t set allow_snapshot_isolation off
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
1            1
*/

--Возвращаем БД в read_write
alter database t set read_write
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
0            0
*/

--Включаем принудительно snapshot_isolation
alter database t set allow_snapshot_isolation on
go
--Смотрим настройки snapshot_isolation_state
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
0            1
*/


--Опять переводим в ReadOnly
alter database t set read_only
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go
/*
is_read_only snapshot_isolation_state
------------ ------------------------
1            1
*/


--Опять пытаемся загасить snapshot_isolation
alter database t set allow_snapshot_isolation off
go
--Смотрим настройки
select is_read_only, snapshot_isolation_state
from sys.databases
where name = 't'
go

/*
is_read_only snapshot_isolation_state
------------ ------------------------
1            0
*/

/*
************WTF????*************
*/

select @@version

/*
Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 
	Feb 20 2014 20:04:26 
	Copyright (c) Microsoft Corporation
	Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
*/



MSDN пишет
При установке параметра ALLOW_SNAPSHOT_ISOLATION в базе данных, находящейся в режиме READ_ONLY, установка будет сохранена при переводе базы данных в режим READ_WRITE.

http://msdn.microsoft.com/ru-ru/library/bb522682.aspx





ЗЫ: В SQL 2008 статус snapshot_isolation можно изменить у БД, которая ReadOnly. А вот с 2012 вообще странное поведение...
27 авг 14, 13:52    [16500520]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить