Зеркальное отображение против репликации

Как решить, следует ли выбрать репликацию или зеркалирование в SQL Server 2005, чтобы обеспечить доступность данных и производительность одновременно.


Чтобы быть более конкретным в отношении моей архитектуры SQL-сервера, у меня есть активный / активный кластер из 2 узлов, которые используются для балансировки нагрузки, и у меня есть еще один сервер для репликации, который будет использоваться только для отчетности, я хочу убедиться, какая технология best обеспечивает как доступность, так и производительность, репликацию транзакций или зеркальное отображение базы данных?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
14
0
25 664
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не знаю SQL Server 2005, но для общего использования SQL я всегда предпочитаю репликацию. Вы должны разделить чтение / запись в своем приложении (для MySQL есть MySQL Proxy, который может сделать это за вас), но получите масштабируемую систему. (читает ведомому (-ым), записывает ведущему)

Зеркальное отображение означает репликацию мастер-мастер, которая приводит к проблемам с параллелизмом / транзакциями. Даже в сценариях мастер-мастер вы должны НИКОГДА отправлять запросы записи на разные серверы. В зависимости от размера вашего проекта следующими шагами будет добавление дополнительных ведомых устройств, а затем добавление еще одного ведущего + его ведомые устройства для резервирования.

master --- master
  |          |
slave       slave
  |          |
slave       slave
  |          |
slave       slave

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

Зеркальное отображение в MS-SQL - это репликация мастер-мастер нет. Только одна из двух баз данных может быть записана одновременно, и эти транзакции вставки / обновления / удаления также фиксируются в журнале другого сервера.

Mark Sowul 01.04.2013 20:38

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

Various mechanisms in SQL Server provide database-level redundancy, such as backup/restore, log shipping, and database mirroring (in SQL Server 2005 and later). Database mirroring is the only mechanism that provides a real-time, exact copy of the protected database with the guarantee of zero data loss (when the mirror is synchronized).

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

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

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

Ответ принят как подходящий

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

Для записи вы можете создавать снимки на зеркале и использовать их для отчетов: technet.microsoft.com/en-us/library/ms175511.aspx

Mark Sowul 01.04.2013 20:37

Другие вопросы по теме