Exécution de la fusion des tables de base et d'extension en tant qu'opération distincte

Dynamics CRM 2013
 

S’applique à : Dynamics CRM 2013

Dans le cadre de la mise à niveau de Microsoft Dynamics CRM Server 2011 vers Microsoft Dynamics CRM Server 2013, les tables entitynameBase et entitynameExtensionBase de toutes les bases de données de l'organisation seront fusionnées en une table entitynameBase unique. La réduction du nombre de tables dans la base de données de l'organisation améliore les performances globales des opérations transactionnelles dans Microsoft Dynamics CRM.

Toutefois, pour les clients d'entreprise avec des bases de données d'organisation ayant des personnalisations ou des solutions complexes qui créent de grandes tables contenant des centaines de colonnes, la fusion de tables peut prendre plusieurs heures. Pour comprendre l'impact du processus de fusion de tables, utilisez un environnement de test pour déterminer combien de temps d'arrêt cela peut entraîner. Vous pouvez décider de différer la fusion de tables à après la mise à niveau vers Microsoft Dynamics CRM Server 2013.

System_CAPS_importantImportant

Vous ne pouvez pas différer la fusion de tables si vous sélectionnez l'organisation pendant l'Microsoft Dynamics CRM Server 2013Installation.

Même si vous pouvez continuer à utiliser Microsoft Dynamics CRM 2013 sans fusionner les table base et extension, nous vous recommandons d'exécuter la fusion dès que possible. Cela permet d'améliorer les performances de l'application et vous permet d'effectuer la mise à niveau vers la version principale suivante lorsqu'elle devient disponible.

Pour différer la fusion de tables, procédez comme suit :

  1. Ne mettez pas à jour les organisations pendant l'installation de Microsoft Dynamics CRM Server 2013. Pendant l'Installation de Microsoft Dynamics CRM Server 2013, dans la page Mise à niveau vers Microsoft Dynamics CRM 2013, vous devez définir la base de données de l'organisation sur la valeur <Aucun>. Si vous sélectionnez une base de données d'organisation, Installation tentera de fusionner toutes les entités des tables Base et ExtensionBase de cette organisation. Même si vous définissez la sous-clé MergeBaseAndExtensionTables de Registre Windows pour ignorer l'étape de la fusion de tables avant d'exécuter la mise à niveau, la fusion se produira tout de même car l'Installation supprime la sous-clé. Cela redéfinit la fusion de tables sur la valeur par défaut, qui consiste à fusionner les tables de base et d'extension pendant la mise à niveau de l'organisation.

  2. Configurez le contournement de la fusion de tables. Pour ce faire, ajoutez la sous-clé suivante au Registre Windows sur l'ordinateur sur lequel leGestionnaire de déploiement de Microsoft Dynamics CRM Server 2013 est exécuté.

    System_CAPS_importantImportant

    Pour différer la fusion de tables, vous devez définir cette sous-clé de Registre Windowsavant de mettre à niveau les bases de données d'organisation Microsoft Dynamics CRM 2011.

    • Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\MergeBaseAndExtensionTables

    • Type : DWORD (32 bits)

    • Valeur : 0

  3. Mettez à niveau les organisations existantes à l'aide du Gestionnaire de déploiement. Pour ce faire, démarrez le Gestionnaire de déploiement, cliquez avec le bouton droit sur l'organisation que vous souhaitez mettre à niveau, puis cliquez sur Mettre à niveau. Pendant la mise à niveau de l'organisation le processus de fusion de tables ne sera pas appelé.

  4. Fusionnez les tables pendant une période de maintenance appropriée. Pour exécuter l'outil de fusion de tables, procédez comme suit :

    1. Configurez la fusion de tables sur vrai. Après avoir mis à niveau toutes les bases de données d'organisation pour lesquelles vous souhaitez ignorer l'étape de la fusion de tables, redéfinissez la fusion de tables sur vrai afin que l'outil de fusion fusionne les tables base d'entité et d'extension d'entité Pour ce faire, modifiez la sous-clé suivante dans le Registre Windows qui avait été créée ou modifiée précédemment sur l'ordinateur où l'outil de fusion de tables doit être exécuté.

      • Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\MergeBaseAndExtensionTables

      • Type : DWORD (32 bits)

      • Valeur : 1

    2. Facultatif : Définissez la régénération de l'index personnalisé. Par défaut, les index personnalisés configurés pour les tables d'entités base et extensionbase sont effacés (supprimés) pendant le processus de fusion de tables. Pour autoriser le processus de fusion de tables à essayer de recréer les index personnalisés, créez la sous-clé suivante dans le Registre Windows sur l'ordinateur où l'outil de fusion de tables sera exécuté.

      • Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\EnableRecreateCustomIndexes

      • Type : DWORD (32 bits)

      • Valeur : 1

    3. Facultatif : Définissez la troncation des journaux de transactions. La fusion des données des tables d'extension d'entité dans les tables de base d'entité est effectuée en lots transactionnels en tant qu'instruction de mise à jour. SQL Server enregistre ces transactions dans un journal de transactions (Tlog), dont la taille peut sensiblement augmenter lors de la fusion de tables. Pour minimiser cette croissance de taille du journal de transactions, ce dernier est tronqué après la fin de chaque opération de fusion d'entités. Par défaut, la troncation du journal des transactions est activée et réalise une troncation lorsque la taille du journal dépasse 1 Go lors de la fusion de tables d'entités. Si les performances de fusion de tables sont faibles en raison de la troncation du journal des transactions, vous pouvez augmenter la taille de ce dernier ou désactiver la troncation (non recommandé).

      Activer/Désactiver la troncation du journal des transactions

      • Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\MergeTruncateTlog

      • Type : DWORD (32 bits)

      • Valeur : 1 (vrai) par défaut. Toute autre valeur est fausse et désactivera la troncation du journal des transactions.

      Définition du seuil de troncation

      • Emplacement : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\MergeTruncateTlogGrowthValueInMb

      • Type : DWORD (32 bits)

      • Valeur : 1024 (Mo) par défaut. En mégaoctets. Détermine le seuil pour la troncation de la taille du journal des transactions de la base de données.

    4. Désactivez l'organisation avant d'exécuter l'outil de fusion de tables. Pour ce faire, démarrez le Gestionnaire de déploiement, cliquez sur Organisations, cliquez avec le bouton droit sur l'organisation pour laquelle vous souhaitez fusionner les tables, puis cliquez sur Désactiver.

    5. Exécutez l'outil de fusion de tables. Vous pouvez exécuter la fusion de tables pour fusionner toutes les tables d'entités ou pour spécifier une entité unique ou plusieurs entités pour réaliser la fusion de tables en lots.

      • Fusionnez toutes les entités en même temps. Par défaut, lorsque vous exécutez l'outil de fusion d'entités, toutes les tables d'entité Base et ExtensionBase sont fusionnées.

      • Fusionnez les entités spécifiques. Il est possible de réaliser les fusions d'entités en lots d'entités sur plusieurs périodes de maintenance.

      Pour obtenir des instructions sur la façon dont exécuter CrmMergeBaseAndExtensionTableTool.exe, voir Exécution de l'outil de fusion de tables plus loin dans cette rubrique.

    6. Une fois la fusion de tables terminée, activez l'organisation de sorte qu'elle soit accessible par les utilisateurs.

