- 系统环境
服务器 | 主体服务器 | 镜像服务器 | 见证服务器 |
---|---|---|---|
主机名 | dbma | dbmb | dbmw |
IP地址 | 192.168.154.191 | 192.168.154.192 | 192.168.154.193 |
防火墙端口 | TCP:1433,5022 | TCP:1433,5022 | TCP:1433,5022 |
操作系统 | Windows Server 2008 R2企业版 | Windows Server 2008 R2 企业版 | Windows Server 2008 R2 企业版 |
数据库版本 | MSSQL SERVER 2008 R2 标准版 | MSSQL SERVER 2008 R2 标准版 | MSSQL SERVER 2008 R2 标准版 |
数据库名称 | db1 | db1 | - |
乞丐关注:MSSQL SERVER 2008(R2)标准版/企业版支持数据库镜像功能,MSSQL SERVER 2008(R2)简易版仅支持做见证服务。仅MSSQL SERVER 2008(R2)标准版支持在非服务器操作系统Windows 7旗舰版/专业版/企业版上安装。
- 系统配置
-
配置IP地址(略)
-
配置主机名(略)
-
配置HOSTS,三台均需配置
分别在主体服务器、镜像服务器、见证服务器的c:\windows\system32\drivers\etc\hosts文件最后加入以下行:
192.168.154.191 dbma
192.168.154.192 dbmb
192.168.154.193 dbmw
修改完成后如下:# Copyright (c) 1993-2009 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 192.168.154.191 dbma 192.168.154.192 dbmb 192.168.154.193 dbmw
-
配置防火墙规则,三台均需配置。
开始 > 右键网络 > 属性 > Windows防火墙 > 高级设置 > 右键入站规则 > 新建规则
1)、规则类型
选择“端口”,单击“下一步” 。
2)、协议和端口
选择“TCP” 、选择“特定本地端口”、输入端口号1433,5022,单击“下一步” 。
3)、操作
选择“允许连接”,单击"下一步"。
4)、配置文件
勾选“域”、“专用”、“公用”,单击“下一步”。
5)、名称
输入MSSQL_TCP1433\5022,单击“完成”。 -
安装 .NET Framework 3.5.1,三台均需安装
开始 > 管理工具 > 服务器管理器 > 角色 > 添加角色
1)、开始之前
单击“下一步”。
2)、服务器角色
选择“应用程序服务器”,单击“下一步”。
2.1)、应用程序服务器
单击“下一步”。
2.2)、服务器角色
选择“.NET Framework 3.5.1”,单击“下一步”。
3)、确认
单击“安装”。
4)、进度
默认自动跳过。
5)、结果
单击“关闭”。
- 安装MSSQL SERVER 2008R2 标准版,三台均需安装。
1)、SQL Server安装中心,单击“安装” > 单击“全新安装或向现有安装添加功能”。
2)、安装程序支持规则,确保全部通过。单击“确定”。
3)、产品密钥,单击“下一步”。
4)、许可条款,勾选“我接受许可条款” > 单击“下一步”。
5)、安装程序支持文件,单击“安装”。
6)、安装程序支持规则,防火墙TCP端口1433/5022已开放警告可以忽略,单击“下一步 ”。
7)、设置角色,选择“SQL Server功能安装” > 单击“下一步”。
8)、功能选择,勾选“数据库引擎服务”、“管理工具 - 基本”、“管理工具 - 完整”、“SQL 客户端连接 SDK”,单击“下一步”。
9)、安装规则,单击“下一步”。
10)、实例配置,选择“默认实例 ” > 单击“下一步”。
11)、磁盘空间要求,单击“下一步”。
12)、服务器配置,单击“对所有SQL Server服务使用相同的账户”。
12.1)、单击“浏览” > 在“选择用户或组”中输入adminstrator > 单击“检查名称” > 单击“确定”。
12.2)、输入administrator账户密码,单击“确定”。
12.3)、单击“下一步”。
13)、选择“混合模式(SQL Server 身份验证和 Windows 身份验证)。” > 输入sa账户密码 > 单击“添加当前用户” > 单击“下一步”。
14)、错误报告,单击“下一步”。
15)、安装配置规则,单击“下一步”。
16)、准备安装,确认无误后单击“安装”。
17)、完成,成功安装后,单击“关闭”。
- 配置MSSQL SERVER镜像
/*--------------------------------主体服务器配置---------------------------------*/
USE master
GO
/*创建密钥*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'm5p@ss';
/*创建证书*/
CREATE CERTIFICATE dbma_cert
WITH Subject = 'dbma certificate',
Expiry_Date = '2029-1-1';
/*创建端点*/
IF NOT EXISTS (
SELECT 1
FROM sys.database_mirroring_endpoints) BEGIN
CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP (LISTENER_PORT = 5022,
LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION =
CERTIFICATE dbma_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL); END
/*创建登录、用户及端点登录授权*/
CREATE LOGIN dbmb_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbmb_user For Login dbmb_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbmb_login];
CREATE LOGIN dbmw_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbmw_user For Login dbmw_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbmw_login];
/*导出证书*/
BACKUP CERTIFICATE dbma_cert
TO FILE = 'C:\dbma_cert.cer';
/*--------------------------------镜像服务器配置---------------------------------*/
USE master
GO
/*创建密钥*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'm5p@ss';
/*创建证书*/
CREATE CERTIFICATE dbmb_cert
WITH Subject = 'dbmb certificate',
Expiry_Date = '2029-1-1';
/*创建端点*/
IF NOT EXISTS (
SELECT 1
FROM sys.database_mirroring_endpoints) BEGIN
CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP (LISTENER_PORT = 5022,
LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION =
CERTIFICATE dbmb_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL); END
/*创建登录、用户及端点登录授权*/
CREATE LOGIN dbma_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbma_user For Login dbma_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbma_login];
CREATE LOGIN dbmw_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbmw_user For Login dbmw_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbmw_login];
/*导出证书*/
BACKUP CERTIFICATE dbmb_cert
TO FILE = 'C:\dbmb_cert.cer';
/*--------------------------------见证服务器配置---------------------------------*/
USE master
GO
/*创建密钥*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'm5p@ss';
/*创建证书*/
CREATE CERTIFICATE dbmw_cert
WITH Subject = 'dbmw certificate',
Expiry_Date = '2029-1-1';
/*创建端点*/
IF NOT EXISTS (
SELECT 1
FROM sys.database_mirroring_endpoints) BEGIN
CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP (LISTENER_PORT = 5022,
LISTENER_IP = ALL) FOR DATABASE_MIRRORING (AUTHENTICATION =
CERTIFICATE dbmw_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL); END
/*创建登录、用户及端点登录授权*/
CREATE LOGIN dbma_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbma_user For Login dbma_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbma_login];
CREATE LOGIN dbmb_login WITH PASSWORD = 'm5p@ss';
CREATE USER dbmb_user For Login dbmb_login;
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [dbmb_login];
/*导出证书*/
BACKUP CERTIFICATE dbmw_cert
TO FILE = 'C:\dbmw_cert.cer';
将各自导出的证书复制到另外两台服务器的C盘根目录。
/*--------------------------------主体服务器配置---------------------------------*/
/*导入证书对用户进行授权*/
CREATE CERTIFICATE dbmb_cert
AUTHORIZATION dbmb_user
FROM FILE = 'C:\dbmb_cert.cer';
CREATE CERTIFICATE dbmw_cert
AUTHORIZATION dbmw_user
FROM FILE = 'C:\dbmw_cert.cer';
/*--------------------------------镜像服务器配置---------------------------------*/
/*导入证书对用户进行授权*/
CREATE CERTIFICATE dbma_cert
AUTHORIZATION dbma_user
FROM FILE = 'C:\dbma_cert.cer';
CREATE CERTIFICATE dbmw_cert
AUTHORIZATION dbmw_user
FROM FILE = 'C:\dbmw_cert.cer';
/*--------------------------------见证服务器配置---------------------------------*/
/*导入证书对用户进行授权*/
CREATE CERTIFICATE dbma_cert
AUTHORIZATION dbma_user
FROM FILE = 'C:\dbma_cert.cer';
CREATE CERTIFICATE dbmb_cert
AUTHORIZATION dbmb_user
FROM FILE = 'C:\dbmb_cert.cer';
- 创建数据库
在主体服务器上创建数据库db1 - 备份数据库
1)、完整备份,在主体服务器右键db1 > 任务 > 备份
2)、事务日志备份,在主体服务器上右键db1 > 任务 > 备份,看到备份到同一个文件不要奇怪,事务日志会追加到备份文件而不是覆盖。
- 将主体服务器上备份的文件复制到镜像服务器
- 还原数据库
1)、数据库还原,在镜像服务器上右键db1 > 任务 > 还原 > 数据库
1.1)、常规,选择“源设备”,选择备份文件,勾选“db1-完整 数据库 备份”
1.2)、选项,勾选“覆盖现有数据库”,勾选“不对数据库执行任何操作,不会滚未提交的事务。可以还原其他日志(A)。(RESTORE WITH NORECOVERY)”
2)、事务日志还原,在镜像服务器上右键db1 > 任务 > 还原 > 事务日志
2.1)、常规,选择“从文件或磁带”,选择备份文件,勾选“db1-事务日志 备份”。
2.2)、选项,选择“不对数据库执行任何操作,不会滚未提交的事务。可以还原其他事务日志(A)。(RESTORE WITH NORECOVERY)。”
- 创建数据库镜像
/*--------------------------------------镜像服务器配置------------------------------------*/
/*先!重要!!!,添加主体服务器partner*/
ALTER DATABASE DB1
SET PARTNER = 'TCP://dbma:5022';
/*--------------------------------------主体服务器配置------------------------------------*/
/*后!添加镜像服务器partner*/
ALTER DATABASE DB1
SET PARTNER = 'TCP://dbmb:5022';
/*添加见证服务器,也是在主体服务器上执行!!!*/
ALTER DATABASE DB1 SET WITNESS = 'TCP://dbmw:5022';
查看数据库镜像结果,主体服务器db1显示为“主体,已同步”,镜像服务器db1显示为“镜像,已同步 / 正在还原…”
- 故障转移测试
1)、主体服务器上右键 db1 > 任务 > 镜像,当前主体服务器为dbma,镜像服务器为dbmb,单击“故障转移”。
2)、故障转移成功后,主体服务器变更为dbmb,镜像服务器变更为dbma。也可以将主体服务器关机做故障转移测试。