Репликация на стороне клиента для SQL Server? - PullRequest
0 голосов
/ 27 апреля 2010

Я хотел бы иметь некоторую степень отказоустойчивости / избыточности с моей базой данных SQL Server Express. Я знаю, что если я обновлюсь до более дешевой версии SQL Server, я смогу встроить «Репликацию». Но мне интересно, есть ли у кого-нибудь опыт управления репликацией на стороне клиента . Как в моем заявлении:

  • Каждый раз, когда мне нужно создавать, обновлять или удалять записи из базы данных, отправляйте оператор на все n серверов напрямую со стороны клиента
  • Каждый раз, когда мне нужно читать, я могу сделать это с одного репрезентативного сервера (здесь тоже возможны другие схемы).
  • Кажется, что эта логика потенциально может быть добавлена ​​непосредственно в мой контекст данных Linq-To-SQL.

Есть мысли?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

Каждый раз, когда мне нужно создать, обновить или удалить записи из базы данных - оформить заявление на все n серверов прямо со стороны клиента

Рецепт катастрофы.

Собираетесь ли вы иметь распределенную транзакцию или просто позволить некоторым серверам выйти из строя? Если у вас есть распределенная транзакция, что делать, если сервер на некоторое время отключается.

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

0 голосов
/ 27 апреля 2010

Я управлял репликацией с внутреннего клиента. Моя модель базы данных работала в режиме только вставки для всех транзакций и вставки-обновления для поиска данных. Удаление не разрешено.

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

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

...