Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / windows cluster ms sql / 23 сообщений из 23, страница 1 из 1
01.04.2021, 08:28
    #40058754
windows cluster ms sql
Всем добрый день !
Есть windows cluster на двух нодах. На нодах крутится ms sql.
К кластеру подключена СХД, на которой лежат базы.
Всё прекрасно работает, если одна нода падает, то ms sql переключается на другую.

Недавно добавили дисковое пространство на ноды, теперь есть желание на этом дисковом пространстве разместить тестовую базу.
Как лучше это сделать ?
Я смотрю в сторону репликации дискового пространства между серверами. Может есть более интересный способ это организовать.
...
Рейтинг: 0 / 0
01.04.2021, 09:09
    #40058758
Тяп-ляп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
авторЯ смотрю в сторону репликации дискового пространства между серверами
Что за технология?
Если кластер уже есть, лучше always on.
...
Рейтинг: 0 / 0
01.04.2021, 09:55
    #40058772
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Тяп-ляп
авторЯ смотрю в сторону репликации дискового пространства между серверами

Что за технология?
Если кластер уже есть, лучше always on.

Смотря для каких целей, FCL гарантирует сохранность всех транзакций на реплике, AO не гарантирует даже в синхронном режиме.
...
Рейтинг: 0 / 0
01.04.2021, 11:40
    #40058811
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Сергей Бурлаков,

никак не разместите, при переключении база будет исчезать и появляться. Надо размещать на общем дисковом пространстве для кластера.
...
Рейтинг: 0 / 0
01.04.2021, 11:45
    #40058813
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Сергей Бурлаков,

вы лучше tempdb с СХД на локальный переложите, если локальный диск быстрый
(если локальные диски видны - не помню этого точно, давно не работал с кластерами)
...
Рейтинг: 0 / 0
01.04.2021, 12:19
    #40058829
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa
сохранность всех транзакций на реплике, AO не гарантирует даже в синхронном режиме


В каком же случае?
...
Рейтинг: 0 / 0
01.04.2021, 13:29
    #40058857
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
msLex,

Ну основываясь на своих скудных знаниях работы AO, предполагаю такой ход событий:

Дано: нода1 с прямым сетевым соединением с нода2, есть свидетель на другом сетевом интерфейсе.

Теряется прямая связь между нодой1 и нодой2, свидетель в это время видит, что обе ноды доступны, как я понимаю, в этот момент нода1 остается праймари и все транзакции, которые должна закомитить на ноде2 попадают в некий "пул", ожидая, что связь восстановится и AO распространит эти транзакции на вторичной реплике, при этом, первичная реплика будет ставить коммит транзакций, как в асинхронном режиме. В этот момент нода1 выходит из строя, свидетель делает первичной ноду2, где этих транзакций не будет.
...
Рейтинг: 0 / 0
01.04.2021, 13:32
    #40058858
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa
msLex,

Ну основываясь на своих скудных знаниях работы AO, предполагаю такой ход событий:

Дано: нода1 с прямым сетевым соединением с нода2, есть свидетель на другом сетевом интерфейсе.

Теряется прямая связь между нодой1 и нодой2, свидетель в это время видит, что обе ноды доступны, как я понимаю, в этот момент нода1 остается праймари и все транзакции, которые должна закомитить на ноде2 попадают в некий "пул", ожидая, что связь восстановится и AO распространит эти транзакции на вторичной реплике, при этом, первичная реплика будет ставить коммит транзакций, как в асинхронном режиме. В этот момент нода1 выходит из строя, свидетель делает первичной ноду2, где этих транзакций не будет.

В синхронном режиме, commit на первичной ноде не завершиться, до того момента, пока не придет подтверждение о записи всего лога до этой операции коммит (включительно) на каждую из вторичных синхронных нод.
...
Рейтинг: 0 / 0
01.04.2021, 14:00
    #40058871
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
msLex,
Не уверен в этом:

