SQLServer2005数据库镜像实施方案

-主体数据库(SQL2005),假定为主体数据库;

-镜像数据库(SQL2005),假定为镜像数据库;

-在实际使用过程中,主体和镜像的角色可以根据使用条件进行手工或者自动转换。

一、准备工作

1、  在主体数据库完全备份数据库,备份前确保数据库的恢复模型为FULL。

2、  在镜像数据库中将主体数据库的备份完全恢复。恢复时,在选项页面的恢复状态中,选择”不对数据库执行任何操作”

3、  备份主体数据库日志,在镜像数据库中恢复。恢复时,在选项页面的恢复状态中,选择”不对数据库执行任何操作”

日志备份-恢复操作必须在数据备份-恢复后执行。

4、  主体和镜像数据库的数据库名称必须保持一致。

5、  在承载数据库的服务器系统(windows2003)中分别添加相同用户名、密码的用户;并将此用户添加到system或者admin组中,使用此用户启动sql服务。

二、设置镜像数据库端点:

1、在主体和镜像数据库中分别执行下面的脚本为数据库添加镜像端点:

CREATE ENDPOINT DbMirroringEP    --创建端点
AS TCP (LISTENER_PORT = 5022    
--设置端点监听端口
FOR DATABASE_MIRRORING (ROLE = PARTNER, ENCRYPTION = SUPPORTED);
GO                                 
--设置加密

ALTER ENDPOINT DbMirroringEP STATE = STARTED      --激活端点
GO

2、检查端口是否打开:

SELECT * FROM sys.database_mirroring_endpoints
GO

并在服务器对象中可以看到:

 

3、在主数据库上,为数据指定角色和伙伴,右键单击数据库,选择:: 任务-镜像,如图:

 

 

―――在没有配置端点之前,红线内部分为灰色不可操作。分别按照图中格式指定数据库的伙伴以及身份。

―――配置安全选项:镜像服务器必须能够互相信任,在前面过程中使用了相同的用户名密码作为sql的服务账户,这里不需要配置,在跨广域网的连接种,作为验证的用户的权限不可过高。

―――配置数据库镜像事务安全级别
ALTER DATABASE [数据库名] 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 = 数据库名称')

三、故障转移

1、sql2005数据镜像有三种模型:

模型

故障转移方式

需要角色

数据安全

程序支持

高可用性

全自动

主体、镜像、见证

安全

Asp.net

高安全性

手动转移

主体、镜像

可能会丢失

Asp、asp.net

高效率

手动转移

主体、镜像

可能会丢失

Asp、asp.net

  2、手动转移故障,

―――单击下图中“故障转移”按钮可以将镜像和主体服务器角色对换:

 

―――如果主体服务器出现重大故障,无法操作,可以在镜像服务器上运行下面的脚本强制镜像数据变成主体数据:

ALTER DATABASE 数据库名 SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

―――在镜像服务器转变为主体服务器以后,需要在修改程序的数据库连接字符串中的IP地址。

―――完全自动转移的程序思路:程序首先尝试联系主体数据库,如果主体数据库连接超时,则连接镜像数据库,在同一子网内,设置较短的超时时间即可。

 

成功案例图如下:

    

OK, 数据库实现了故障转移,加强了安全性。 数据库转移了,那么其他服务程序当然需要手动修改IP,来对应新的数据库,才真正实现整个业务流程顺利进行。。 

 

posted @ 2008-06-19 02:35  冰封的心  阅读(467)  评论(0)    收藏  举报