Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Коллеги, есть ли бест практикис обработки ситуации выше?

В районе 10-15 минут в сутки база работает с распределенными и межбазовыми запросами в определенное время.
Каким образом можно сохранить согласованность в критической ситуации?
6 ноя 12, 19:14    [13428888]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Crimean
Member

Откуда:
Сообщений: 13148
согласованность чего хочется обеспечить? согласованность данных между разными базами данных? в каких ситуациях? и при чем тут 10-15 минут?
6 ноя 12, 22:11    [13429506]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Crimean
согласованность чего хочется обеспечить? согласованность данных между разными базами данных? в каких ситуациях? и при чем тут 10-15 минут?


согласованность 2х БД. на время (10-15 мин) выполнения распределенных запросов расхождения допустимы.
интересует могу ли я перевести зеркалирование в suspended без потери данных. +интересуют какие могут быть неприятные моменты в такой стратегии (например, типа моментов с журналом).
7 ноя 12, 10:04    [13430787]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Crimean
Member

Откуда:
Сообщений: 13148
dmitry stakanov,

а снапшоты создать - не вариант?
7 ноя 12, 10:33    [13430996]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
dmitry stakanov
согласованность 2х БД. на время (10-15 мин) выполнения распределенных запросов расхождения допустимы.
Ээээ, какая нужна согласованность, если расхождения допустимы???

Ну и при использовании зеркалирования 2 базы в общем случае не одинаковы ни в какой момент времени, если под "согласованность" вы понимаете одинаковость данных.

В общем, совершенно непонятно, что вам нужно. Вы лучше опишите бизнес-задачу.
7 ноя 12, 10:43    [13431058]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
alexeyvg
Ээээ, какая нужна согласованность, если расхождения допустимы???
В общем, совершенно непонятно, что вам нужно. Вы лучше опишите бизнес-задачу


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

задача: сохранить согласованность двух бд при автоматической отработке сбоя.

согласованность такая: если происходит ошибка и откат распределенной транзакции, то эта транзакция должна откатиться в основной базе и в зеркале.
вариант, когда в случае фэйловера транзакция фиксируется на зеркале (которое становится основным), но не фиксируется на основной (которая стала зеркалом) тк бд стала недоступной или ms dtc не знает о новом сервере, меня не устроит.

пс вариант, который вижу приостановить отображение на время распред транзакций, после завершения включить.
7 ноя 12, 11:10    [13431294]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Crimean
dmitry stakanov,

а снапшоты создать - не вариант?


не в моей ситуации.
если сервер вылетит или база будет офлайн какой толк от снапшота?
7 ноя 12, 11:12    [13431308]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
dmitry stakanov
пс вариант, который вижу приостановить отображение на время распред транзакций, после завершения включить.
Да, так точно должно работать.

Честно говоря, не знаю, переносятся ли в зеркальную базу транзакции, которые локально закоммитились в рамках распределённой транзакции, но при этом распределённая транзакция ещё не завершена и может откатиться...
7 ноя 12, 11:16    [13431338]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
alexeyvg
dmitry stakanov
согласованность 2х БД. на время (10-15 мин) выполнения распределенных запросов расхождения допустимы.
Ээээ, какая нужна согласованность, если расхождения допустимы???

Ну и при использовании зеркалирования 2 базы в общем случае не одинаковы ни в какой момент времени, если под "согласованность" вы понимаете одинаковость данных.

В общем, совершенно непонятно, что вам нужно. Вы лучше опишите бизнес-задачу.


если уж совсем бизнес-бизнес: есть приложение, которое всегда должно быть доступно.
решение - использовать зеркалирование.
данные для работы приложения всегда должны быть адекватны.
например, есть какие-то данные, с которыми велась работа. на основе этих данных делались какие-либо прогнозы, документы, расчеты. потом данные на основе, которых выполнялись какие-либо действия пропали (или исказились). такая ситуация
7 ноя 12, 11:19    [13431354]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Crimean
Member

Откуда:
Сообщений: 13148
ээ.. то есть вопрос про физику коммита распределенной транзакции в системе с зеркалированием? я бы тех.саппорт MS потролил! если ввернуть пару оборотов про 12 сервер и про новомодную доступность, могут с перепугу и ответить
7 ноя 12, 11:31    [13431457]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
alexeyvg
dmitry stakanov
пс вариант, который вижу приостановить отображение на время распред транзакций, после завершения включить.
Да, так точно должно работать.

Честно говоря, не знаю, переносятся ли в зеркальную базу транзакции, которые локально закоммитились в рамках распределённой транзакции, но при этом распределённая транзакция ещё не завершена и может откатиться...


МС говорят, что нет, тк новый сервер не сможет подключиться к ms dtc предыдущего сервера и получить состояние транзакции.