https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-always-on-availability-groups?view=sql-server-2017

авторIf primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.

The default session timeout period is 10 seconds.


Те, если нода1 перестает видеть нода2 в течении 10 секунд, нода1 начинает коммитить транзакции.
...
Рейтинг: 0 / 0
01.04.2021, 14:21
    #40058875
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa,

свидетель переключает узлы кластера и не связан с транзакциями.
Из этой же статьи:
Synchronous-commit mode emphasizes high availability over performance, at the cost of increased transaction latency. Under synchronous-commit mode, transactions wait to send the transaction confirmation to the client until the secondary replica has hardened the log to disk.

Если переключение произойдет в момент синхронизации, то транзакция не будет зафиксирована. Если произойдут нарушения связи между узлами, то транзакция не будет зафиксирована.
...
Рейтинг: 0 / 0
01.04.2021, 14:21
    #40058876
windows cluster ms sql
Always On не очень подходит.
На сколько читал, для его нормальной работы нужен Sql Enterprise.
Поэтому отказались от Always On в строну кластера.
А в кластере даже урезанный Always On не включить, так как одновременно работает только один экземпляр Ms Sql.
...
Рейтинг: 0 / 0
01.04.2021, 14:31
    #40058878
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Владислав Колосов
teCa,
свидетель переключает узлы кластера и не связан с транзакциями.


Я и не говорю, что он связан с транзакциями. Я говорю о том, что при потере связи между нодами синхронный режим репликации автоматически переключится в асинхронный и так же автоматически переключится в синхронный при восстановлении соединения.

Те, вся синхронность на этом заканчивается, свидетель не знает в каком состоянии находятся транзакции и сделает первичной ноду2, которая на этот момент уже работает в асинхронном режиме, те на ноде2 этих транзакций не будет.

С 2017го появился новый параметр REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, который не позволит зафиксировать транзакцию, пока она незакоммичена на одной из реплик.
...
Рейтинг: 0 / 0
01.04.2021, 14:37
    #40058882
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa
е, вся синхронность на этом заканчивается, свидетель не знает в каком состоянии находятся транзакции и сделает первичной ноду2
Сказки рассказываете. Автоматический фейловер не будет произведен на несинхронизированную реплику. Такой фейловер возможен только в ручном режиме.
teCa
С 2017го появился новый параметр REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, который не позволит зафиксировать транзакцию, пока она незакоммичена на одной из реплик.
Этот параметр позволяет задать количество реплик, на котором обязан зафиксироваться коммит. Не очень понимаю, зачем вы его сюда приплели.
...
Рейтинг: 0 / 0
01.04.2021, 15:30
    #40058890
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Гавриленко Сергей Алексеевич
Этот параметр позволяет задать количество реплик, на котором обязан зафиксироваться коммит. Не очень понимаю, зачем вы его сюда приплели.


Много в каких статьях встречался с упоминанием что синхронная репликация автоматически переключится на асинхронную, при отсутствии вторичной реплики, но нигде не видел упоминания, что свидетель в этом случае не переключит роль реплики на праймари, этого я сам не проверял.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
приплел сюда именно поэтому, что этот параметр не дает закоммитить транзакцию на первичном сервере без коммита на репликах, те исключает переход в асинхронный режим. Ну это основываясь на моих скудных познаниях технологии)
...
Рейтинг: 0 / 0
01.04.2021, 15:39
    #40058894
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa,

не совсем так, первичная реплика не переключается в асинхронный режим. В целом, репликация технически находится в аварийном состоянии.

