做镜像设置之前,先设置端点。
/* 
三个SQL Server 2005的实例,如果在同一台机器上不允许端口相同。 
server1主数据库服务器        5011 
server2备份数据库服务器   5022 
jgj监视服务器                  5033 Server1上准备好要镜像的数据库,然后完整备份,将备份还原到Server2服务器上,注意使用NoRecovery选项 准备好以上后,开始执行代码: 
*/ --创建端点 
--Server1主数据库服务器 
CREATE ENDPOINT DbMirroring 
AS TCP(LISTENER_PORT=5011) 
        FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) 
Go 
Alter EndPoint DbMirroring STATE=STARTED 
Go --Server2备用服务器 
CREATE ENDPOINT DbMirroring 
AS TCP(LISTENER_PORT=5022) 
        FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) 
Go 
Alter EndPoint DbMirroring STATE=STARTED 
Go --JGJ见证服务器 
CREATE ENDPOINT DbMirroring 
        STATE=STARTED 
AS TCP(LISTENER_PORT=5033) 
        FOR DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED) 
go --配置安全性 
--Server1 
Use master 
Go 
Grant connect on endpoint::"DbMirroringEP" to "jgj\administrator" 
GO --Server2 
Use master 
Go 
Grant connect on endpoint::"DbMirroringEP" to "jgj\administrator" 
GO --jgj 
Use master 
Go 
Grant connect on endpoint::"DbMirroringEP" to "jgj\administrator" 
GO --启动镜像 
--Server2 
ALTER DATABASE DBMirror 
SET PARTNER=N'TCP://jgj:5011' 
Go --Server1 
ALTER DATABASE DBMirror 
SET PARTNER=N'TCP://jgj:5022' 
Go --指定见证服务器端点 
ALTER DATABASE DBMirror 
SET WITNESS=N'TCP://jgj:5033' 
GO --配置数据库镜像事务安全级别 
ALTER DATABASE DBMirror Set SAFETY Full 
GO 
--通过系统目录视图查看数据库镜像配置情况 
Select * from sys.database_mirroring_endpoints 
Select * from sys.database_mirroring where database_id=(select database_id from sys.databases where name =’ DBMirror’) --数据库镜像角色手动切换 
ALTER DATABASE DBMirror SET PARTNER FAILOVER 
--客户端重定向 
--(使用ADO.Net或SQL Native Client能够自动连接到故障转移后的伙伴) 
ConnectionString="Data Source=A;Failover Partner=B; 
    Initial Catalog=AdventureWorks;Integrated Security=True;"