Quick Contact

How to change a mirrored database server to principal

This script does a failover of all the databases in a database mirroring session to the Mirror server. This will be used in cases where the PRINCIPAL server is no longer available and the mirrored databases have to be brought online.   

NOTE: Run this script in the MIRRORED server instance 

SET NOCOUNT OFF  

DECLARE @strSQL NVARCHAR(200) --variable for dynamic SQL statement - variable size should change depending on the  

DECLARE @strDatabasename NVARCHAR(50) --variable for destination directory  

DECLARE MyCursor CURSOR FOR --used for cursor allocation  

SELECT name FROM master.sys.databases a 

INNER JOIN master.sys.database_mirroring b 

ON a.database_id=b.database_id 

WHERE NOT mirroring_guid IS NULL 

AND mirroring_role_desc='PRINCIPAL' 

OPEN MyCursor  

FETCH Next FROM MyCursor INTO @strDatabasename   

WHILE @@Fetch_Status = 0  

BEGIN  

---Run the ALTER DATABASE databaseName SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS 

SET @strSQL = 'ALTER DATABASE ' + @strDatabaseName + ' SET PARTNER FAILOVER' EXEC sp_executesql @strSQL  

PRINT 'Bringing ' + @strDatabaseName + ' ONLINE'  

PRINT '========================================'     

FETCH Next FROM MyCursor INTO @strDatabasename  

END   

CLOSE MyCursor  

DEALLOCATE MyCursor  

Additional Articles
X

Partners

© 2013 XGlobe Online Ltd.