В чем разница между одноранговой репликацией и репликацией слиянием с SQL Server?

В чем разница между одноранговой репликацией и репликацией слиянием с использованием SQL Server?


person Guy    schedule 16.09.2009    source источник


Ответы (4)


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

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

См. раздел Peer-To-Peer Replicaiton.

  1. Репликация слиянием является двунаправленной, т. е. операции чтения и записи распространяются на все узлы и со всех узлов. Репликация слиянием часто требует реализации разрешения конфликтов.

См. Как работает репликация слиянием.

person John Sansom    schedule 16.09.2009
comment
То, что вы говорите в Peer-to-Peer, не соответствует источнику, который вы цитируете. Вы подразумеваете, что приложения должны всегда записывать только на один сервер, источник, на который вы ссылаетесь, рекомендует, чтобы операции записи для каждой строки выполнялись только на узле. Ваш ответ подразумевает, что все узлы, кроме одного, в одноранговой сети доступны только для чтения, а один — для чтения/записи, что просто неверно; как указывает источник, который вы цитируете. Одноранговая связь тесно связана с двунаправленной репликацией транзакций и не основана на репликации моментальных снимков. - person Seph; 10.09.2012
comment
Чтобы уточнить, посмотрите на две диаграммы в справочнике. Каждый из них представляет собой различную реализацию топологии P2P, но метод распределения операции записи по топологии остается прежним, то есть после того, как она была применена к данному узлу. Заданная запись сначала происходит на одном узле (что зависит от реализованной топологии), а оттуда запись распространяется на остальные узлы. Я понятия не имею, почему вы вообще упоминаете репликацию снэпшотов в контексте обсуждения. - person John Sansom; 17.09.2012
comment
Я просто чувствую, что ваш ответ подразумевает, что операции записи применяются к одному узлу, подразумевает, что только один узел во всей сети доступен для записи. Ваша формулировка подразумевает, что приложение должно знать топологию сети, чтобы управлять вашей активностью записи. является требованием одноранговой репликации, а это не так. Вы когда-либо пишете только на один сервер, и он реплицируется на все остальные серверы (в противном случае вы выполняете репликацию вручную, а не sql), приложению не нужно всегда писать на один конкретный сервер. - person Seph; 17.09.2012
comment
Похоже, семантика обсуждается TBH. Заданная запись, выданная уровнем приложения, не может быть применена к двум узлам, это приведет к конфликту и, следовательно, обсуждению запроса на запись, отправляемого на один узел (как это достигается, зависит от реализации, будь то логика приложения/балансировщик нагрузки и т. ), а затем SQL Server управляет распределением записи на оставшиеся узлы посредством репликации. Учтите, что когда Data Professional говорит App Tier, это означает все, что выше базы данных в стеке ;-) Я надеюсь, что это проясняет ситуацию. - person John Sansom; 22.09.2012

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

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

Репликация слиянием имеет разрешение конфликтов (вы можете указать приоритет разрешения конфликтов), одноранговая репликация - нет. Во время конфликта одноранговая сеть генерирует предупреждение, если разрешено разрешение конфликта, останавливает репликацию, позволяя обоим экземплярам работать независимо, пока конфликт не будет разрешен. В продакшне желательно делать изменения схемы только из исходного узла.

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

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

person igelr    schedule 07.11.2018

РЕДАКТИРОВАТЬ Репликация одноранговых узлов бывает двух типов — транзакционная и моментальная. И то, и другое в одну сторону — от издателя к подписчику.

Репликация транзакций и моментальных снимков перемещает данные от издателя к подписчику. Они используются в основном для редактирования в одном месте и просмотра/отчета данных в нескольких местах. Транзакции выполняются почти мгновенно, в то время как моментальный снимок должен быть запланирован. У Transactional большие начальные требования к ресурсам, потому что он создает начальный моментальный снимок, а затем считывает последующие транзакции из журнала транзакций для отправки данных. Моментальный снимок потребляет много ресурсов каждый раз, когда он запускается, потому что он каждый раз создает новый снимок.

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

Вот некоторые материалы для чтения http://technet.microsoft.com/en-us/library/ms152531.aspx

person Raj More    schedule 16.09.2009
comment
Вы уверены, что одноранговая репликация моментальных снимков действительно существует? Не путать с созданием моментального снимка для инициации репликации. technet.microsoft.com/en-us/library/ms151196.aspx - person John Sansom; 16.09.2009
comment
@John Sanson: я редактировал на основе использования Peer to Peer. На мой взгляд, и Transactional, и Snapshot работали по принципам одноранговой сети или по принципу распределения. - person Raj More; 17.09.2009

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

P2p не имеет такого ограничения.

P2P предназначен для масштабирования операций чтения, хотя многие люди ошибочно используют их в качестве обновления любой топологии. p2p также является функцией только для Enterprise Edition, где подписчики с возможностью обновления работают в Standard Edition SQL Server и выше.

person Chandan Gupta    schedule 22.05.2017