欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

003.SQLServer数据库镜像高可用部署

程序员文章站 2022-06-26 20:22:14
一 数据库镜像部署准备 1.1 数据库镜像支持 有关对 SQL Server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/cc645993%28v%3dsq ......

一 数据库镜像部署准备

1.1 数据库镜像支持

有关对 sql server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/cc645993%28v%3dsql.110%29

1.2 其他前置条件

  • 若要建立镜像会话,伙伴双方和见证服务器(如果有)必须在相同版本的 sql server 上运行。
  • 确保两个伙伴(即主体服务器和镜像服务器)必须运行相同版本的 sql server。 见证服务器(如果有)在任意支持数据库镜像的 sql server 版本上运行。
  • 数据库必须使用完整恢复模式。 简单恢复模式和大容量日志恢复模式不支持数据库镜像。 因此,镜像数据库的大容量操作始终被完整地记入日志。
  • 验证镜像服务器是否能为镜像数据库提供足够的磁盘空间。
  • 在镜像服务器上创建镜像数据库时,请确保指定相同数据库名称 with norecovery 来还原主体数据库备份。 另外,还必须通过 with norecovery 应用在该备份执行后创建的所有日志备份。

注意:如果数据库镜像已经停止,则必须将对主体数据库执行的所有后续日志备份应用到镜像数据库中,然后才可以重新启动镜像。

1.3 其他限制

  • 只能镜像用户数据库。 不能镜像 master、 msdb、tempdb 或 model 数据库。
  • 镜像的数据库在数据库镜像会话过程中不能重命名。
  • 数据库镜像不支持 filestream。 不能在主体服务器上创建 filestream 文件组。 不能为包含 filestream 文件组的数据库配置数据库镜像。
  • 在 32 位系统上,由于受每个数据库镜像会话所占用的工作线程数限制,对于每个服务器实例,数据库镜像最多支持 10 个数据库。
  • 跨数据库事务和分布式事务均不支持数据库镜像。

二 部署规划准备

2.1 服务器规划

按照如下规划配置主机名(domain前缀)及ip。
服务器名称
描述
ip
dns
操作系统
数据库版本
dsserver.imxhy.com
域服务器+dns服务器
172.24.8.31
127.0.0.1
windows server 2008 r2
 
master.imxhy.com
主数据库服务器
172.24.8.32
172.24.8.31
windows server 2008 r2
sqlserver 2012 enterprise
slave.imxhy.com
镜像数据库服务器
172.24.8.33
172.24.8.31
windows server 2008 r2
sqlserver 2012 enterprise
arbit.imxhy.com
见证服务器
172.24.8.34
172.24.8.31
windows server 2008 r2
sqlserver 2012 enterprise
提示:为便于测试,本环境将所有节点的专用、公用、域网络的防火墙均关闭。

三 dns服务器安装

dsserver相关ip设置如下。
开始菜单 -> 管理工具 -> 服务器管理器 -> 角色 -> 添加角色,选择dns 服务器,下一步:
等待安装完成。
如下相关服务已安装完成。

四 安装 active directory 域服务

