WEB开发网
开发学院数据库MSSQL Server SQL Server的数据库镜像实施笔记 阅读

SQL Server的数据库镜像实施笔记

 2009-04-10 10:24:59 来源:WEB开发网   
核心提示:最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,SQL Server的数据库镜像实施笔记,一台见证服务器,一台做主数据库,GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];GO--必须要在镜像数据库中先设

最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像)

在虚拟机环境下部署成功,一切都是那么的完美。 故障转移3秒之内就可以顺利完成。

1.高可用性的实施代码:

主体数据库

/********************************************************
此脚本在主体服务器执行
********************************************************/
--镜像只支持完全恢复模式,在备份数据库之前检查恢复的模式
--对要镜像的数据库进行完整备份后,复制到镜像数据库以NORECOVERNY选项进行恢复
USE master;
--DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
GO
--为此服务器实例制作一个证书。
--DROP CERTIFICATE HOST_A_cert
CREATE CERTIFICATE HOST_A_cert
   WITH SUBJECT = 'HOST_A certificate',START_DATE  = '01/01/2009';
GO
--使用该证书为服务器实例创建一个镜像端点。
--DROP ENDPOINT Endpoint_Mirroring
CREATE ENDPOINT Endpoint_Mirroring
   STATE = STARTED
   AS TCP (
      LISTENER_PORT=5022
      , LISTENER_IP = ALL
   )
   FOR DATABASE_MIRRORING (
      AUTHENTICATION = CERTIFICATE HOST_A_cert
      , ENCRYPTION = REQUIRED ALGORITHM AES
      , ROLE = PARTNER
   );
GO

--备份 HOST_A 证书,并将其复制到其他机器,将 C:HOST_A_cert.cer 复制到 HOST_BHOST_C。
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'e:HOST_A_cert.cer';
GO
--为入站连接配置 Host_A
--在 HOST_A 上为 HOST_B 创建一个登录名。
USE master;
--DROP LOGIN HOST_B_login
CREATE LOGIN HOST_B_login WITH PASSWORD = 'password';
GO

--创建一个使用该登录名的用户。
--DROP USER HOST_B_user
CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
GO
--使证书与该用户关联。
--DROP CERTIFICATE HOST_B_cert
CREATE CERTIFICATE HOST_B_cert
   AUTHORIZATION HOST_B_user
   FROM FILE = 'e:HOST_B_cert.cer'
GO

--授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
GO
 
--在 HOST_A 上为 HOST_C 创建一个登录名。
USE master;
--DROP LOGIN HOST_C_login
CREATE LOGIN HOST_C_login WITH PASSWORD = 'password';
GO

--创建一个使用该登录名的用户。
--DROP USER HOST_C_user
CREATE USER HOST_C_user FOR LOGIN HOST_C_login;
GO
--使证书与该用户关联。
--DROP CERTIFICATE HOST_C_cert
CREATE CERTIFICATE HOST_C_cert
   AUTHORIZATION HOST_C_user
   FROM FILE = 'e:HOST_C_cert.cer'
GO

--授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_C_login];
GO

USE master;
--DROP LOGIN HOST_A_login
CREATE LOGIN HOST_A_login WITH PASSWORD = 'password';
GO
--创建一个使用该登录名的用户。
--DROP USER HOST_A_user
CREATE USER HOST_A_user FOR CERTIFICATE HOST_A_cert;
GO
--授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
GO

--必须要在镜像数据库中先设置好伙伴后,才能在主体服务器执行
--在 HOST_A 的主体服务器实例上,将 HOST_B 上的服务器实例设置为伙伴(使其成为初始镜像服务器实例)。
ALTER DATABASE crm
    SET PARTNER = 'TCP://192.168.1.205:5022';
GO

--设置见证服务器
ALTER DATABASE crm SET WITNESS = N'TCP://192.168.1.204:5022';
GO

1 2 3 4 5 6  下一页

Tags:SQL Server 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接