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

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 477 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 7

    • НЛО прилетело и опубликовало эту надпись здесь
        +1
        Ну как вариант зацепить базу с бекапа не копируя её локально на основной.
        0
        За изобретение — пять, а по предмету — неуд. :)
        Нужно будет поэкспериментировать.
          0
          :))
          0
          Я давно примерно таким же способом бакапы по сети делаю…
          При наличии гигабита между серверами, очень даже удобно получается.
            +1
            Совершенно не понятно, зачем создавать файлы БД на сетевых ресурсах.
            Доступ по сети к серверу БД и так возможен.
            Рез.копирование в сеть — сам бог велел, у нас все именно так и работает.

            смысл борьбы?
              0
              ситуации бывают разные по жизни.
              например недостаток места на текущем сервере, или нужно подключить бекапную базу которая не может быть скопирована локально.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое