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