Поделиться через


Репликация в подписчики таблиц, оптимизированных для памяти

Область применения: SQL Server Управляемый экземпляр SQL Azure

Таблицы, выступающие в качестве подписчиков моментальных снимков и репликации транзакций, за исключением одноранговой репликации транзакций, можно настроить как оптимизированные для памяти таблицы. Другие конфигурации репликации несовместимы с таблицами, оптимизированными для памяти. Эта функция доступна начиная с SQL Server 2016 (13.x).

Требуются две конфигурации

  • Настройте базу данных подписчика для поддержки репликации в оптимизированные для памяти таблицы.

    Задайте для свойства @memory_optimized значение true, используя sp_addsubscription (Transact-SQL) или sp_changesubscription (Transact-SQL).

  • Настройте статью для поддержки репликации в оптимизированные для памяти таблицы.

    @schema_option = 0x40000000000 Задайте параметр статьи с помощью sp_addarticle (Transact-SQL) или sp_changearticle (Transact-SQL).

Настройка оптимизированной для памяти таблицы в качестве подписчика

  1. Создайте публикацию транзакций. Дополнительные сведения см. в разделе Create a Publication.

  2. Добавьте статьи к публикации. Дополнительные сведения см. в статье определить статью.

    При настройке с помощью Transact-SQL задайте параметр @schema_option хранимой процедуры sp_addarticle
    0x40000000000.

  3. В окне свойств статьи задайте для параметра Enable Memory optimization (Включить оптимизацию памяти) значение true.

  4. Запустите задание агента моментальных снимков, чтобы создать исходный моментальный снимок для этой публикации. Дополнительные сведения см. в разделе Create and Apply the Initial Snapshot.

  5. Теперь создайте новую подписку. В мастере создания подписки задайте для параметра Memory Optimized Subscription (Оптимизированная для памяти подписка) значение true.

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

Перенастройка существующей репликации транзакций

  1. Перейдите к свойствам подписки в Management Studio и задайте значение true для оптимизированной для памяти подписки. Изменения будут применены после повторной инициализации подписки.

    Если при настройке с помощью Transact-SQL задайте новый параметр @memory_optimized хранимой процедуры sp_addsubscription значение true.

  2. Перейдите к свойствам статьи для публикации в Management Studio и задайте значение true для оптимизации памяти .

    При настройке с помощью Transact-SQL задайте параметр @schema_option хранимой процедуры sp_addarticle
    0x40000000000.

  3. Оптимизированные для памяти таблицы не поддерживают кластеризованные индексы. Чтобы операция репликации обрабатывала их путем преобразования в некластеризованные индексы в целевом расположении, задайте для параметра Convert clustered index to nonclustered for memory optimized article (Преобразовывать кластеризованный индекс в некластеризованный для статьи, оптимизированной для памяти) значение true.

    При настройке с помощью Transact-SQL задайте параметр @schema_option хранимой процедуры sp_addarticle 0x0000080000000000.

  4. Повторно создайте моментальный снимок.

  5. Повторно инициализируйте подписку.

Комментарии и ограничения

Поддерживается только односторонняя репликация транзакций. Одноранговая репликация транзакций не поддерживается.

Оптимизированные для памяти таблицы нельзя публиковать.

Таблицы репликации на распространителе нельзя настраивать в качестве оптимизированных для памяти таблиц.

Репликация слиянием не может содержать оптимизированные для памяти таблицы.

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

Изменение файла схемы

  • Если используется параметр DURABILITY = SCHEMA_AND_DATA оптимизированной для памяти таблицы, то таблица должна иметь некластеризованный индекс первичного ключа.

  • Параметр ANSI_PADDING должен быть установлен в значение ON.