当前位置:文档之家› 数据库镜像搭建

数据库镜像搭建

数据库镜像搭建一概述数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。

数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器,保证数据的安全性。

优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。

二环境准备设备:三台服务器操作系统:Window 2003 Enterprise sp2SQL版本:只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。

其他版本即Express只能作为见证服务器。

如果不知道是什么版本,可以执行如下语句查看:1select serverproperty('productversion'),serverproperty('productlevel'),serverproperty('edition');若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。

若要用Transact-SQL 实现此目的,请使用ALTER DATABASE 语句:1USE master;2ALTER DATABASE<DatabaeName>3SET RECOVERY FULL;下面假设使用的数据库是ccerp_jzt,假设服务器A,B,CA为主体服务器,B为镜像服务器,C为见证服务器IP分别为:A:192.168.5.220B:192.168.5.209C: 192.168.5.208 (这些IP用于证书模式讲解)三三种模式的搭建数据库镜像要建立必需得建立信任关系,那么在WIN环境下建立信任关系可以通过三种方式:域帐户,证书信任,windows 匿名登陆,现就前两种模式做配置说明.3.1 域帐户模式:3.1.1 更改MS SQL Server服务的的登陆方式为域帐户登陆方式:进入windows服务管理控制台,更改服务登陆帐户,使域账户有更改MSSQL SERVER服务状态的权限.三台机器都做同样设置将域帐户赋予sysadmin角色3.1.2 建立端点:通过图形界面建立端点:启动SQLWB,按图一直下一步用域帐户登陆如果成功则:3.2 证书模式建立数据库镜像首先实现“主备数据库实例互通”,该操作只需要做一次,例如为了将两个SQL Server 2005的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。

3.2.1、创建证书--主体服务器执行:USE master;--删除已经有的密钥(错误信息:数据库中已存在主密钥。

执行此语句前,请先删除该主密钥)drop master keyCREATE MASTER KEY ENCRYPTION BY PASSWORD ='sumpojxc198023';CREATE CERTIFICATE HOST_A_cert WITH SUBJECT ='220_cert' ,START_DATE ='02/28/2011', EXPIRY_DATE='04/06/2099';--镜像服务执行:USE master;--删除已经有的密钥(错误信息:数据库中已存在主密钥。

执行此语句前,请先删除该主密钥)drop master keyCREATE MASTER KEY ENCRYPTION BY PASSWORD ='sumpojxc198023';CREATE CERTIFICATE HOST_B_cert WITH SUBJECT ='209_cert',START_DATE ='02/28/2011', EXPIRY_DATE='04/06/2099';;--见证服务器执行:USE master;--删除已经有的密钥(错误信息:数据库中已存在主密钥。

执行此语句前,请先删除该主密钥)drop master keyCREATE MASTER KEY ENCRYPTION BY PASSWORD ='sumpojxc198023';CREATE CERTIFICATE HOST_C_cert WITH SUBJECT ='208_cert',START_DATE ='02/28/2011', EXPIRY_DATE='04/06/2099';这个MASTER KEY对于每个sql server实例唯一的,如果数据库中已经创建了MASTER KEY,可以用如下的sql删除之后重新执行:DROP MASTER KEY ,同样CERTIFICATE 表示的是证书,如果证书HOST_A_cert已经存在,可以用如下的sql删除之后重新执行:DROP CERTIFICATE HOST_A_cert,3.2.2、创建连接的端点--主体服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE =ALL );--镜像服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITH M AES , ROLE =ALL );--见证服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_C_cert , ENCRYPTION = REQUIRED ALGORITH M AES , ROLE =ALL );如果数据库中已经创建了端点Endpoint_Mirroring,可以用如下的sql删除之后重新执行:DROP ENDPOINT Endpoint_Mirroring3.2.3、备份证书以备建立互联--主体服务器执行:BACKUP CERTIFICATE HOST_A_cert TO FILE='C:\CERTIFICATE\HOST_A_cert.cer';--镜像服务器执行:BACKUP CERTIFICATE HOST_B_cert TO FILE='C:\CERTIFICATE\HOST_B_cert.cer';--见证服务器执行:BACKUP CERTIFICATE HOST_C_cert TO FILE='C:\CERTIFICATE\HOST_C_cert.cer';3.2.4、互换证书将备份到C:\的证书进行互换,即HOST_A_cert.cer、HOST_C_cert.cer复制到镜像服务器的C:\。

HOST_B_cert.cer、HOST_C_cert.cer复制到主体服务器的C:\。

HOST_A_cert.cer、HOST_B_cert.cer 复制到见证服务器的C:\。

3.2.5、添加登陆名、用户以下操作只能通过命令行运行,通过图形界面无法完成。

(截至文档编写结束,SQL Server2005的不定号为SP2)--主体服务器执行:CREATE LOGIN HOST_B_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_B_user FOR LOGIN HOST_B_login;CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE='C:\CERTI FICATE\HOST_B_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_B_login];CREATE LOGIN HOST_C_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_C_user FOR LOGIN HOST_C_login;CREATE CERTIFICATE HOST_C_cert AUTHORIZATION HOST_C_user FROM FILE='C:\CERTI FICATE\HOST_C_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_C_login];--镜像服务器执行:CREATE LOGIN HOST_A_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_A_user FOR LOGIN HOST_A_login;CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE='C:\CERTIFICATE\HOST_A_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];CREATE LOGIN HOST_C_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_C_user FOR LOGIN HOST_C_login;CREATE CERTIFICATE HOST_C_cert AUTHORIZATION HOST_C_user FROM FILE='C:\CERTI FICATE\HOST_C_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_C_login];--见证服务器执行:CREATE LOGIN HOST_A_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_A_user FOR LOGIN HOST_A_login;CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE='C:\CERTI FICATE\HOST_A_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];CREATE LOGIN HOST_B_login WITH PASSWORD ='sumpojxc198023';CREATE USER HOST_B_user FOR LOGIN HOST_B_login;CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE='C:\CERTI FICATE\HOST_B_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_B_login];四.建立镜像关系:4.1、准备备机数据库承接上文,该节是描述如何同步主备数据库内的数据。

相关主题