全てのDBをFailoverするT-SQL
SQL Server 2008 上で Mirroring されている複数の DB を一度に Failover する T-SQL です。
PRINCIPAL になっているサーバー上で実行すると全ての DB が Mirror になります。
DECLARE @DBNAME nvarchar(256)
DECLARE @SQLstring nvarchar(1256)
DECLARE Mirrord_Database CURSOR FOR
SELECT db_name(database_id) FROM sys.database_mirroring WHERE mirroring_role_desc = 'PRINCIPAL';
OPEN Mirrord_Database;
FETCH NEXT FROM Mirrord_Database INTO @DBNAME;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLstring = 'ALTER DATABASE ' + @DBNAME + ' SET PARTNER FAILOVER'
exec sp_executesql @SQLstring
FETCH NEXT FROM Mirrord_Database INTO @DBNAME;
END;
CLOSE Mirrord_Database;
DEALLOCATE Mirrord_Database;
GO



最近のコメント