开始菜单 -> 管理工具 -> 服务器管理器 -> 角色 -> 添加角色,选择active directory 域服务。
等待安装完成。
如下相关服务已安装完成。
开始菜单 -> 运行 -> 输入命令 "dcpromo" ,进入域控制器服务向导。
提示:dcpromo 命令是一个 "开关" 命令。如果 windows server  2008 计算机是成员服务器,则 运行 dcpromo 命令会安装 ad 活动目录,将其升级为域控制器;如果windows server 2008 计算机已经是域控制器,则运行 dcpromo 命令会卸载 ad 活动目录,将其降级为成员服务器。
弹出 active direcotry 域服务安装向导,点击 "下一步" 按钮:
进入兼容性提醒页面,忽视即可,点击 "下一步" 按钮:
选择 "在新林中新建域”并点击",点击 "下一步" 按钮:
注意:如果是第一次搭建也是你整个内网中的第一台域控制器,那么需要选择第二项 "在新林中新建域",第一项是内网中已经存在 ad 环境再想搭建额外域控制器的时候使用的。
输入域名imxhy.com,这个需慎重,fqdn配置完毕之后修改相对麻烦且有风险,并点击 "下一步" 按钮:
进入林功能级别设置界面,选择 "windows server 2008 r2",然后点击 "下一步":
提示:如果你的 ad 中以后可能会出现 windows server 2003 系统的域控制器,请务必选择 windows server 2003 的域功能级别,否则之后 windows server 2003 的服务器做不了域控制器了,所以安装第一台 dc 的时候,可是选择的低级别的林功能,以后要升到 windows server 2008 的域功能级别是没问题的,若是选了 windows server 2008 的功能级别,降级比较困难。
其他域选项,若已安装,则会为灰色。
弹出 dns 提示框,可忽视,点击 "是" 按钮,继续安装:
进入ad 域的数据库文件、日志文件和共享文件位置设置页面,此处保持默认设置,点击 "下一步" 按钮:
进入 "域还原密码" 设置界面,此密码相当的重要,后续做数据库迁移、备份、整理、恢复的时候都可能用到,需要谨记:
进入 "摘要" 界面,显示之前设置的摘要信息,点击 "下一步" 按钮:
提示:此处可以点击 "导出设置" 到一个位置保持起来,以便后续排错时查阅,也可以作为 dc 安装时的无人值守安装的脚本。
安装向导进入配置过程
此时,ad  域服务已经安装完成。adds域控制器已经安装完成,在完成域控制器的安装后,系统会自动的将该服务器的用户账号转移到 ad 数据库中。
提示:安装完成后,建议重启服务器。
域控制器 dc 会将自己扮演的角色注册到 dns 服务器内,以便让其他计算机能够通过 dns 服务器来找到这台域控制器,因此先检查 dns 服务器内是否已经存在这些记录。
首先检查域控制器是否已经将其主机名与 ip 地址注册到 dns 服务器内,本域控制器也扮演dns服务器,则进入dns中查看,此处应该会有一个名称为 imxhy.com 的区域,主机(a)记录表示域控制器 dsserver.imxhy.com 已经正确地将其主机名与 ip 地址注册到 dns 服务器内。dns 客户端所提出的请求大多是正向解析,即通过 hostname 来解析 ip 地址对应与此处的正向查找区域;通过 ip 来查找 hostname 即为反向解析,对应于此处的反向查找区域。
如果域控制器已经正确地将其扮演的角色注册到 dns 服务器,则还应该有对应的 _tcp、_udp 等文件夹。在单击 _tcp 文件夹后可以看到如下所示的界面,其中数据类型为服务位置(srv)的 _ldap 记录,表示 dsserver.imxhy.com 已经正确地注册为域控制器。其中的 _gc 记录还可以看出全局编录服务器的角色也是由 dsserver.imxhy.com 扮演的。
dns 区域内包含这些数据后,其他要加入域的计算机就可以通过通过此区域来得知域控制器为 dsserver.imxhy.com。这些加入域的成员(域控制器、成员服务器、windows 8、windows 7、windows vista、windows xp professional 等)也会将其主机与 ip 地址数据注册到此区域内。

五 域用户创建及加入

5.1 域用户创建

开始菜单 -> 管理工具 -> active directory 用户和计算机
设置相关sqluser账号及密码。
设置符合一定密码复杂度要求的密码。
将sqluser加入到administrators管理组中。

5.2 加入域控

master相关ip设置如下。
高级 -> dns -> 此连接的 dns 后缀,添加域控的完整名称。
计算机右键 -> 属性 -> 高级系统设置 -> 计算机名 -> 更改
修改计算机名master,修改隶属于域:imxhy.com
点确定之后弹出一个输入在域控中建立的用户的用户名和密码。
提示加入成功,加入成功后建议重启计算机。
注意:master.imxhy.com、slave.imxhy.com、arbit.imxhy.com都需要配置相关dns为172.24.8.31,然后加入域“imxhy.com”,具体方法参考如上即可。

5.3 服务器配置域帐户管理员

在master.imxhy.com、slave.imxhy.com计算机继续使用本地管理员administrator登录,分别将“imxhy\sqluser”帐户添加为本机管理员,如图所示:
注销本地administrator,使用sqluser@imxhy.com用户登录,确认已具有管理员权限。

六 安装sqlserver 2012

6.1 使用向导安装

系统会自动检查安装环境,点击确认到下一步。
正版自带产品密钥,直接点击下一步。
勾选我接受许可条款,然后一直继续下一步。
进行产品更新。
勾选我接受许可条款,然后一直继续下一步。
检查安装程序支持规则。
采用默认sql server功能安装。
本实验安装主要功能,自行选择,安装路径采用默认,可根据需要自行选择。

提示:具体sqlserver功能模块介绍可参考:https://blog.csdn.net/m0_37154839/article/details/80233446。

默认实列即可。

 
检查磁盘空间要求。
服务器配置,将相关账户配置为域用户及密码,相关服务设置为自动启动。
其他相关组件如下即可。
建议使用混合模式,并添加当前域用户。
错误报告配置。
安装配置规则。
准备安装,可确认所有相关信息。
等待安装完成。
安装完成。

