Как стать автором
Обновить

MS SQL база на сетевой шаре

Время на прочтение2 мин
Количество просмотров4.2K
Предупреждение: Автор не несет никакой ответственности за проблемы которые могут возникнуть при использовании данного метода подключения баз.

Microsoft SQL SERVER по умолчанию не позволяет создавать SQL базы на сетевых ресурсах, но это вполне как оказалось можно обойти при помощи внутренних флагов MSSQL.

DBCC TraceOn(1807)
GO
CREATE DATABASE MYDB
ON
(NAME = MYDB,
FILENAME = '\\server\share\MYDB.mdf' )
GO
DBCC TraceOff(1807)


Чудесная связка TraceON(1807) — TraceOff(1807) отключает проверку расположения файлов базы данных. Что позволяет прицепить базу данных расположенную на удалённом ресурсе.

Любые операции связанные с обслуживанием вновь созданной базы данных будут возможны только после изменения флагов.
Вместо создания базы Вы можете подключить существующую базу предварительно скопировав на сетевой ресурс файлы базы данных.
DBCC TraceOn(1807)
GO
sp_attach_db 'SomeDB',
'\\server\share\SomeDB.mdf',
'\\server\share\SomeDB.ldf'
go
DBCC TraceOff(1807)
GO

В связи с тем, что MSSQL кеширует содержимое базы, обнаружить её отвал возможно только при работе с неподкешированными таблицами, либо при выполнении процедур update или insert. При этом в зависимости от количества подключенных клиентов база сама может упасть в Suspect (имеется ввиду при отключении ресурса на котором находятся файлы базы). Поднятие базы возможно через команды sp_detach и sp_attach с изменением флагов. Руками из GUI поднять базу не сможете. Жесткое прописывание значения флагов в реестр(как это рекомендует Microsoft) эффекта не даёт. Поэтому будьте внимательны.
Скорость работы Вашей подключенной базы будет ограничена скоростью Вашего сетевого интерфейса, поэтому заранее продумайте топологию подключения серверов.
Удачи и хорошего конекта :))

(C) Aborche 2009
Теги:
Хабы:
0
Комментарии7

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн