This will be the first of a multi-part series covering SQL Server 2005 Database Mirroring and Windows SharePoint Services 3.0/Microsoft Office SharePoint Server 2007. This post will cover an introduction to SQL Server 2005 Database Mirroring, an overview, and the basics to include considerations and integration with SharePoint Products and Technologies. Part 2 will cover implementing SQL Server 2005 Database Mirroring with SharePoint Products and Technologies using NTLM authentication and dedicated (DAS) storage and failover examples.
SQL Server 2005 Database Mirroring has increased in popularity since its introduction and among the possible applications there is a growing demand to implement SQL Server 2005 Database mirroring for SharePoint Products and Technologies. This article outlines the considerations and implications of designing SQL Server 2005 Database Mirroring into your SharePoint Products and Technologies database architecture.
Understanding Basic Database Mirroring Concepts
SQL Server 2005 Database Mirroring provides high-availability and rapid failover by continuously sending a databases's transaction logs from an originating SQL server instance (principal) to a destination SQL server instance (mirror). Since the granularity of failover is at the database level unlike the server level failover in Microsoft Cluster Server, SQL Server 2005 Database Mirroring failover can provide an increase in failover performance and is more seamless and transparent to the application. A complete overview of Database Mirroring in SQL Server 2005 is available at http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx.
Considerations and Implications
There are several important factors to consider before implementing SQL Server 2005 Database Mirroring in your SharePoint Products and Technologies infrastructure. Prior to implementing SQL Server 2005 Database Mirroring, you should understand what problems you are trying to solve whether they are performance, availability, or geographic replication related.
Failover Handling
The introduction of a witness server in your SQL Server 2005 Database Mirroring architecture provides a mechanism for automatic failover; however, since mirroring granularity is at the database level, it is important to consider how to handle both single, multiple database and/or server failure. Since the principal and mirror server SQL server instances are unique, SharePoint Products and Technologies will need to be made aware of the database server hosting its content. The following sections details the STSADM operations that can be run to create this awareness in Windows SharePoint Services 3.0/Microsoft Office SharePoint Server 2007.
If an individual database fails you can set the database server using the SharePoint 3.0 Central Administration user interface or STSADM.
Content Database Failover
To change the principal server for a content database using STSADM run:
stsadm -o deletecontentdb -url "<http:// webapplicationurl>" -databasename "<contentdatabase>" -databaseserver "<failedprincipal>" stsadm -o addcontentdb -url "<http:// webapplication>" -databasename " <contentdatabase>" -databaseserver "<newprincial>"
To change the principal server for a content database using the SharePoint 3.0 Central Administration user interface:
Configuration Database and Administration Content Database Failover
The configuration and administration content database must reside on the same SQL database server, in the event that either of these databases fails, both must be failed over to the new database server. To failover the configuration and administration content database, run the following STSADM from a web front-end computer:
stsadm.exe -o renameserver -oldservername <failedprincipal> -newservername <newprincipal>
Restart Internet Information Services to commit the change.
Search Database Failover
The following STSADM operation should be run from one web front-end computer for each failed search database.
stsadm –o editssp –title <searchname> –ssplogin <username> –ssppassword <password> -searchdatabaseserver <newprincipal>
Shared Services Database Failover
The following STSADM operation should be run from one web front-end computer for each failed SSP database.
stsadm –o editssp –title <SSPName> –ssplogin <username> –ssppassword <password> -sspdatabaseserver <newprincipal>
The information provided above details the steps necessary to instantiate a manual failover of the various components of a SharePoint Products and Technologies server farm, for additional information on scripting automatic client-side redirect in the event of failover see Alerting on Database Mirroring Events and Database Mirroring in SQL Server 2005 under Resources and Recommended Reading. While it is possible to mirror the configuration and other databases associated with a SharePoint Products and Technologies server farm through the proper implementation of STSADM operations; support of SQL Server 2005 Database Mirroring for SharePoint Products and Technologies is limited to the content databases.
Resources and Recommended Reading
Database Mirroring in SQL Server 2005
SQL Server: Database Mirroring Best Practices and Performance Considerations
SQL Server 2005 Database Mirroring FAQ
Alerting on Database Mirroring Events
Using Database Mirroring with Office SharePoint Server and Windows SharePoint Services
SQL Server Performance Test Results
PingBack from http://www.virtual-generations.com/2007/04/24/sharepoint-2007-link-dump-4-24-2007/
Hi William, I've testing SQL 2005 Mirroring with MOSS but it's not working for me. I have 4 VPCs there I'm trying this: 3 SQL SP1 (principal, mirror and witness) and a MOSS RTM box. I installed MOSS using 7 accounts (Install account, farm account, moss app pool account, ssp app pool account, ssp service account, search account and index account). Well I configured SQL Mirroring successfully, and failover works fine (I tested it pausing the sql principal server and after a while put it back online, and it assumed de mirror role). So SQL is fine. The problem is when I try to reconfigure MOSS to point to the new principal server. According to the whitepaper I do first:
stsadm.exe -o renameserver -oldservername SQLPRINCIPAL -newservername SQLMIRROR
and restart MOSS. It SHOULD let me get to the Central Administration site to continue with the process. Well I can't get to the site. When I open the central admin site it tells me "Can't connect to the configuration database". If I switch SQL roles back to innitial state and issue stsadm -o renameserver on the reverse direction I get my portal back online. But certainly I can't take advantage of SQL mirroring since I can't reconfigure MOSS to point to the new principal database, at least, as I told you, following the whitepaper.
Any idea?
In this scenario I would first use STSADM to set the database server for the SharePoint 3.0 Central Administration content database by running STSADM -o deletecontentdb (see example), assuming the operation completes successfully, run the STSADM operations required to instruct SharePoint Products and Technologies of the new configuration database server or new principal in this case. Once Central Administration is available from a web front-end computer, you can begin the process of updating the database server hosting the content databases, shared services, etc.
Example:
stsadm -o deletecontentdb -url "<http://centraladminwebapplicationurl>" -databasename "<centraladmincontentdatabase>" -databaseserver "<failedprincipal>"
stsadm -o addcontentdb -url "<http://centraladminwebapplication>" -databasename " <centraladmincontentdatabase>" -databaseserver "<newprincial>"
Additional question, when talking about Search Database Failover, what do you mean by <searchname>? Is it the search database name?
Search name refers to the name assigned to the search database; I should mention that while mirroring the configuration and other databases can be acheived through proper implementation of STSADM operations, support of database mirroring for SharePoint Products and Technologies is limited to the content databases.
William, I tried to remove the central admin content db from the failed principal with the command listed above, but it tells me "Farm not available. Reference to object not stablished as an object instance." The db name is right, dbserver name is right too. Any suggestion?
Bill Baer put together some fantastic guidance on how to consider database mirroring as a backup for
The term replication comes up quite frequently in large deployments. It means a number of things to a
Bill Baer has started a series of blogs on the subject of SQL 2005 Mirroring as solution for failover
Bill Baer has started a series of blogs on the subject of SQL 2005 Mirroring as one solution for failover
This is the second part of a multi-part series on using SQL Server 2005 Database Mirroring with SharePoint
Hi William, if I run this command:
stsadm –o editssp –title WSS_Serach_MyServer –ssplogin user –ssppassword something -searchdatabaseserver MyNewServer
I get the following error:
The following arguments are invalid: searchdatabaseserver
Can you explain whats wrong?
Hi Bill Baer,
I am Abi and i aam learning database mirroring set up. Your article is very good and i learnt so many thing from your article. Also could you send me the article of clustering. I got lot of articles in clustering but what i am looking for has not yet been found.
I have the clustered Environment already set up. I need the documentation or artilcle that talks about managing the SQL server instances in the clustered environment. If you can, please send me the artilce or documents whatever you have to manage the SQL Server Instance in Clustered Environment.
I look forward to hearing from you soon.
Thank you.