Administering Dynamics CRM
Hello everyone,
Today I am writing about a common scenario which I have noticed during my customer visits lately. This is primarily focused on administering Dynamics CRM. I have tried to include almost every aspect that I could recollect from my customer visits. So, whether you would like to prepare your plan for maintaining Dynamics CRM effectively or define a benchmark based on this, you could use the information listed below.
Happy reading!!
CRM Server Maintenance:
- Make sure to have windows updates reviewed, tested and installed on the servers, along with validating the common security mis-configurations. You can use Microsoft Baseline Security Analyser which provides a streamlined method to identify missing security updates and common security mis-configurations.
- Regular monitoring of event logs. For more information you can refer: https://technet.microsoft.com/en-us/library/hh206051.aspx
- Regular monitoring of server performance counters. For more information you can refer: https://msdn.microsoft.com/en-us/library/windows/desktop/aa371643(v=vs.85).aspx and https://technet.microsoft.com/en-us/library/bb734903.aspx
- Anti-virus exclusions for Microsoft Dynamics CRM: https://blogs.msdn.com/b/crminthefield/archive/2011/01/24/anti-virus-exclusions-for-microsoft-dynamics-crm.aspx
- Maintaining AsyncOperationBase: https://support.microsoft.com/kb/968520
- Maintaining WorkflowLogBase: https://support.microsoft.com/kb/968755
- Maintaining PrincipalObjectAccess - you may notice that the size of the SQL table PrincipalObjectAccess grows and could be using a large percentage of the database size. Unmonitored growth in this table can cause performance issues: https://support.microsoft.com/kb/2664150 and https://blogs.msdn.com/b/crminthefield/archive/2011/06/09/principalobjectaccess-performance-recommendations.aspx and https://community.dynamics.com/crm/b/cinterosab_crmblog/archive/2013/01/22/principal-object-access-table-poa-table-grows-large.aspx
- Dynamics CRM maintenance jobs: https://blogs.msdn.com/b/crminthefield/archive/2012/04/26/avoid-performance-issues-by-re-scheduling-crm-2011-maintenance-jobs.aspx and https://blogs.msdn.com/b/crminthefield/archive/2013/02/07/more-details-on-dynamics-crm-2011-async-service-maintenance-jobs.aspx
- Maintaining and managing workflows in Dynamics CRM: https://blogs.msdn.com/b/ritesh_ranjan/archive/2012/08/22/dynamics-crm-troubleshooting-workflows.aspx
- Tips and tricks from Optimizing and maintaining the performance of a Microsoft Dynamics CRM 2011 server infrastructure
- Keep yourself updated with Microsoft Dynamics CRM 2011 updates and hotfixes
- Understanding of OrgDBOrgSettings tool for Microsoft Dynamics CRM 2011: https://support.microsoft.com/kb/2691237
- Maintaining Dynamics CRM 2011 using PowerShell: https://community.dynamics.com/crm/b/c5insightblog/archive/2011/03/10/manage-dynamics-crm-2011-with-powershell.aspx and https://msdn.microsoft.com/en-us/library/hh699700(v=crm.5).aspx
- Optimizing and Maintaining a Microsoft Dynamics CRM 2011 Server Infrastructure: https://technet.microsoft.com/en-us/library/hh413200.aspx
- Operating Microsoft Dynamics CRM: https://msdn.microsoft.com/en-us/library/hh699700(v=crm.5).aspx
- Known risks and vulnerabilities: https://msdn.microsoft.com/en-us/library/hh699686(v=crm.5).aspx
- Cleaning up CRM Sync Entry tables: https://blogs.msdn.com/b/crminthefield/archive/2012/10/03/cleaning-up-crm-sync-entry-tables.aspx
SQL Server monitoring:
- Regular monitoring of event logs. For more information you can refer: https://technet.microsoft.com/en-us/library/hh206051.aspx
- SQL performance counters: https://msdn.microsoft.com/en-us/library/ms137622.aspx
- Missing Indexes: https://technet.microsoft.com/en-us/library/ms345417(v=sql.105).aspx
- Index Defragmentation: https://technet.microsoft.com/en-us/library/cc966523.aspx
- Monitoring deadlocks: https://blogs.msdn.com/b/sqlserverfaq/archive/2013/04/27/an-in-depth-look-at-sql-server-memory-part-2.aspx and https://technet.microsoft.com/en-us/library/ms178104(v=sql.105).aspx
- Monitoring SQL blockings & timeouts: https://technet.microsoft.com/en-US/2008.04.blocking.aspx and https://technet.microsoft.com/en-us/library/ms190181(v=sql.105).aspx
- Monitoring SQL_Wait_Stats: https://technet.microsoft.com/en-us/library/ms190732(v=sql.110).aspx and https://msdn.microsoft.com/en-us/library/ms179984.aspx and https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
- Monitoring SQL long running queries: https://technet.microsoft.com/en-us/library/ms177500(v=sql.105).aspx and https://technet.microsoft.com/en-us/library/cc879320(v=sql.105).aspx
- Regular checks of SQL errors: https://technet.microsoft.com/en-us/library/ms191202(v=sql.105).aspx
- Frequently validating SQL backups: https://technet.microsoft.com/en-us/library/ms189587(v=sql.105).aspx
- Monitoring SQL DMVs: https://msdn.microsoft.com/en-us/library/ms188754.aspx
- Regular checks on the reports error: https://technet.microsoft.com/en-us/library/cc512029.aspx and https://msdn.microsoft.com/en-us/library/ms165307.aspx
IIS maintenance:
- View Currently Executing Requests in a Worker Process (IIS 7): https://technet.microsoft.com/en-us/library/c6af847b-4b49-4fd4-b7bf-c2a8152f5f9d
- Create a Tracing Rule for Failed Requests (IIS 7): https://technet.microsoft.com/en-us/library/3dbee69b-ca3b-4adf-ab9e-81a541fc908c
- Enable Trace Logging for Failed Requests (IIS 7): https://technet.microsoft.com/en-us/library/30036297-9b85-40fb-93f4-5d43a48fd7eb
- Core IIS Administration: https://technet.microsoft.com/en-us/library/bb727092.aspx
- High Availability and Scalability: https://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/achieving-high-availability-and-scalability-arr-and-hardware-load-balancer
Also, I would like to include an article written by Shawn on CRM Upgrade Best Practices which should always be considered when planning for an upgrade: https://blogs.msdn.com/b/crminthefield/archive/2012/10/10/crm-upgrade-best-practices.aspx