SharePoint Database Naming Standards
Call me picky, but I think it’s important to consistently name your SharePoint databases—especially on a shared SQL Server hosting multiple farms and applications. Not only is it a good practice, but by showing that you care about the databases, you’ll earn the respect of even your most grumpiest DBAs. I wish the SharePoint administrative interfaces ushered you into a naming convention, but the reality is that consistent naming requires diligence and a little planning. I would bet that a majority of the SharePoint installations in the wild were configured using using the Products and Technology Wizard GUI. When you use the GUI, it creates the Central Administration content database without giving you the opportunity to provide a meaningful name. If you’ve seen a database named SharePoint_AdminContent_[YOURGUIDHERE], you know what I’m talking about. Imagine you are supporting multiple SharePoint farms—is it easy to tell which database belongs to which farm? Shouldn’t it be?
Naming Convention
Here is the naming convention I recommend for SharePoint 2007:
SharePoint_[Farm Name]_[Database Type]_[Name] where database type is one of the following:
- Config
- Content
- WSSSearch
- SSP
- SSPSearch
For example, the AdventureWorks MOSS 2007 Enterprise Intranet farm would have the following databases:
Database | Purpose |
SharePoint_AWIntranet_Config | Farm Configuration |
SharePoint_AWIntranet_Content_CA | Central Administration Content |
SharePoint_AWIntranet_Content_Intranet | Company Intranet Content |
SharePoint_AWIntranet_Content_DefaultSSP | Default SSP Content |
SharePoint_AWIntranet_Content_DefaultSSPMySite | My Site Content for Default SSP |
SharePoint_AWIntranet_Content_OtherSSP | Other SSP Content |
SharePoint_AWIntranet_Content_OtherSSPMySite | My Site Content for Other SSP |
SharePoint_AWIntranet_SSP_DefaultSSP | Default SSP Database |
SharePoint_AWIntranet_SSP_OtherSSP | Other SSP Database |
SharePoint_AWIntranet_SSPSearch_DefaultSSP | Default SSP Search Database |
SharePoint_AWIntranet_SSPSearch_OtherSSP | Other SSP Search Database |
SharePoint_AWIntranet_WSSSearch_SPWFE01 | WSS Help Search Web Front End 1 |
SharePoint_AWIntranet_WSSSearch_SPWFE02 | WSS Help Search Web Front End 2 |
What I like about this naming convention is that the databases sort nicely. On a shared SQL Server, the SharePoint databases are separated from other application databases. Within SharePoint, each farm’s databases are together. Within each farm, the database types are together, and finally, a meaningful name makes it easy to determine which area it belongs to.
Implementing the Naming Convention
The best way to ensure consistency is to script configuration changes. I use PowerShell to tear down and build up my development environment, and I use the same approach to make changes to production servers. In a future post, I will provide a sample, but essentially, I create a script that takes an environment-specific XML configuration file as a parameter. For example:
Provision-Farm.ps1 johnpowell.development.xml
If you are lucky and brilliant enough to have a naming convention in place before the farm has been configured, it is much easier to implement the database naming convention. Implementing a standard after the fact will require additional steps. So let’s suppose you just installed the SharePoint bits and are ready to configure SharePoint. Stop! Rather than use the GUI, use PSConfig from the command line. This enables you to control the Central Administration content database name. For example, to create the configuration and CA database, use the following command:
psconfig.exe -cmd configdb -create –server sqlcluster.aw.com -database SharePoint_AWIntranet_Config -user svc-sp-aw-farm -password pass@word1 -admincontentdatabase SharePoint_AWIntranet_Content_CA
But what if you have an existing farm? In that case, this post describes how to rename the Central Administration content database and this post outlines the procedure for renaming other content databases.
Conclusion
It is good practice to have a database naming convention, and to define and document it during the planning phase. Although the SharePoint administrative interfaces do not enforce a database naming convention, with a little planning and governance you can implement a standard. Once a standard is defined, scripting configuration changes is the best way to ensure they are implemented consistently. For example, you could have a script Create-WebApplication.ps1 that takes a few parameters and implements your naming convention. SharePoint 2010 has significantly more databases that 2007, making database naming even more important. So here are your “go dos:”
- Define and document a database naming standard
- Create scripts to implement your standards
- Evaluate existing farms against your standards, and create a plan to rename them
Comments
Anonymous
December 29, 2009
Hi, This artical is very useful for me. I am a Share Point developer and always looking to learn something new. I would like to introduce another good SharePoint blog, Have a look. http://SharePointBank.com HarryAnonymous
January 12, 2010
John, how soon will you be ready to share your Provision-Farm.ps1 script? Do you know of any others that have been posted? Michael Herman SharePoint ArchitectAnonymous
February 02, 2010
The comment has been removedAnonymous
June 10, 2010
There will a <a href="http://www.sharepointfest.com">Sharepoint Convention</a> this coming September 23, 2010 - Denver, Colorado where you’ll be able to attend workshops and technical classes – taught by Microsoft Certified Trainers, Microsoft engineers and Microsoft MVPs.