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

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

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

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
Теги:
Хабы:
Всего голосов 8: ↑4 и ↓4 0
Просмотры 2.1K
Комментарии Комментарии 7