环境:Windows Server 2003 Standard x64 + SQL Server 2005 Standard x64使用如下方式建立的数据库镜像CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456';
GO
CREATE CERTIFICATE CT_Server1 WITH SUBJECT = 'Database mirroring certification on Server1', START_DATE = '2011-01-01';
GO
CREATE ENDPOINT EP_Server1 STATE = STARTED AS TCP (LISTENER_PORT = 80, LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE CT_Server1, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL);
GO
BACKUP CERTIFICATE CT_Server1 TO FILE = 'CT_Server1.cer';
GOCREATE LOGIN DB_Mirroring WITH PASSWORD = '123456';
GO
CREATE USER DB_Mirroring FOR LOGIN DB_Mirroring;
GO-- 复制Server2上的证书,并导入
CREATE CERTIFICATE CT_Server2 AUTHORIZATION DB_Mirroring FROM FILE = 'CT_Server2.cer';
GO
GRANT CONNECT ON ENDPOINT::EP_Server1 TO DB_Mirroring;
GO备份Server1上的数据库,到Server2上还原WITH NORECOVERY
设置Server1上的数据库的PARTNER,设置Server2上的数据库的PARTNER
设置ALTER DATABASE <数据库> SET SAFETY FULL
目前手工故障转移已经可以了问题1:两台服务器的镜像Server1, Server2,如果Server1宕机或者断电,如何手工故障转移,现在故障转移是在Server1上执行
USE master;
ALTER DATABASE <数据库> SET PARTNER FAILOVER;但Server1宕机或者断电怎么做呢?
问题2:上述的配置是否能够自动故障转移?如果需要增加Witness (Server3),需要怎么做?
在Server3上是否需要导入Server1和Server2的证书?CREATE CERTIFICATE CT_Server1 AUTHORIZATION DB_Mirroring FROM FILE = 'CT_Server1.cer';
CREATE CERTIFICATE CT_Server2 AUTHORIZATION DB_Mirroring FROM FILE = 'CT_Server2.cer';
GO
GRANT CONNECT ON ENDPOINT::EP_Server3 TO DB_Mirroring;谢谢。