
XenDesktop – 使用 Witness 进行 SQL 镜像
我是 Oscar Mas,我想向您展示如何使用 Witness 实现基于 Microsoft SQL Server 的镜像系统, 这是使我们的 XenDesktop 数据库保持高可用性的完美推荐示例. 这样,我们将能够拥有一个带有 Microsoft SQL 故障转移的镜像.
进行自动故障转移, 镜子必须设置为“高安全模式”, 这是通过在配置向导中选择见证自动完成的,我们稍后将看到该向导. 我们要为他提供第三个仆人, 在我们的例子中称为 witness.ilba.cat, 这将使我们成为见证人的职能. 在下图中,我们可以看到 Witness 的高安全性模式:
整篇文章都是用 SQL 写的 2012 服务器和 SQL 2012 表达. sql1.ilba.cat 和 sql2.ilba.cat 服务器上的数据库具有 SQL 2012 Server 和 Witness 基于 SQL 2012 表达. 我已选择版本 2012, 但该过程在所有版本的 Microsoft SQL 中几乎相同. 我为您提供支持 Citrix 产品的 SQL 版本矩阵: http://support.citrix.com/article/CTX114501
逻辑方案如下:
在 3 台服务器上完成 SQL 安装后, 强烈建议您使用 Windows Update 工具更新您的服务器, WSUS 等....
在基于 SQL Server 和 SQL Express 的系统安装过程中, 已配置为支持混合模式下的系统 (SQL Server 身份验证和 Windows 身份验证). 安装 SQL Express, 这是通过保留安装向导提供的默认选项来完成的, 但在 SQL Server 安装中, 我们在两个 SQL Server 上启用了 replication 选项 (sql1.ilba.cat 和 sql2.ilba.cat), 如下图所示:
这是非常可取的, 安装管理工具 (管理工作室) 在所有服务器上, 这样,如果任何服务器发生任何事件, 我们可以管理并观察会发生什么.
我们将在 sql1.ilba.cat 中创建我们的数据库, 我们称之为 CTX_STORE. 稍后我们安装 XenDesktop 时, 我们将指示此数据库是我们要用于部署代理的数据库.
请记住,如果我们手动创建数据库, 然后,在部署 XenDesktop 时,我们将不得不使用向导提供的两个脚本手动更新数据库,用于安装 Delivery Controller. 一个脚本将从主 SQL Server 启动,另一个脚本将从执行镜像功能的服务器启动. 有关如何使用基于 SQL 镜像的 Delivery Controller 部署的更多信息, 看: http://support.citrix.com/article/CTX127359
我们将执行的过程,以便能够使用 Witness 配置我们的 Mirror 系统, 将是下一个:
- 创建 Server Pool
- SQL 端口检查
- 数据库导出
- 导入数据库
- 设置镜像
服务器组创建
继续 Mirror 配置之前, 我们将在 ADUC 中创建一个组 (Active Directory 用户和计算机). 从后来开始, 我们创建镜子的那一刻, 要求我们组. 您可以在配置镜像部分的末尾看到这一点. 就我而言,我创建了一个名为 SQLServers 的组:
在这个组中,我们将添加将构成我们的 Mirror 的三个服务器, 如以下屏幕截图所示:
SQL 端口检查
SQL Server 的默认版本允许我们访问 SQL 端口, 但在 SQL Express 中,我们必须启用它以通过默认端口进行侦听. SQL 的默认端口是 1433 TCP 协议. 验证我们的 SQL Server 是否确实在接受请求, 我们将从控制台启动以下命令:
C:窗户>netstat -ano | 找到 "1433"
数据库导出
此过程将从第一台服务器完成 (sql1.ilba.cat). 在数据库导出过程中我们将做什么, 是导出我们之前创建的数据库 (CTX_STORE) 和数据库日志. 这是必要的,以便以后能够配置 SQL Server 镜像
我们将启用数据库的“完全恢复模式”, 因为默认情况下,我们在 SQL 中创建的数据库, 来自“Simple Recovery Mode”. 我们将从数据库属性中执行此作,如下所示:
导出数据库, 我们将选择我们的数据库 (在我们的例子中CTX_STORE) ,然后在 “Task” 选项中, 我们会告诉你 “Back Up....”
我们将指示我们要进行的备份是 Full 以及我们将创建数据库备份的位置
导出数据库日志, 我们将选择我们的数据库 (在我们的例子中CTX_STORE) ,然后在 “Task” 选项中, 我们会告诉你 “Back Up....”
我们将指示我们要备份事务日志的备份以及我们将创建数据库日志备份的位置
数据库导入
此导入过程将从第二台服务器执行 (sql2.ilba.cat). 我们将复制我们在上一点中导出的数据, 服务器数据库, 来自服务器的日志如何 sql1.ilba.cat 到我们的镜像服务器: sql2.ilba.cat. 建议起点和目的地的路径相同.
从将要充当镜像的服务器中,我们将还原数据库. 要导入数据库,我们将转到“任务”选项,并指示“还原数据库...”。
我们将选择“设备”选项,然后选择数据库和我们之前导出的日志, 以便导入它们:
我们将在 “Recovery State” 中指示它是 “RESTORE WITH NORECOVERY”, 如下:
我们将能够观察数据库的恢复是如何开始的:
配置镜像
本节内容, 我们将在 Mirror settings (镜像) 设置中做什么. 我们将从服务器中选择我们的数据库 (sql1.ilba.cat ). 要创建数据库镜像,我们将转到“任务”选项,并指示“镜像...”。
将出现一个窗口, 我们将在其中转到选项“配置安全性...”。, 它将启动一个向导,以便能够配置我们的 Mirror 系统
我们将告诉 Wizard 我们想要 Witness, 压 “是的”:
然后, 服务器将要求我们执行“主体服务器”的功能, 在我们的例子中 sql1.ilba.cat
随后, 要求我们提供服务器以执行“镜像服务器”的功能, 在我们的例子中 sql2.ilba.cat
最后, 服务器将要求我们执行“见证服务器”的功能, 在我们的例子中 witness.ilba.cat
在此步骤中, 我们将在帖子的开头指出我们创建的服务器组, 我们称之为 SQLServers:
我们将验证我们的镜像系统的配置是否正确, 设置完成后:
我们将指导您启动镜像, 如以下屏幕所示:
一旦镜像启动,我们将能够看到我们系统的配置, 其中主要是我们的服务器 sql1.ilba.cat, 将充当 Mirror 的服务器是 sql2.ilba.cat,将充当 Witness 的服务器是 witness.ilba.cat:
然后, 我们将在 SQL 资源管理器中看到哪个数据库是主数据库,哪个数据库执行镜像功能:
我希望它对您有所帮助. 此致敬意