Azure SQL DB для репликации Azure SQL DB

У любого есть идея, которая является наилучшим способом реализации непрерывной репликации некоторых таблиц БД из базы данных SQL Azure в базу данных SQL Azure (PaaS) в пошаговом режиме.

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

Пожалуйста, предложите.

3 ответа

Решение

Я могу выполнить миграцию из облака в облако с помощью предварительного просмотра синхронизации данных из портала Azure ASM. Ниже приведены ограничения.

  • Максимальное количество групп синхронизации, к которым может принадлежать любая база данных: 5
  • Символы, которые нельзя использовать в именах объектов: имена объектов (базы данных, таблицы, столбцы) не могут содержать точку печатных символов (.), Левую квадратную скобку ([) или правую квадратную скобку (]).

Поддерживаемые ограничения на размеры БД

Ссылка: http://download.microsoft.com/download/4/E/3/4E394315-A4CB-4C59-9696-B25215A19CEF/SQL_Data_Sync_Preview.pdf

Какое бизнес-требование стоит за этим запросом?

1 - Есть ли у вас справочные данные в базе данных 1 и вы хотите скопировать эти данные в базу данных 2?

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

2 - Можете ли вы иметь дубликаты базы данных в другом регионе? Если это так, используйте активную гео-репликацию для синхронизации базы данных. Смотрите мою статью по этому вопросу для деталей.

3 - Если вам просто нужно реплицировать пару таблиц и объем данных невелик, просто напишите простую программу PowerShell (рабочий процесс), чтобы обеспечить загрузку цели из источника.

Запланируйте программу в Azure Automation в нужное время. Я бы использовал флаг, чтобы указать, какие записи были реплицированы.

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

Вы даже можете пакетировать записи. Изучите использование SQLBulkCopy в библиотеке system.data.sqlclient.Net.

4. Наконец, но не в последнюю очередь, база данных SQL Azure теперь поддерживает команду OPENROWSET. К сожалению, эта функция доступна только для чтения из файла хранилища BLOB-объектов, когда вы находитесь в облаке. Старые версии команды on premise позволяют записывать в файл.

Я надеюсь, что эти предложения помогут.

Удачного кодирования.

Джон Лукавый DBA

Если вы хотите использовать фабрику данных Azure, для выполнения добавочных обновлений вам потребуется изменить свой запрос, чтобы посмотреть дату создания / изменения в исходной таблице. Затем вы можете взять эти данные и поместить их в "промежуточную таблицу" на стороне назначения, а затем использовать сохраненную операцию proc для вставки / обновления в "реальную таблицу" и, наконец, обрезать промежуточную таблицу.

Надеюсь это поможет.

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