1. SQL Server forSharePoint geeksA gentle introductionThomas Vochten • September 8, 2011
SQL Server forSharePoint geeksA gentle introductionThomas Vochten • September 8, 2011
About Me• SharePoint Infrastructure Consultant at Atos (before Siemens IT Solutions & Services)• Accidental DBA• Lousy .NET developer thomasvochten.com @thomasvochten
What we’ll cover• Disclaimer• Who needs a DBA anyway?• Importance of SQL for SharePoint• The SQL Landscape• Configuration tips• Common problems• Troubleshooting Tips• Counter Intelligence• Resources
Disclaimer• There are no exact truths in SQL• The standard answer always is...
Who needs a DBA anyway?• A quick poll... Who manages a production SQL instance that isn’t a *real* DBA?• Don’t worry - you’re not alone... Meet the “Accidental” or “Involuntary” DBA
Common Problems• Data and log file management• Backups• Corruption• Performance troubleshooting• Index fragmentation• Configuration issues
Importance for SharePoint• SharePoint performance = SQL performance• All your data is in a database• The’re a lot of them:
SharePoint DatabasesOther Important Considerations• Capacity planning• Performance planning• HA / DR requirements• Information Architecture• Limits & Boundaries: from 100 GB to 200 GB to 4 TB and beyond
Why SharePoint makes DBAs cry• GUIDs all over the place• Don’t touch! support policy
Getting rid of the GUID• Grey wizard is good• White wizard is bad
SQL LandscapeSoftware Requirements• SharePoint 2010 requires 64 bit all the way• SQL Server 2008 R2 is your best friend• Other 2008 or 2005 editions are supported tooEditions• Standard or Enterprise?
Standard vs Enterprise• Hardware Standard Enterprise # CPU 4 8 Memory 64 GB 2 TB• Enterprise-Only • Snaphots • TDE • More online operations • PowerPivot
What about RBS?Just because you can, doesn’t mean you shouldPro• Potentially cheaper storage• Move-SPSite (after SP1)• Disk I/O optimizationsCons• Backup / restore complexity• Not supported together with mirroring• General operational burden• 3rd party software
A case for RBS• Heavily focused on document libraries• The vast majority ( >70%) of those files exceed 1MB in size.• The SharePoint content databases holding these files are relatively large ( >200GB) now or in the immediately foreseeable future• You have Disaster Recovery tools that are either directly RBS aware, or have processes designed to synchronize backups• You have highly skilled, expert SQL and Windows administration staff that is currently or has the capacity and directive to be well trained in RBS use, administration, and troubleshooting[Source: Chris Mullendore, MSFT PFE]
Pre Setup (1)• Use the latest service pack• Consider the latest cumulative update• Different databases: different I/O needs TempDB Logs Search DB’s Content DB’s
Pre Setup (2)• Use a normal domain user account as service account• Learn about instant file initialization• Learn about “lock pages in memory”• Check partition alignment• Perform a stresstest with sqlio
Setup• Choose the right product features• Change the default database paths• Put TempDB in the right place immediately• Only use Windows Authentication Mode
Post Setup• Make sure SQL Server Agent is started• Check Windows Firewall• Explore server & database options • Minimum & maximum memory usage • Set fill factor to 80% for SharePoint • MAXDOP to 1 for SharePoint • Backup compression • Autogrowth settings • # of database files per database • Model database (not for SharePoint)• Create and test SQL aliases on your SharePoint servers• Pregrow your SharePoint databases!
Maintaining SQL• Check database integrity weekly with DBCC CHECKDB• Look at index fragmentation• Learn about Maintenance Plans*Source: “Database Maintenance for Microsoft SharePoint 2010 Products” (revised)+
Caution• Shrinking database files: are you sure?• Autoshrink: the exception to the “it depends” rule It’s evil!
Common Problems, RevisitedMost common issues• Data and log file management• BackupsDue to lack of understanding of• Recovery models and their influence on space and backups• Backup types (full, differential & logs)Recovery models• Choosing between SIMPLE or FULL recovery model and what they bring to the table
Troubleshooting TipsLearn how to use the tools• Perfmon• Activity Monitor• PAL• ProfilerLearn the basics, like• Don’t restart SQL server in case of corruption• Don’t detach and reattach problematic databases
Counter IntelligenceGet to know your SQL server, fast!• Blitz! scripts by Brent Ozar• Diagnostic scripts by Glenn Berry
ResourcesWhere do I go for SQL help?Paul Randal (blog | twitter)Kimberly Tripp (blog| twitter)Brent Ozar (blog| twitter)Glenn Berry (blog| twitter)Fancy some blogs?http://thomaslarock.com/rankingsGet help – fast!#sqlhelp on TwitterWe now have #sphelp too you know
Quick Wins Summary• Partition Alignment• Instant File Initialization• Databases & logs on different spindles• Multiple datafiles, but not for TempDB or for logfiles• Tune server memory usage• Fill factor to 80%• MAXDOP to 1• Tune autogrowth settings• Use SQL aliases• Presize your databases• Check integrity often• No shrinking of data files (autoshrink is evil)• Know the recovery models & their impact on drive space