Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Два сервера - одна база  [new]
Selen74
Member

Откуда: Ekaterinburg
Сообщений: 63
Доброе время суток!

Есть два нода (компьютера) подключенных к дисковому массиву.
Могу я установить на каждый нод MSSQL и настроить обращение
к одной базе на одном диске?

Заранее спасибо тем, кто ответит конкретно.
25 ноя 15, 18:59    [18472664]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
komrad
Member

Откуда:
Сообщений: 5674
Selen74,

нет, файлы БД будут открыты на запись одним сиквелом и второй не сможет работать с такими файлами

а вам для чего это нужно?
задача-то какая?
25 ноя 15, 19:10    [18472693]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
AndyMandy
Member

Откуда: СПб
Сообщений: 196
Сильно подозреваю, что товарищу нужен кластер
25 ноя 15, 20:33    [18473005]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Selen74
Member

Откуда: Ekaterinburg
Сообщений: 63
AndyMandy
Сильно подозреваю, что товарищу нужен кластер


Цитата из статьи: "Технически можно обойтись 3 серверами совместив все необходимые роли на домен контроллере, но в полевых условиях так поступать не рекомендуется."
Читал я ее. И с кластерами я знаком.
На одном из проектов, по моему, по этой статье и ставили!
И! Это отказоустойчивый кластер! HA. А я, как бы, скорее, LB хочу.

Да не в этом суть!

komrad
нет, файлы БД будут открыты на запись одним сиквелом и второй не сможет работать с такими файлами
а вам для чего это нужно?
задача-то какая?

Собственно пользовать одну базу двумя (и более) серверами!
Задача - одна полка с дисками - два (и более) сервера.

Вот ему (SQL), при наличии механизма блокировок на любой элемент, зачем блокировать файл?
При журналировании всего и вся.

Да, в конце концов, у меня все еще (с 2011 года) работает база Access.
Три-пять юзверей одновременно юзают базу и в виртуалке, и по сети.
С офиса 2003 по 2010 без проблем.
Нешто (это по Уральски) акцесс более чем SQL ?

Вам не кажется, что есть диссонанс?
В десктоповой базе есть, а в серверной нет!

Может для Сервера есть какие-то заклинания?

Возвращаясь к Andy...
Способы кластеризации и такие (как в статье) и вирталку можно забацать!
Накладные расходы!! Вот тут и ответ - а зачем!
25 ноя 15, 22:31    [18473447]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Selen74
Могу я установить на каждый нод MSSQL и настроить обращение
к одной базе на одном диске?

Заранее спасибо тем, кто ответит конкретно.
Нет.
Selen74
Задача - одна полка с дисками - два (и более) сервера.
Это возможно, да.
Selen74
Да, в конце концов, у меня все еще (с 2011 года) работает база Access.
Три-пять юзверей одновременно юзают базу и в виртуалке, и по сети.
С офиса 2003 по 2010 без проблем.
Нешто (это по Уральски) акцесс более чем SQL ?
Что то я сомневаюсь в этом. Какую команду Win API нужно использовать для открытия файлов на запись двумя процессами, не подскажите? По моему, нет таких.
Selen74
Вам не кажется, что есть диссонанс?
В десктоповой базе есть, а в серверной нет!
2 компа один диск не могут вместе использовать, а вы хотите, что бы 2 сервера одной базой управляли :-)
25 ноя 15, 23:36    [18473628]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
Selen74,

дык аксес имеет совершенно другие механизмы работы и не имеет службы сервера.
А вообще в чем смысл такой затеи?
26 ноя 15, 01:12    [18473876]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Владислав Колосов
дык аксес имеет совершенно другие механизмы работы и не имеет службы сервера.
Насколько я понимаю (по неким отрывочным сведениям), он для многопользовательской работы как раз использует сервис. Т.е. с файлом работает только одна прога, как и должно быть.

Но я не специалист, не уверен, так ли на самом деле.
26 ноя 15, 01:19    [18473889]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Col
Member

Откуда: Торонто
Сообщений: 182
Selen74
Это возможно, но только для баз в режиме ридонли.
26 ноя 15, 01:43    [18473926]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
AndyMandy
Member

Откуда: СПб
Сообщений: 196
Selen74
...Собственно пользовать одну базу двумя (и более) серверами!
Задача - одна полка с дисками - два (и более) сервера...

Чисто ради шутки - сделать скрипт который будет попеременно делать attach-detach файлов БД к разным инстансам SQL службы :)
26 ноя 15, 04:40    [18473967]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
alexeyvg
Насколько я понимаю (по неким отрывочным сведениям), он для многопользовательской работы как раз использует сервис. Т.е. с файлом работает только одна прога, как и должно быть.
Да? А как же тогда он умудряется работать с файлом, лежащим на сетевой шаре? Несколько экземпляров Access одновременно с одним файлом... и кроме этого .mdb-файла (и .ldb) нет никаких средств коммуникации между ними.

alexeyvg
Какую команду Win API нужно использовать для открытия файлов на запись двумя процессами, не подскажите? По моему, нет таких.
Вообще-то, есть. Третий параметр у CreateFile, dwShareMode управляет режимом разделяемого доступа. Можно открыть один файл двумя процессами на запись, если они оба разрешают разделение записи. А для блокировок есть LockFile, их уже можно позже поставить, когда они будут нужны. И именно так работают файловые СУБД вроде Access. Если не ошибаюсь, SQL Server Compact - тоже.

Только вот у такой работы (даже если файлы они лежат локально) есть недостатки: например, СУБД нельзя использовать собственный кеш для данных, на каждый чих данные - перечитывать из файла (а вдруг их другой процесс изменил?). SQL Server Engine открывает файлы монопольно, и одновременно использовать одни и те же файлы с двух серверов не получится. Даже если каким-то хаком удастся их открыть двум серверам, скорее всего данные очень быстро разрушатся, т.к, в сервере не предусмотрено механизма блокировок для совместного доступа, который есть в файловых СУБД.
26 ноя 15, 09:06    [18474155]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
o-o
Guest
Col
Selen74
Это возможно, но только для баз в режиме ридонли.

Да ладно,
Msq 5120, Level 16, State 101, Line 1
Unable to open the physical file... Operating system error32: "32 (failed to retrieve text for this error. Reason: 15105)".
26 ноя 15, 09:17    [18474183]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Alibek B.
Member

Откуда:
Сообщений: 3921
alexeyvg
2 компа один диск не могут вместе использовать

В общем случае — могут.
Конечно при использовании соответствующей файловой системы, например OCFS2.
26 ноя 15, 09:59    [18474312]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
Selen74
Задача - одна полка с дисками - два (и более) сервера.
Да.

Selen74
Могу я установить на каждый нод MSSQL и настроить обращение
к одной базе на одном диске?
Нет.

Два MS SQL работают с одними и теми же данными - репликация, не? Правда по факту все равно нужны будут 2 набора файлов.
26 ноя 15, 10:04    [18474328]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Alibek B.
Member

Откуда:
Сообщений: 3921
Selen74
А я, как бы, скорее, LB хочу.

Сделать два отдельных (с внешней точки зрения) инстанса вполне можно.
Но если цель в балансировке нагрузки, то MSSQL подобным образом горизонтально не масштабируется.
26 ноя 15, 11:14    [18474660]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Alibek B.
alexeyvg
2 компа один диск не могут вместе использовать

В общем случае — могут.
Конечно при использовании соответствующей файловой системы, например OCFS2.
Разве там 2 компа управляют одним диском? Например, по 2м каналам SAS, подключённым к одному диску?

Это же просто распределённая файловая система, а не совместное использование одного физического диска.
Serg_77m
Можно открыть один файл двумя процессами на запись, если они оба разрешают разделение записи. А для блокировок есть LockFile, их уже можно позже поставить, когда они будут нужны. И именно так работают файловые СУБД вроде Access. Если не ошибаюсь, SQL Server Compact - тоже.
А, понятно, спасибо.
Я думал, что так может быть, но в общем к нормальным СУБД это естественно неприменимо.
Selen74
Вот ему (SQL), при наличии механизма блокировок на любой элемент, зачем блокировать файл?
При журналировании всего и вся.
Вот как раз из за кеширования. Блокировки, например, запрашиваются миллионы раз в секунду, это же структуры в памяти, и гранулярность может быть очень мала. А при попеременной модификации файла двумя прогами придётся и блокировки, и все остальные кеши каждый раз перезачитывать, отложенная запись, тот же транзакшен лог, будет невозможны - значит, и скорость работы с диском упадёт в тысячи раз...
26 ноя 15, 11:58    [18474864]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Selen74
Вот ему (SQL), при наличии механизма блокировок на любой элемент, зачем блокировать файл?
При журналировании всего и вся.
Кстати, я думаю, вы не совсем понимаете, что такое "журналирование".

Вы наверное думаете, что это как бы некий "журнал изменений", а это на самом деле такой способ записи в основной файл данных, который ускоряет эту запись в десятки-сотни-тысячи раз.

