Réplication vers des abonnés utilisant des tables optimisées en mémoire

S’applique à :SQL ServerAzure SQL Managed Instance

Les tables agissant comme des abonnés à la réplication de capture instantanée et à la réplication transactionnelle, à l’exclusion de la réplication transactionnelle d’égal à égal, peuvent être configurées en tant que tables mémoire optimisées. Les autres configurations de réplication ne sont pas compatibles avec les tables mémoire optimisées. À compter de SQL Server 2016 (13.x), cette fonctionnalité n’est pas disponible.

Deux configurations requises

Pour configurer une table optimisée en mémoire en tant qu’abonné

  1. Créez une publication transactionnelle. Pour plus d’informations, voir Create a Publication.

  2. Ajoutez des articles à la publication. Pour plus d’informations, consultez définir un Article.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur
    0x40000000000.

  3. Dans la fenêtre de propriétés d’article, définissez Activer l’optimisation mémoire sur true.

  4. Démarrez le travail de l'Agent d'instantané pour générer l'instantané initial pour cette publication. Pour plus d’informations, voir Create and Apply the Initial Snapshot.

  5. Ensuite, créez un abonnement. Dans l’ Assistant Nouvel abonnement , définissez Abonnement de mémoire optimisée sur true.

Les tables optimisées en mémoire doivent maintenant commencer à recevoir des mises à jour de la part du serveur de publication.

Reconfigurer une réplication de transaction existante

  1. Accédez aux propriétés d’abonnement dans Management Studio et définissez Abonnement de mémoire optimisée sur true. Les modifications ne sont appliquées qu’une fois l’abonnement réinitialisé.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au nouveau paramètre @memory_optimized de la procédure stockée sp_addsubscription la valeur true.

  2. Accédez aux propriétés d’article d’une publication dans Management Studio, puis définissez Activer l’optimisation mémoire sur true.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur
    0x40000000000.

  3. Les tables mémoire optimisées ne prennent pas en charge les index cluster. Pour que la réplication gère ces types d’index en les convertissant en index non cluster sur la destination, définissez Convertir l’index cluster en index non-cluster pour l’article optimisé en mémoire sur true.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur 0x0000080000000000.

  4. Régénérez la capture instantanée.

  5. Réinitialisez l’abonnement.

Remarques et restrictions

Seule la réplication transactionnelle monodirectionnelle est prise en charge. La réplication transactionnelle d'égal à égal n'est pas prise en charge.

Les tables optimisées en mémoire ne peuvent pas être publiées.

Les tables de réplication sur le serveur de distribution ne peuvent pas être configurées en tant que tables optimisées en mémoire.

La réplication de fusion ne peut pas inclure des tables optimisées en mémoire.

Sur l'abonné, les tables impliquées dans la réplication transactionnelle peuvent être configurées en tant que tables mémoire optimisées, mais les tables d'abonné doivent répondre aux exigences des tables mémoire optimisées. Cette fonction requiert les restrictions suivantes.

Modification d'un fichier de schéma

  • Si vous utilisez l'option de table optimisée en mémoire DURABILITY = SCHEMA_AND_DATA, la table doit avoir un index de clé primaire non clusterisé.

  • ANSI_PADDING doit être ON.