авторIf a synchronous-commit secondary replica times out without confirming that it has hardened the log, the primary marks that secondary replica as failed. The connected state of the secondary replica changes to DISCONNECTED, and the primary replica stops waiting for confirmation from the secondary replica.
...
Рейтинг: 0 / 0
01.04.2021, 16:52
    #40058917
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa
Много в каких статьях встречался с упоминанием что синхронная репликация автоматически переключится на асинхронную, при отсутствии вторичной реплики, но нигде не видел упоминания, что свидетель в этом случае не переключит роль реплики на праймари, этого я сам не проверял.
Об этом написано в документации :
Conditions Required for an Automatic FailoverAutomatic failover occurs only under the following conditions:
...
The automatic failover target has a healthy synchronization state (this indicates that every secondary database on the failover target is synchronized with its corresponding primary database).
teCa
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
приплел сюда именно поэтому, что этот параметр не дает закоммитить транзакцию на первичном сервере без коммита на репликах, те исключает переход в асинхронный режим. Ну это основываясь на моих скудных познаниях технологии)
Этот параметр нужен на случай, если у вас 100500 вторичных реплик, чтобы транзакция считалась зафиксированной на первичной реплике не когда все 100500 вторичек пришлют подтверждение, а, скажем, две.
...
Рейтинг: 0 / 0
01.04.2021, 17:06
    #40058922
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Гавриленко Сергей Алексеевич,

Спасибо за информацию, НО
В случае, если первичная реплика при потере вторичной реплики перешла в асинхронный режим, а после вышла из строя, то на вторичной реплике этих данных не будет (хотя их мы считаем резервными), их можно считать потерянными, что в случае FCL исключено, так как в FCL нет репликаций, ноды используют одни данные на СХД.
...
Рейтинг: 0 / 0
01.04.2021, 17:09
    #40058923
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
teCa
Гавриленко Сергей Алексеевич,

Спасибо за информацию, НО
В случае, если первичная реплика при потере вторичной реплики перешла в асинхронный режим, а после вышла из строя, то на вторичной реплике этих данных не будет (хотя их мы считаем резервными), их можно считать потерянными, что в случае FCL исключено, так как в FCL нет репликаций, ноды используют одни данные на СХД.
А если в случае с FCL вышло из строя хранилище, то вообще ничего, кроме бэкапов, не остается.
А в описанном сценарии с AlwaysOn на вторичную реплику можно банально накатить log tail backup, для снятия которого достаточно, чтобы выжил файл лога.
...
Рейтинг: 0 / 0
01.04.2021, 17:38
    #40058928
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Гавриленко Сергей Алексеевич,

Да, как раз хотел добавить UPD, что у FCL есть и свои минусы, как дороговизна, так и единая точка уязвимости в виде СХД, но только FCL может 100% гарантировать сохранность всех транзакций на резервной ноде.

Хотя, видел решения, где СХД реплицировалась в другой ДЦ, где на растянутом кластере жила отдельная нода, в случае потери СХД, данные должны были сохраниться.
...
Рейтинг: 0 / 0
01.04.2021, 18:01
    #40058932
Тяп-ляп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
авторно только FCL может 100% гарантировать сохранность всех транзакций на резервной ноде.
Если под FCL понимается отказоустойчивый кластер винды (WSFC), то какие могут быть транзакции на резервной ноде?
В этом варианте для сохранности транзакций нет никаких нод - есть только СХД.
...
Рейтинг: 0 / 0
01.04.2021, 18:54
    #40058944
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Насколько я знаю, в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД.

Схема с одним СХД удобнее в плане администрирования, но хуже обеспечивает сохранность данных.
...
Рейтинг: 0 / 0
01.04.2021, 19:11
    #40058947
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
Владислав Колосов
в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД.

storage replication стоит как крыло от самолета и пропорционально объему реплицируемого
...
Рейтинг: 0 / 0
02.04.2021, 09:37
    #40059006
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
windows cluster ms sql
komrad
Владислав Колосов
в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД.

storage replication стоит как крыло от самолета и пропорционально объему реплицируемого


СИБУР так пробовал обеспечить отказоустойчивость, одна СХД находится в Нижнем Новгороде, другая в Мск, но развязки я не застал.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / windows cluster ms sql / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]