Разумеется, без монопольного доступа к файлу это "журналирование всего и вся" физически невозможно.
26 ноя 15, 12:01    [18474898]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Alibek B.
Member

Откуда:
Сообщений: 3921
alexeyvg
Разве там 2 компа управляют одним диском? Например, по 2м каналам SAS, подключённым к одному диску?

Да, это совместное использование блочного устройства.
Но обычно используется конечно не SAS, а FC или iSCSI.
26 ноя 15, 12:15    [18474990]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
KPEMEHb
Member

Откуда:
Сообщений: 18
Если вам нужны два сервера, работающие с одной и той же базой данных, то вы можете использовать зеркалирование баз данных.
В этом случае у вас один сервер будет главным, на нем вы будете делать все изменения в базе данных. Другой сервер будет работать с readonly - копией данных основного сервера, на нем вы сможете формировать отчетность, выполнять сложные запросы. Таких "подчиненных" серверов может быть сколько угодно.
Ну и кроме того, подчиненный сервер сможет взять на себя роль основного сервера, если тот выйдет из строя.
26 ноя 15, 13:42    [18475603]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Pavel1211
Member

Откуда: Екатеринбург
Сообщений: 205
KPEMEHb,

а разве к зеркалу можно подключаться? Оно вроде всегда в recovering.
26 ноя 15, 13:54    [18475695]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
KPEMEHb
Member

Откуда:
Сообщений: 18
Да, верно, забыл что там еще Snapshot зеркальной базы делать надо. Тогда со снапшотом можно будет работать.
Или в качестве альтернативы можно использовать log shipping - то же зеркалирование, но вид сбоку.
Единственная проблема - это закрывающиеся в момент наката лога открытые соединения, так что желательно закрывать соединения самостоятельно.
26 ноя 15, 14:06    [18475797]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1882
KPEMEHb
Если вам нужны два сервера, работающие с одной и той же базой данных, то вы можете использовать зеркалирование баз данных.
В этом случае у вас один сервер будет главным, на нем вы будете делать все изменения в базе данных. Другой сервер будет работать с readonly - копией данных основного сервера, на нем вы сможете формировать отчетность, выполнять сложные запросы. Таких "подчиненных" серверов может быть сколько угодно.
Ну и кроме того, подчиненный сервер сможет взять на себя роль основного сервера, если тот выйдет из строя.


Ещё есть вариант с linked server-ом, когда устанавливается связь между двумя серверами и пользователи основного сервера (на котором устанавливается связь) могут работать с базами второго сервера.
26 ноя 15, 17:05    [18477182]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
Col
Member

Откуда: Торонто
Сообщений: 182
o-o
Col
Selen74
Это возможно, но только для баз в режиме ридонли.

Да ладно,
Msq 5120, Level 16, State 101, Line 1
Unable to open the physical file... Operating system error32: "32 (failed to retrieve text for this error. Reason: 15105)".


Ученье свет а не ученье тьма:
http://support.microsoft.com/?kbid=910378
Вот тут на русском:
https://support.microsoft.com/ru-ru/kb/910378
26 ноя 15, 17:37    [18477361]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4832
Selen74,

Вертику ставьте
26 ноя 15, 17:45    [18477408]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
o-o
Guest
Col
o-o
пропущено...

Да ладно,
Msq 5120, Level 16, State 101, Line 1
Unable to open the physical file... Operating system error32: "32 (failed to retrieve text for this error. Reason: 15105)".


Ученье свет а не ученье тьма:
http://support.microsoft.com/?kbid=910378
Вот тут на русском:
https://support.microsoft.com/ru-ru/kb/910378

спасибо, дорогой, мы и на инглише как-нибудь.
сказать, почему не получилось?
может, потому что маловато базе быть read_only?
link
Restrictions
The following restrictions exist for a scalable shared database:

The database must be on a read-only volume.
The data files can be accessed over an SAN.
Scalable shared databases are supported only on Microsoft Windows Server 2003 Service Pack 1 (SP1) or a later version of Windows Server 2003.

а так то-да.
и крокодилы летают.
когда их самолетом транспортируют, например
26 ноя 15, 18:04    [18477546]     Ответить | Цитировать Сообщить модератору
 Re: Два сервера - одна база  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4832
o-o
и крокодилы летают.
когда их самолетом транспортируют, например


И синус превышает 1 в военное время и в неевклидовых пространствах
26 ноя 15, 18:47    [18477794]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить