Azure SQL DB для репликации Azure SQL DB
У любого есть идея, которая является наилучшим способом реализации непрерывной репликации некоторых таблиц БД из базы данных SQL Azure в базу данных SQL Azure (PaaS) в пошаговом режиме.
Я пробовал предварительный просмотр синхронизации данных (схема не загружается даже после нескольких часов), фабрика данных (копирование данных) - быстрая, но она всегда копирует все данные (дублирующиеся записи), а не пошаговым способом.
Пожалуйста, предложите.
3 ответа
Я могу выполнить миграцию из облака в облако с помощью предварительного просмотра синхронизации данных из портала Azure ASM. Ниже приведены ограничения.
- Максимальное количество групп синхронизации, к которым может принадлежать любая база данных: 5
- Символы, которые нельзя использовать в именах объектов: имена объектов (базы данных, таблицы, столбцы) не могут содержать точку печатных символов (.), Левую квадратную скобку ([) или правую квадратную скобку (]).
Какое бизнес-требование стоит за этим запросом?
1 - Есть ли у вас справочные данные в базе данных 1 и вы хотите скопировать эти данные в базу данных 2?
Если это так, то используйте кросс-запросы к базам данных, если вы находитесь на одном логическом сервере. Смотрите мою статью по этому вопросу для деталей.
2 - Можете ли вы иметь дубликаты базы данных в другом регионе? Если это так, используйте активную гео-репликацию для синхронизации базы данных. Смотрите мою статью по этому вопросу для деталей.
3 - Если вам просто нужно реплицировать пару таблиц и объем данных невелик, просто напишите простую программу PowerShell (рабочий процесс), чтобы обеспечить загрузку цели из источника.
Запланируйте программу в Azure Automation в нужное время. Я бы использовал флаг, чтобы указать, какие записи были реплицированы.
Поместите вставку в цель и обновите флаг источника в транзакции, чтобы гарантировать согласованность. Этот паттерн представляет собой ряд, мучительный паттерн.
Вы даже можете пакетировать записи. Изучите использование SQLBulkCopy в библиотеке system.data.sqlclient.Net.
4. Наконец, но не в последнюю очередь, база данных SQL Azure теперь поддерживает команду OPENROWSET. К сожалению, эта функция доступна только для чтения из файла хранилища BLOB-объектов, когда вы находитесь в облаке. Старые версии команды on premise позволяют записывать в файл.
Я надеюсь, что эти предложения помогут.
Удачного кодирования.
Джон Лукавый DBA
Если вы хотите использовать фабрику данных Azure, для выполнения добавочных обновлений вам потребуется изменить свой запрос, чтобы посмотреть дату создания / изменения в исходной таблице. Затем вы можете взять эти данные и поместить их в "промежуточную таблицу" на стороне назначения, а затем использовать сохраненную операцию proc для вставки / обновления в "реальную таблицу" и, наконец, обрезать промежуточную таблицу.
Надеюсь это поможет.