sql server 高可用镜像
时间:2019-08-23 15:22 来源:linux.it.net.cn 作者:IT
一、什么是数据库镜像
基本软件的高可用性解决方案
快速的故障转移恢复(3秒转移),低硬件成本
基于数据库级别的实现
二、数据库镜像中的服务器角色
主体服务器
承载主体数据库
接受用户连接和事务处理请求
镜像服务器
承载镜像数据库
作为主体数据库的热备份(主体数据库的变化及时传到镜像数据库中)
仅在故障转移后接受用户连接,事务处理请求。
见证服务器(监视)
监视服务器状态和连接性,实现自动自动故障转移
三、数据库镜像会话
会话初始化
镜像请求事务日志记录,与主体服务器实现同步
会话过程
主体服务器将日志记录传输给镜像服务器
各个角色之间相互监视会话状态
会话终结
发生故障转移
管理员终止数据库镜像
四 数据库镜像三种模式
操作模式
事务安全
传输机制
是否需要仲裁
见证服务器
故障转移类型
高可用
Full
同步
Y
Y
自动或手动
高级别保护
Full
同步
Y
N
仅手动
高性能
OFF
异步
N
N/A
仅强制
高可用:要求高服务可用性, 要求实现自动故障转移,确保数据的完整。
高级别保护模式: 数据完整性要求,不要求自动故障转移,对服务的可用性要求较低。
高性能保护模式:主体服务器和镜像服务器距离很远,通讯链路有明显的延迟,对性能的事要求高于数据的完整性。
五 配置演示
环境: 数据库版本 sqlserver 2012 系统版本windows server 2008 R2 域管理
mirroring测试场景
主体服务器--FETCHINGDATA49\MSSQLSERVERTWO tcp 5022 端口
镜像服务器--172.168.18.132\MSSQLSERVER2012 tcp 5022 端口
见证服务器--FETCHINGDATA49
镜像操作模式: 高可用. 事务安全:Full,传输机制:同步,是否仲裁:Y,见证服务器:Y,故障转移:自动。
--步骤(1) 【主体服务器】设置为完整恢复模式, 做一次完整备份和日志备份
ALTER DATABASE Mirroring_Test SET RECOVERY FULL
backup database Mirroring_Test to disk='C:\data\Mirroring_Test.bak' with init
backup log Mirroring_Test to disk='C:\data\Mirroring_Test.bak'
--步骤(2) 【镜像服务器】还原到镜像库上(将备份文件复制到镜像服务器目录还原)
--运行下面语句,使之创建镜像数据库,处于正在还原状态并且是覆盖。
restore database Mirroring_Test from disk='D:\data\Mirroring_Test.bak'
with file=1,
move N'Mirroring_Test' To N'D:\data\Mirroring_Test.mdf',
move N'Mirroring_Test_log' To N'D:\data\Mirroring_Test_log.ldf',
norecovery, replace
restore log Mirroring_Test from disk='D:\data\Mirroring_Test.bak' with file=2,norecovery
在各服务器创建各端口
--步骤(3) 创建端点 【主体服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)
-- 【镜像服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)
--【见证服务器】创建端点用于见证通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5023)
for database_mirroring(role=witness,Encryption=supported)
步骤4 创建connect(连接)权限。为三个数据库实例设置相同的账户名称和口令
步骤(5) 【主体服务器】配置镜像向导
测试
--测试手动故障转移(在主体服务器上执行)
ALTER DATABASE Mirroring_Test SET PARTNER failover
--测试自动故障转移(如在主体数据库服务器切断网线,或停止实例)
--测试数据同步在主体服务器上改动数据,在镜像数据库上创建快照查询
CREATE DATABASE snap_Mirroring_Test
ON (NAME=Mirroring_Test,FILENAME='D:\Snap_Mirroring_Test.snap')
AS SNAPSHOT OF Mirroring_Test
--删除快照
DROP DATABASE snap_Mirroring_Test
(责任编辑:IT)
一、什么是数据库镜像基本软件的高可用性解决方案 快速的故障转移恢复(3秒转移),低硬件成本 基于数据库级别的实现 二、数据库镜像中的服务器角色主体服务器 承载主体数据库 接受用户连接和事务处理请求 镜像服务器 承载镜像数据库 作为主体数据库的热备份(主体数据库的变化及时传到镜像数据库中) 仅在故障转移后接受用户连接,事务处理请求。 见证服务器(监视) 监视服务器状态和连接性,实现自动自动故障转移 三、数据库镜像会话会话初始化 镜像请求事务日志记录,与主体服务器实现同步 会话过程 主体服务器将日志记录传输给镜像服务器 各个角色之间相互监视会话状态 会话终结 发生故障转移 管理员终止数据库镜像 四 数据库镜像三种模式
高可用:要求高服务可用性, 要求实现自动故障转移,确保数据的完整。 高级别保护模式: 数据完整性要求,不要求自动故障转移,对服务的可用性要求较低。 高性能保护模式:主体服务器和镜像服务器距离很远,通讯链路有明显的延迟,对性能的事要求高于数据的完整性。 五 配置演示环境: 数据库版本 sqlserver 2012 系统版本windows server 2008 R2 域管理 mirroring测试场景 主体服务器--FETCHINGDATA49\MSSQLSERVERTWO tcp 5022 端口 镜像服务器--172.168.18.132\MSSQLSERVER2012 tcp 5022 端口 见证服务器--FETCHINGDATA49 镜像操作模式: 高可用. 事务安全:Full,传输机制:同步,是否仲裁:Y,见证服务器:Y,故障转移:自动。 --步骤(1) 【主体服务器】设置为完整恢复模式, 做一次完整备份和日志备份 ALTER DATABASE Mirroring_Test SET RECOVERY FULL backup database Mirroring_Test to disk='C:\data\Mirroring_Test.bak' with init backup log Mirroring_Test to disk='C:\data\Mirroring_Test.bak'
--步骤(2) 【镜像服务器】还原到镜像库上(将备份文件复制到镜像服务器目录还原) --运行下面语句,使之创建镜像数据库,处于正在还原状态并且是覆盖。 restore database Mirroring_Test from disk='D:\data\Mirroring_Test.bak' with file=1, move N'Mirroring_Test' To N'D:\data\Mirroring_Test.mdf', move N'Mirroring_Test_log' To N'D:\data\Mirroring_Test_log.ldf', norecovery, replace restore log Mirroring_Test from disk='D:\data\Mirroring_Test.bak' with file=2,norecovery
在各服务器创建各端口 --步骤(3) 创建端点 【主体服务器】创建端点用于伙伴通讯,激活端点 create endpoint Mirroring_Test as TCP (listener_port=5022) for database_mirroring(role=partner,Encryption=supported) -- 【镜像服务器】创建端点用于伙伴通讯,激活端点 create endpoint Mirroring_Test as TCP (listener_port=5022) for database_mirroring(role=partner,Encryption=supported) --【见证服务器】创建端点用于见证通讯,激活端点 create endpoint Mirroring_Test as TCP (listener_port=5023) for database_mirroring(role=witness,Encryption=supported)
步骤4 创建connect(连接)权限。为三个数据库实例设置相同的账户名称和口令
步骤(5) 【主体服务器】配置镜像向导
测试
--测试手动故障转移(在主体服务器上执行) ALTER DATABASE Mirroring_Test SET PARTNER failover --测试自动故障转移(如在主体数据库服务器切断网线,或停止实例) --测试数据同步在主体服务器上改动数据,在镜像数据库上创建快照查询 CREATE DATABASE snap_Mirroring_Test ON (NAME=Mirroring_Test,FILENAME='D:\Snap_Mirroring_Test.snap') AS SNAPSHOT OF Mirroring_Test
--删除快照
DROP DATABASE snap_Mirroring_Test |