Lorsque vous possédez des ensembles de données de très grande taille, vous devrez peut-être retarder le processus de fusion des tables jusqu'à la mise à niveau afin d'effectuer la mise à niveau rapidement. Vous pouvez utiliser une requête SQL pour déterminer les tables qui sont les plus grandes et par conséquent dont la fusion sera la plus longue.

L'instruction suivante renvoie le nombre total d'enregistrements, le nombre total de champs et la taille de ligne (Ko) dans la table ExtensionBase pour chaque type d'entité. Utilisez ces informations pour prendre des décisions, comme regrouper les tables ExtensionBase pour des opérations de fusion en lots.

SELECT e.Name as EntityName, e.ExtensionTableName, COUNT(AttributeId) AS CustomAttributeCount, SUM(spa.rows) AS TotalRecords, ps.in_row_data_page_count * 8 as ExtensionTableSizeInKB
FROM MetadataSchema.Attribute a
RIGHT OUTER JOIN EntityView e on a.EntityId = e.EntityId and a.IsCustomField = 1
INNER JOIN sys.partitions spa ON object_ID(e.ExtensionTableName) = spa.object_id
INNER JOIN sys.dm_db_partition_stats ps on ps.partition_id = spa.partition_id
WHERE e.IsActivity = 0 
AND e.ExtensionTableName IS NOT null
AND e.IsIntersect = 0
AND e.IsLogicalEntity = 0
AND [spa].[index_id] = 1
GROUP BY e.Name, e.ExtensionTableName,ps.in_row_data_page_count
ORDER BY e.Name

Exécutez cette requête sur la base de données d'organisation pour découvrir les entités qui n'ont pas été fusionnées.

SELECT e.Name, e.ExtensionTableName
FROM EntityView e
where e.IsActivity = 0 and e.ExtensionTableName is not null
    and e.IsIntersect = 0
    and e.IsLogicalEntity = 0
order by e.Name

Une organisation Microsoft Dynamics CRM 2011 « prédéfinie » renvoie 35 tables entitynameExtensionBase.

