Подтвердить что ты не робот

Какая база данных лучше всего поддерживает репликацию

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

Некоторые вопросы, которые у меня были бы:

  • Репликация встроена или добавлена ​​/плагин?
  • Как работает репликация (высокий уровень)? MySQL предоставляет репликацию на основе выражений (и репликацию на основе строк в версии 5.1). Меня интересует, как сравниваются другие базы данных. Что отправляется по проводам? Как изменения применяются к репликам?
  • Легко ли проверить соответствие между мастером и ведомыми устройствами?
  • Насколько легко восстановить неудачную копию в синхронизации с мастером?
  • Производительность? Одна вещь, которую я ненавижу в отношении репликации MySQL, заключается в том, что она имеет однопоточность, а реплики часто имеют проблемы с сохранением, поскольку мастер может запускать множество обновлений параллельно, но реплики должны запускать их последовательно. Есть ли какие-либо ошибки в других базах данных?
  • Любые другие интересные функции...
4b9b3361

Ответ 1

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

Репликация PostgreSQL слаба, поскольку поддерживается только master/standby (используя доставку журнала); более мощные решения (такие как Slony или Londiste) требуют дополнительных функций. Сегменты архивных журналов отправляются по проводу, которые являются теми же записями, которые используются для обеспечения работы автономной базы данных, согласованного состояния при нечистом запуске. Это то, что я сейчас использую, и мы полностью автоматизировали ресинхронизацию (и настройку и другие функции). Ни один из этих подходов не является полностью синхронным. Более полная поддержка будет построена с точки зрения PostgreSQL 8.5. Доставка журналов не позволяет базам данных выйти из синхронизации, поэтому нет необходимости в проверке состояния синхронизации; приведение двух баз данных в синхронизацию включает в себя установку флага резервного копирования на master, rsyncing для подчиненного устройства (с сохранением базы данных, это безопасно) и снятие флажка резервного копирования (и перезапуск подчиненного процесса) с помощью архивных журналов, сгенерированных во время доступен процесс резервного копирования; в моем магазине этот процесс (как и все другие задачи администрирования) автоматизирован. Производительность - это непрозрачность, так как мастер должен повторно воспроизводить сегменты журнала внутри, так же как и другие работы; таким образом, ведомые устройства всегда будут находиться под меньшей нагрузкой, чем главный.

Oracle RAC (который не является должным образом реплицированным, так как существует только один сервер хранения данных, но у вас есть несколько интерфейсов, разделяющих нагрузку, и может создавать избыточность в этом общем хранилище, поэтому он заслуживает упоминания здесь) multi-master подход гораздо более всеобъемлющий, чем другие решения, но чрезвычайно дорогой. Содержимое базы данных не "отправляется по кабелю"; вместо этого они сохраняются в общем бэкэнд, к которому могут обращаться все задействованные системы. Поскольку существует только один сервер, системы не могут выйти из синхронизации.

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

Ответ 2

У меня есть некоторый опыт работы с MS-SQL 2005 (издателем) и SQLEXPRESS (подписчики) с репликации слияния за рубежом. Вот мои комментарии:

1 - встроена ли репликация или добавление/плагин?

Встроенный

2 - Как работает репликация   (На высоком уровне)?

Различные способы репликации с моментального снимка (предоставление статических данных на уровне подписчика) для транзакционной репликации (каждая инструкция INSERT/DELETE/UPDATE выполняется на всех серверах). Репликация слиянием реплицирует только окончательные изменения (после этого обновления будут выполняться одновременно с UPDATES во время репликации).

3 - Легко ли проверять соответствие между мастером и ведомыми устройствами?

То, что я никогда не делал...

4 - Насколько легко восстановить неудачную копию с синхронизацией с мастером?

Основной процесс resynch - это просто двойной щелчок. Но если у вас есть 4Go данных для повторной инициализации через соединение с 64 КБ, это будет долгий процесс, если вы его не настроите.

5 - Производительность?

Ну... У вас, конечно, есть узкое место где-то, это производительность соединения, объем данных или, наконец, производительность вашего сервера. В моей конфигурации пользователи только пишут подписчикам, которые все реплицируются с помощью основной базы данных = издателя. Этот сервер никогда не будет разрешен конечными пользователями, а его процессор строго предназначен для репликации данных (на несколько серверов) и резервного копирования. Подписчики предназначены для клиентов и одной репликации (для издателя), что дает очень интересный результат с точки зрения доступности данных для конечных пользователей. Репликация между издателем и подписчиками может быть запущена вместе.

6 - Любые другие интересные функции...

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

Конфигурации с основным издателем и несколькими подписчиками могут быть ОЧЕНЬ дешевыми (по сравнению с некоторыми другими...), так как вы можете использовать бесплатный SQLEXPRESS на стороне подписчика, даже при запуске слияния или транзакционных реплик

Ответ 4

Просто добавьте опции с SQL Server (особенно SQL 2008, у которого теперь есть функции отслеживания изменений). Что-то нужно рассмотреть Sync Framework от Microsoft. Там есть несколько вариантов: от базовой архитектуры хаба и спицы, что отлично, если у вас есть один центральный сервер и иногда подключенные клиенты, вплоть до одноранговой синхронизации, что дает вам возможность делать гораздо более продвинутые синхронизация с несколькими "основными" базами данных.

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

Для сильных программистов Sync Framework достаточно открыта, что вы можете подключить клиентов через WCF к вашей службе WCF, которая может абстрагировать любое фоновое хранилище данных (я слышал, что некоторые люди экспериментируют с использованием Oracle в качестве внутреннего).

Моя команда только что выпустила выпуск с большим проектом, который включает в себя несколько баз данных SQL Express, которые с большим успехом синхронизируют подмножества данных из центральной базы данных SQL Server через WAN и Интернет (медленное соединение по коммутируемому соединению).

Ответ 5

MS SQL 2005 Standard Edition и выше обладают превосходными возможностями и инструментами репликации. Взгляните на:

http://msdn.microsoft.com/en-us/library/ms151198(SQL.90).aspx

Это довольно способно. Вы даже можете использовать SQL Server Express в качестве подписчика только для чтения.

Ответ 6

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

MySQL поддерживает асинхронную репликацию, что очень хорошо для некоторых вещей. Однако есть недостатки. Репликация на основе заявлений отличается от того, что делает большинство (любых?) Других баз данных, и не всегда приводит к ожидаемому поведению. Репликация на основе строк поддерживается только не готовой к выпуску версией (но более соответствует тому, как это делают другие базы данных).

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

Ответ 7

Немного не по теме, но вы можете проверить Maatkit на инструменты, которые помогут в репликации MySQL.

Ответ 8

Все основные коммерческие базы данных имеют приличную репликацию, но некоторые из них более достойные, чем другие. IBM Informix Dynamic Server (версия 11 и более поздняя) особенно хороша. На самом деле у него две системы: одна для высокой доступности (HDR - репликация высокой доступности), а другая для распространения данных (ER - корпоративная репликация). И функции Mach 11 (RSS - автономный вторичный, и SDS - общий общий диск) тоже превосходны, вдвойне - в 11,50, где вы можете писать либо в первичной, либо в средней части пары HDR.

(Полное раскрытие: я работаю на Informix softare.)

Ответ 9

Я сам не пробовал, но вы также можете посмотреть в OpenBaseSQL, который, кажется, имеет простую в использовании встроенную репликацию.

Ответ 10

Еще один способ - запустить в виртуализованной среде. Я думал, что данные в этой статье в блоге были интересны

http://chucksblog.typepad.com/chucks_blog/2008/09/enterprise-apps.html

Это от руководителя EMC, так что, очевидно, он не является независимым, но эксперимент должен быть воспроизводимым

Здесь данные, специфичные для Oracle

http://oraclestorageguy.typepad.com/oraclestorageguy/2008/09/to-rac-or-not-to-rac-reprise.html

Изменить: если вы запустили виртуализацию, тогда есть способы сделать что-либо реплицируемым

http://chucksblog.typepad.com/chucks_blog/2008/05/vmwares-srm-cha.html