6.2 配置sqlserver以域帐户运行

分别在master.imxhy.com、slave.imxhy.com的“管理工具”中打开“服务”(或者用“sql server 配置管理器”),修改sql server实例的属性,将登录身份改为“imxhy\sqluser”。修改之后,重启sql server实例。
提示:安装过程中服务器配置已添加域账户可跳过此6.2步骤。
说明:如果sql server实例是通过不同的本地帐户启动的,那么在创建镜像时主体数据库会尝试用本机帐户去连接镜像数据库,最终会报错;
slave.imxhy.com、arbit.imxhy.com参考以上进行安装及配置。

6.3 启用tcp/ip协议和remotedac

打开sql server management studio,连接本地数据库,
选择对应服务器, 如master -> 方面。
选择“外围应用配置器” -> 将属性“remotedacenabled”的值改为“true”。
注意:slave.imxhy.com、arbit.imxhy.com参考以上进行安装及配置。

七 测试数据库准备工作

7.1 master节点新建用户同步的数据库

在master.imxhy.com(主体服务器)打开sql server management studio,右键”数据库” -> “新建数据库”。
在”常规“页面输入数据库名称,本实验为mdb。
在”选项”页面确保恢复模式为”完整“。

7.2 备份master节点数据库mdb

右键”mdb”选择”任务“ -> ”备份“。
备份类型选择”完整“,点击”确定“。
完整的备份完毕后,再次选择备份类型为”事务日志“,点击”确定“完成对事务日志的备份。
提示:默认备份路径为:c:\program files\microsoft sql server\mssql11.mssqlserver\mssql\backup。

7.3 slave节点新建用户同步的数据库

在slave.imxhy.com(镜像服务器)打开sql server management studio,右键”数据库” -> “新建数据库”。
输入数据库名称,点击“确定”(此数据库名称必须与master中创建的数据库名称保持一致)

7.4 slave节点还原备份文件

将7.2所备份的文件mdb.bak复制至slave节点备份存放默认路径:c:\program files\microsoft sql server\mssql11.mssqlserver\mssql\backup。
右键新创建的数据库“mdb” -> “任务” -> “还原” -> “数据库”。
依次添加需要还原的相关文件。
勾选要还原的备份集。
在“选项”页面勾选“覆盖现有数据库”,恢复状态选择“restore with norecovery”,取消勾选“还原前进行结尾日志备份”,点击“确定”。
等待还原成功。
确认slave.imxhy.com(镜像服务器)处于正在还原。
提示:提示成功还原后slave节点mdb会一直处于正在还原状态,此状态为正常状态,表示等待master节点发起镜像同步。

八 配置数据库镜像

8.1 master节点配置镜像

在主体服务器sql01.huangjh.com右键 -> “db01” -> “任务” -> “镜像”。
点击“配置安全性”。
本实验规划见证服务器。
勾选“见证服务器实例”,下一步。
配置主题服务器实例及相应端口。
配置镜像服务器,可通过浏览或手动输入镜像服务器名称slave,点击”连接”。
 
配置镜像服务器,可通过浏览或手动输入见证服务器名称arbit,点击”连接”。
 
确认见证服务器及相关端口信息。
输入实例服务账户imxhy\sqluser,下一步。
确认相关信息。
等待配置端点完成。
点击“开始镜像”。
提示:若出现镜像失败可在hosts中手动添加相应解析,保证网络连通性正常。

九 检查与验证

9.1 状态检查

主体服务器相关数据库状态应该为(主体,已同步)
镜像服务器相关数据库状态应该为(客体,已同步 / 正在还原..)
提示:对于镜像数据库,是不允许删除和操作。

十 功能验证

10.1 状态验证

在主体服务器master右键数据库“mdb”选择“任务”—“启动数据库镜像监视器”。
在此页面可看到数据库镜像的同步状态等。

10.2 故障迁移测试

在主体服务器master右键数据库“mdb”选择“属性”,在主体服务器sql01右键数据库“db01”选择“属性”,选择页“镜像”点击“故障转移”。
是。
在slave上确认mdb状态是否变为(主体,已同步),可查看相关主体和镜像服务器已成功切换。

10.3 关机高可用测试

关闭此时的主体服务器,即slave,然后回到master,观察可知此时自动将主体故障转移到master中,且镜像服务器slave,状态为”没有连接:无法连接镜像服务器实例或见证服务器实例”。
将slave开机后恢复正常后,状态为”已同步:数据库已完全同步”,说明自动故障转移成功。
 
参考官方文档:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms189852(v%3dsql.110)
https://blog.csdn.net/kelyon/article/details/79207585
http://www.php.cn/mysql-tutorials-116073.html