L'outil CrmMergeBaseAndExtensionTableTool.exe est inclus avec Microsoft Dynamics CRM Server 2013 et est installé dans le dossier c:\Program Files\Microsoft Dynamics CRM\Tools\ avec le rôle Serveur d'administration de déploiement. L'outil de fusion de tables est une application de la console et doit être exécuté depuis une invite de commandes où le rôle Serveur d'administration de déploiement est installé, ou peut être exécuté sur l'ordinateur sur lequel l'instance SQL Server s'exécute.

System_CAPS_importantImportant

N'exécutez pas l'outil de fusion de tables lorsque des utilisateurs ont accès au système. Désactivez l'organisation à l'aide du Gestionnaire de déploiement avant d'exécuter l'outil de fusion de tables.

Vous devez définir la sous-clé MergeBaseAndExtensionTables de registre Windows sur 1 (vrai) pour que l'outil de fusion de tables puisse fusionner les tables d'entités.

Ne fermez pas la fenêtre d'invite de commandes lorsque l'outil de fusion de tables s'exécute. Cela annulerait la fusion.

Vous pouvez exécuter l'outils de fusion de tables à plusieurs reprises. Cela ne fusionnera que les tables de base et d'extension spécifiées et uniquement celles qui n'ont pas encore été fusionnées.

Pour exécuter l'outil de fusion de tables, vous devez disposer des autorisations suivantes.

  • Membre du groupe Administrateurs de déploiement de Microsoft Dynamics CRM.

  • Être un membre du groupe Administrateurs du domaine sur l'ordinateur local où une instance de SQL Server est située et qui sera utilisé pour stocker les bases de données Microsoft Dynamics CRM.

  • Autorisation Db_owner sur la base de données de l'organisation qui sera fusionnée.

CrmMergeBaseAndExtensionTableTool /s: /o: [/b:] [/log:] [/u:] [/p:] [/e:,...]

Exemple qui fusionne toutes les tables d'entité :

CrmMergeBaseAndExtensionTableTool /s:CRMSQLServer /o:Contoso_MSCRM /log:c:\Logs\mergetoollog.txt

Exemple qui fusionne uniquement les tables de compte et d'entité de contact :

CrmMergeBaseAndExtensionTableTool /s:10.125.156.135  /o:Contoso_MSCRM /e:Account,Contact /log:c:\Logs\mergetoollog.txt

Pour utiliser et obtenir une liste paramètres, tapez CrmMergeBaseAndExtensionTableTool à l'invite de commandes et appuyez sur ENTRÉE.

/s:[SQLServer]

  • Ce paramètre requis spécifie le nom de l'instance SQL Server. Une adresse IP peut être utilisée au lieu d'un ordinateur ou d'un nom d'instance.

/o:[OrgDBName]

  • Ce paramètre requis spécifie le nom de la base de données de l'organisation. Vous devez également inclure le suffixe _MSCRM.

/b:[BatchSize]

  • Ce paramètre optionnel spécifie le numéro de taille de lots pour fusionner les tables. La valeur par défaut est 50 000 lignes.

/log:[path]

  • Ce paramètre optionnel enregistre les informations sur l'enregistrement dans un fichier texte. Si ce paramètre n'est pas spécifié, les informations sont uniquement affichées dans la fenêtre de la console où l'outil s'exécute.

/u:[SQLLogin]

  • Ce paramètre optionnel spécifie qu'une connexion à SQL Server utilisera l'authentification SQL Server pour la connexion à l'ordinateur exécutant SQL Server. Si rien n'est spécifié, l'authentification Windows est utilisée.

/p:[SQLLoginPassword]

  • Spécifie le mot de passe de connexion à SQL Server lorsque vous utilisez le paramètre /u.

/e:[entityname1],[entityname2]...

  • Ce paramètre optionnel spécifie les entités spécifiques à fusionner. Pour spécifier un nom d'entité, utilisez le nom de la table. Il existe 35 entités incluses dans Microsoft Dynamics CRM. Pour obtenir leur liste, voir Entités « prédéfinies ».

    System_CAPS_noteRemarque

    Si ce paramètre n'est spécifié, toutes les entités sont fusionnées.

Account, BusinessUnit, Campaign, Competitor, Connection, Contact, Contract, ContractDetail, CustomerAddress, Equipment, Goal, Incident, Invoice, InvoiceDetail, KbArticle, Lead, List, MailMergeTemplate, Opportunity, OpportunityProduct, PriceLevel, Product, Queue, QueueItem, Quote, QuoteDetail, ReportCategory, SalesLiterature, SalesOrder, SalesOrderDetail, SharePointDocumentLocation, SharePointSite, SystemUser, Team, Territory

© 2016 Microsoft Corporation. All rights reserved. Copyright

Afficher: