日期:2014-05-18 浏览次数:20651 次
镜像应该可以。
--“数据库镜像”是一个主要用于提高数据库可用率的软件解决方案。镜像是基于每个数据库执行的,
--仅适用于使用完整恢复模式的数据库。简单恢复模式和大容量日志恢复模式不支持数据库镜像。
/*
三个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;"
------解决方案--------------------
双机热备简单的理解就是做个群集,两台服务器做相同的工作,通过一根心跳线连接起来,一台宕机另一台自动接管,不需要手工操作。
你可以搜索一下案例,看能不能满足你的需求。
------解决方案--------------------
其实cluster更适合.因为cluster是整个sql server服务全部切换,而镜像仅仅是同步某个数据库.