|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Всем добрый день ! Есть windows cluster на двух нодах. На нодах крутится ms sql. К кластеру подключена СХД, на которой лежат базы. Всё прекрасно работает, если одна нода падает, то ms sql переключается на другую. Недавно добавили дисковое пространство на ноды, теперь есть желание на этом дисковом пространстве разместить тестовую базу. Как лучше это сделать ? Я смотрю в сторону репликации дискового пространства между серверами. Может есть более интересный способ это организовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 08:28 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
авторЯ смотрю в сторону репликации дискового пространства между серверами Что за технология? Если кластер уже есть, лучше always on. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 09:09 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Тяп-ляп авторЯ смотрю в сторону репликации дискового пространства между серверами Что за технология? Если кластер уже есть, лучше always on. Смотря для каких целей, FCL гарантирует сохранность всех транзакций на реплике, AO не гарантирует даже в синхронном режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 09:55 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Сергей Бурлаков, никак не разместите, при переключении база будет исчезать и появляться. Надо размещать на общем дисковом пространстве для кластера. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 11:40 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Сергей Бурлаков, вы лучше tempdb с СХД на локальный переложите, если локальный диск быстрый (если локальные диски видны - не помню этого точно, давно не работал с кластерами) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 11:45 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
teCa сохранность всех транзакций на реплике, AO не гарантирует даже в синхронном режиме В каком же случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 12:19 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
msLex, Ну основываясь на своих скудных знаниях работы AO, предполагаю такой ход событий: Дано: нода1 с прямым сетевым соединением с нода2, есть свидетель на другом сетевом интерфейсе. Теряется прямая связь между нодой1 и нодой2, свидетель в это время видит, что обе ноды доступны, как я понимаю, в этот момент нода1 остается праймари и все транзакции, которые должна закомитить на ноде2 попадают в некий "пул", ожидая, что связь восстановится и AO распространит эти транзакции на вторичной реплике, при этом, первичная реплика будет ставить коммит транзакций, как в асинхронном режиме. В этот момент нода1 выходит из строя, свидетель делает первичной ноду2, где этих транзакций не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 13:29 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
teCa msLex, Ну основываясь на своих скудных знаниях работы AO, предполагаю такой ход событий: Дано: нода1 с прямым сетевым соединением с нода2, есть свидетель на другом сетевом интерфейсе. Теряется прямая связь между нодой1 и нодой2, свидетель в это время видит, что обе ноды доступны, как я понимаю, в этот момент нода1 остается праймари и все транзакции, которые должна закомитить на ноде2 попадают в некий "пул", ожидая, что связь восстановится и AO распространит эти транзакции на вторичной реплике, при этом, первичная реплика будет ставить коммит транзакций, как в асинхронном режиме. В этот момент нода1 выходит из строя, свидетель делает первичной ноду2, где этих транзакций не будет. В синхронном режиме, commit на первичной ноде не завершиться, до того момента, пока не придет подтверждение о записи всего лога до этой операции коммит (включительно) на каждую из вторичных синхронных нод. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 13:32 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
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 начинает коммитить транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 14:00 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
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. Если переключение произойдет в момент синхронизации, то транзакция не будет зафиксирована. Если произойдут нарушения связи между узлами, то транзакция не будет зафиксирована. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 14:21 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Always On не очень подходит. На сколько читал, для его нормальной работы нужен Sql Enterprise. Поэтому отказались от Always On в строну кластера. А в кластере даже урезанный Always On не включить, так как одновременно работает только один экземпляр Ms Sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 14:21 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, свидетель переключает узлы кластера и не связан с транзакциями. Я и не говорю, что он связан с транзакциями. Я говорю о том, что при потере связи между нодами синхронный режим репликации автоматически переключится в асинхронный и так же автоматически переключится в синхронный при восстановлении соединения. Те, вся синхронность на этом заканчивается, свидетель не знает в каком состоянии находятся транзакции и сделает первичной ноду2, которая на этот момент уже работает в асинхронном режиме, те на ноде2 этих транзакций не будет. С 2017го появился новый параметр REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, который не позволит зафиксировать транзакцию, пока она незакоммичена на одной из реплик. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 14:31 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
teCa е, вся синхронность на этом заканчивается, свидетель не знает в каком состоянии находятся транзакции и сделает первичной ноду2 teCa С 2017го появился новый параметр REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, который не позволит зафиксировать транзакцию, пока она незакоммичена на одной из реплик. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 14:37 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Этот параметр позволяет задать количество реплик, на котором обязан зафиксироваться коммит. Не очень понимаю, зачем вы его сюда приплели. Много в каких статьях встречался с упоминанием что синхронная репликация автоматически переключится на асинхронную, при отсутствии вторичной реплики, но нигде не видел упоминания, что свидетель в этом случае не переключит роль реплики на праймари, этого я сам не проверял. REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT приплел сюда именно поэтому, что этот параметр не дает закоммитить транзакцию на первичном сервере без коммита на репликах, те исключает переход в асинхронный режим. Ну это основываясь на моих скудных познаниях технологии) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 15:30 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 15:39 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
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 приплел сюда именно поэтому, что этот параметр не дает закоммитить транзакцию на первичном сервере без коммита на репликах, те исключает переход в асинхронный режим. Ну это основываясь на моих скудных познаниях технологии) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 16:52 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Спасибо за информацию, НО В случае, если первичная реплика при потере вторичной реплики перешла в асинхронный режим, а после вышла из строя, то на вторичной реплике этих данных не будет (хотя их мы считаем резервными), их можно считать потерянными, что в случае FCL исключено, так как в FCL нет репликаций, ноды используют одни данные на СХД. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 17:06 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
teCa Гавриленко Сергей Алексеевич, Спасибо за информацию, НО В случае, если первичная реплика при потере вторичной реплики перешла в асинхронный режим, а после вышла из строя, то на вторичной реплике этих данных не будет (хотя их мы считаем резервными), их можно считать потерянными, что в случае FCL исключено, так как в FCL нет репликаций, ноды используют одни данные на СХД. А в описанном сценарии с AlwaysOn на вторичную реплику можно банально накатить log tail backup, для снятия которого достаточно, чтобы выжил файл лога. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 17:09 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Да, как раз хотел добавить UPD, что у FCL есть и свои минусы, как дороговизна, так и единая точка уязвимости в виде СХД, но только FCL может 100% гарантировать сохранность всех транзакций на резервной ноде. Хотя, видел решения, где СХД реплицировалась в другой ДЦ, где на растянутом кластере жила отдельная нода, в случае потери СХД, данные должны были сохраниться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 17:38 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
авторно только FCL может 100% гарантировать сохранность всех транзакций на резервной ноде. Если под FCL понимается отказоустойчивый кластер винды (WSFC), то какие могут быть транзакции на резервной ноде? В этом варианте для сохранности транзакций нет никаких нод - есть только СХД. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 18:01 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Насколько я знаю, в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД. Схема с одним СХД удобнее в плане администрирования, но хуже обеспечивает сохранность данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 18:54 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
Владислав Колосов в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД. storage replication стоит как крыло от самолета и пропорционально объему реплицируемого ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2021, 19:11 |
|
windows cluster ms sql
|
|||
---|---|---|---|
#18+
komrad Владислав Колосов в случае общего хранилища можно использовать аппаратное зеркалирование на другой СХД. storage replication стоит как крыло от самолета и пропорционально объему реплицируемого СИБУР так пробовал обеспечить отказоустойчивость, одна СХД находится в Нижнем Новгороде, другая в Мск, но развязки я не застал. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2021, 09:37 |
|
|
start [/forum/topic.php?fid=46&msg=40058932&tid=1684870]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 167ms |
0 / 0 |