поэтому мне видится вариант переводить зеркалирование в suspended на время распределенок.
вопрос - какие проблемы могут возникнуть при таком подходе.

резюмируя: можно использовать как век эраунд приостановку отображения и какие проблемы в этом случае могут возникнуть?
7 ноя 12, 11:34    [13431500]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Crimean
ээ.. то есть вопрос про физику коммита распределенной транзакции в системе с зеркалированием? я бы тех.саппорт MS потролил! если ввернуть пару оборотов про 12 сервер и про новомодную доступность, могут с перепугу и ответить


к сожалению времени особо нет, отвечают они не бытсро.
багу в 2008r2 дубликатом предикатов в джойне фиксили 2 недели. точнее фикс мне выдали через две недели.

а про зеркалирование и транзакции они вот, что пишут:


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

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


Для распределенных транзакций после перехода на другой ресурс новый основной сервер не сможет подключиться к координатору распределенных транзакций предыдущего основного сервера, использующего такой же идентификатор ресурса. Поэтому новый основной сервер не сможет получить состояние транзакции.


В следующем примере показано, как возникает логическое несоответствие. В этом примере приложение использует межбазовую транзакцию для вставки двух строк данных: одна строка вставляется в таблицу в зеркально отображаемую базу данных A, а другая строка вставляется в таблицу в зеркальной базе данных B. База данных A зеркально отображается в режиме высокого уровня безопасности с автоматическим переходом на другой ресурс. При фиксации транзакции база данных A становится недоступной, и сеанс зеркального отображения автоматически переходит на зеркальное отображение базы данных A.

После автоматического перехода на другой ресурс межбазовая транзакция может успешно зафиксироваться в базе данных B, но не в базе данных, с которой выполнен автоматический переход. Это случится, если исходный основной сервер для базы данных А перед переходом не отправил журнал межбазовых транзакций на зеркальный сервер. После автоматического перехода эта транзакция не будет существовать на новом основном сервере. Базы данных A и B станут несогласованными, поскольку вставленные данные в базе данных B останутся нетронутыми, в то время как вставленные данные в базе данных A будут потеряны.

Похожее может произойти при использовании транзакций MS DTC. Например, после автоматического перехода новая основная база данных обращается к MS DTC. Но MS DTC не знает о новом основном сервере и завершает все транзакции, готовящиеся к фиксации, которые считаются зафиксированными в других базах данных.



что проиходит понятно. не понятно, что с этим делать.
7 ноя 12, 11:39    [13431566]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Crimean
Member

Откуда:
Сообщений: 13148
ну по крайней мере понятно, что нужно :) поправьте, если где накосячу:

есть 2 разные базы. возможно, что и расположены на 1 сервере, но это не суть важно. некое "приложение" работает с обоими базами, причем работа идет с использованием распределенных транзакций. для обоих баз данных настроено обеспечение высокой доступности путем использования db Mirroring. задача - обеспечить "непрерывную" и "достоверную" работу системы в случае FAILOVER для любой комбинации (переключение обслуживания только первой, только второй или обоих баз данных на зеркало)

если честно.. я бы всерьез подумал насчет реализации "2 - фазного протокола" средствами приложения.. и без явного использования распределенной транзакции. или - сливать все в одну базу данных..
7 ноя 12, 11:55    [13431705]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
по моему они вам несколько про другое отвечают
7 ноя 12, 11:59    [13431749]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
dmitry stakanov
согласованность такая: если происходит ошибка и откат распределенной транзакции, то эта транзакция должна откатиться в основной базе и в зеркале.
вас же интересует согласованность "внутри" зеркала, или я не понял чего?
7 ноя 12, 12:03    [13431808]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

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

есть одна база, она отображена зеркально;
в бд присутствуют распред транзакции (в самой бд, не в приложении);
есть приложение, которое работает с бд, но не использует распред транзакции. приложение работает с "одной" базой, те в случае сбоя переключается на "зеркало". те на доступный сервер.

необходимо обеспечить согласованность данных между основной базой и зеркалом, если в момент распределенной транзакции происходит переключение основной бд на зеркальную.
7 ноя 12, 12:09    [13431890]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Дедушка
dmitry stakanov
согласованность такая: если происходит ошибка и откат распределенной транзакции, то эта транзакция должна откатиться в основной базе и в зеркале.
вас же интересует согласованность "внутри" зеркала, или я не понял чего?


да, разумеется.
7 ноя 12, 12:10    [13431896]     Ответить | Цитировать Сообщить модератору
 Re: зеркалирование vs межбазовые и распределенные запросы  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
dmitry stakanov
Дедушка
пропущено...
вас же интересует согласованность "внутри" зеркала, или я не понял чего?


да, разумеется.


между основным и зеркалом.
7 ноя 12, 12:12    [13431913]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить