Вопрос

Я уже просмотрел некоторые ресурсы и просто хочу внести ясность и получить мнение.

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

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

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

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

итак, если вы распределите диапазоны 1-10 и 11-20 на 2 сервера, как только каждый сервер вставит 10 строк, у вас будут начальные значения 1-20 в обеих базах данных?

Это было полезно?

Решение

Есть такой вариант "НЕ ДЛЯ РЕПЛИКАЦИИ" это может быть применено к столбцам идентификаторов (а также к триггерам и другим ограничениям).

В вашем примере server1 будет содержать 1-10, но просто примет реплицированные 11-20.

Несколько способов посева ваших семян:

Либо:установите начальное значение / приращения с помощью параметра НЕ ДЛЯ РЕПЛИКАЦИИ следующим образом

  • Начальное значение 1, приращение 2
  • Начальное значение 2, приращение 2
  • Начальное значение -1, приращение -2
  • Начальное число -2, приращение -2
  • Начальное значение 1000000001, приращение 2
  • Начальное значение 1000000002, приращение 2
  • Начальное число -1000000002, приращение -2
  • Начальное число -1000000001, приращение -2

Это дает вам 500 000 000 долларов на сервер для 8 серверов

Или:Добавьте второй столбец с именем ServerID для предоставления составных ключей, не используйте ДЛЯ РЕПЛИКАЦИИ для столбца ID

Это масштабируется, скажем, до 256 серверов для tinyint с 2 ^ 32 строками на сервер

Работает в любом случае...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top