我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复366或者20190908可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

本文参考了如下官方文档:

新建了一台虚拟机,配置和前面的LuoYongSQL1几乎一样,这两个虚拟机在同一个虚拟网络,同一个可用性集中。

也添加了一个磁盘:

然后我和第一台SQL Server一样安装了数据库,在安装的时候也添加了luoyong\crmsvc 和 luoyong\crmadmin 作为SQL Server管理员,并执行了如下的一些命令:

net localgroup administrators luoyong\crmsvc /add
net localgroup administrators luoyong\crmadmin /add New-NetFirewallRule -DisplayName "SQL Server 1433" -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow New-NetFirewallRule -DisplayName "HTTP 80" -Direction Inbound –Protocol TCP –LocalPort 80 -Action allow

还需要为每台SQL Server数据库服务器额外打开三个端口,我这里使用如下命令:

New-NetFirewallRule -DisplayName "TCP 59999" -Direction Inbound –Protocol TCP –LocalPort 59999 -Action allow

New-NetFirewallRule -DisplayName "TCP 58888" -Direction Inbound –Protocol TCP –LocalPort 58888 -Action allow

New-NetFirewallRule -DisplayName "TCP 5022" -Direction Inbound –Protocol TCP –LocalPort 5022 -Action allow

还需要为每台SQL Server数据库服务器启用故障转移集群功能,方法如下(也可以使用PowerShell命令来做:Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools):

点击【添加角色和功能】

点击【下一步】

点击【下一步】

直接点击【下一步】

选择【Failover Clustering】功能,在弹出的对话框中点击【添加功能】按钮。

点击【安装】按钮完成安装,记得是每台SQL Server数据库服务器都要安装该功能。如果安装失败,看下是否服务器在安装操作系统补丁。

在第一个SQL Server数据库服务器上打开【故障转移群集管理器】

右击故障转移群集管理器】,选择【创建群集】

欢迎页面点击【下一步】后,在【选择服务器】页面输入第一台SQL Server服务器的名称后点击添加,添加成功后点击【下一步】按钮。

选择【否】后点击【下一步】按钮

输入集群名称后点击【下一步】

直接点击【下一步】

10秒钟左右就会创建完成。

右击【集群核心资源】中的IP地址,选择属性。

设置为静态IP地址后输入一个可用的IP地址,然后应用并确定。

右击【集群核心资源】中的集群名称选择【联机】。

等待这两个资源都变成【联机】状态。

添加节点:

输入第二台SQL Server服务器名称并点击【添加】

测试环境,我这里选择否,生产环境建议点击是

点击【下一步】按钮。

添加成功。

因为Windows Server 2016或者更高版本支持云见证(Cloud Witness),也是推荐的做法,所以我这里使用这种方式。

首先需要在 https://portal.azure.com 中创建一个存储账户(Storage account)。

特别注意选择的我标记出来了

需要记录下Acsess Key 1备用

开始配置集群仲裁。

选择【选择仲裁见证】后点击【下一步】

选择【配置云见证】后点击下一步

输入如下,若是中国大陆的Azure,Azure服务终结点需要更改。

点击【下一步】

配置完成。

为两台SQL Server服务器启用可用性组,登录服务器后,打开 SQL Server 配置管理器程序,右击 SQL Server (MSSQLSERVER) 服务,点击属性。

选中【启用AlwaysOn可用性组】后点击【应用】,并点击【确定】按钮,然后重启SQL Server (MSSQLSERVER) 服务。

使用类似如下SQL对要参与的SQL Server数据库做个全备份:

USE master;
ALTER DATABASE Demo_MSCRM SET RECOVERY FULL;
GO
BACKUP DATABASE Demo_MSCRM
TO DISK = 'F:\DBBackups\Demo_MSCRMFullRM20190910.bak';
GO ALTER DATABASE MSCRM_CONFIG SET RECOVERY FULL;
GO
BACKUP DATABASE MSCRM_CONFIG
TO DISK = 'F:\DBBackups\MSCRM_CONFIGFullRM20190910.bak';
GO

创建可用性组,

输入名字,点击【下一步】

选择CRM相关的两个数据库,注意数据库要做过全备份,并且恢复模式为完整才可能满足先决条件。

点击【添加副本】

连接到第二台SQL Server服务器

可以看到端点是 5022端口

我改成同步:

如下不变:

如下不变

如下确认没有问题:

如下点击【完成】

显示面板

如下,确保没有错误:

然后在Azure Portal上创建负载均衡器(Load Balancer),

创建后端池

设置如下:

添加一个Health probes

设置如下:

添加一个Load balancing rules

设置如下

再添加一个Frontend IP configuration

设置如下:

再添加一个Health probes

配置如下:

再添加一个 Load balancing rules

设置如下:

在故障转移群集管理器中选择客户端访问点

创建客户端访问点

停止角色

记录下名称,并更改为静态IP,IP为azure上配置的负载均衡器的IP

点击属性

添加倚赖

执行如下powershell命令,前面四行代码中的参数值需要根据实际情况更改.更改后记得要将资源下线后重新上线就可以了。

第一个参数$ClusterNetworkName 可以通过运行命令Get-ClusterNetwork 来获取。

第二个参数$IPResourceName是windows集群管理器中点击左边的点击左边的角色(Roles),然后右击你要查看的IP资源的属性的Name就是。

第三个参数$ListenerILBIP是windows集群的侦听器IP地址,也就是客户端访问点的IP地址。

$ClusterNetworkName = "Cluster Network 1" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)
$IPResourceName = "IP 地址 10.1.0.0" # the IP Address resource name
$ListenerILBIP = "10.1.0.51" # the IP Address of the Internal Load Balancer (ILB). This is the static IP address for the load balancer you configured in the Azure portal.
[int]$ListenerProbePort = 59999 Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

第二个参数的看法截图如下:

启动角色

配置侦听器端口

设置为1433

至此完成了。

利用Azure虚拟机安装Dynamics 365 Customer Engagement之十:为SQL Server配置Always On的更多相关文章

  1. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十一:SQL Server配置Always On后D365的配置更改

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  3. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之四:组织单位服务安装账号设置

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  4. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之一:准备工作

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  5. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之五:安装SQL Server

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  6. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之六:安装后端服务器

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  8. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之七:安装前端服务器及部署管理器

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  9. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之八:安装报表扩展及最新更新

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

随机推荐

  1. C# get md5 from bytes

    static byte[] GetBytesFromDic(Dictionary<string,string> dic) { if(dic==null || !dic.Any()) { r ...

  2. HTTP认知(请求与响应)

    web的工作是:浏览器发送请求报文 + 服务端返回响应报文 通俗的说一下web工作的一个流程: 浏览器向服务端发送HTTP请求报文:这条请求报文组成由请求行.请求头.请求体三大部分组成: 1.请求行 ...

  3. 升级sharepoint2013遇到的坑

    现在要将sharepoint2010,ProjectServer2010升级到2016的版本,需要先升级到2013的版本. 按照官方文档,瞎搞将sharepoint2010升级到2013的版本,中间出 ...

  4. 使用 ASP.NET Core MVC 创建 Web API(六)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  5. Redux学习及应用

    Redux学习及应用 一:Redux的来源? Redux 是 JavaScript 状态容器,提供可预测化的状态管理.Redux是由 Flux 演变而来,但受 Elm 的启发,避开了 Flux 的复杂 ...

  6. 一起学Spring之基础篇

    本文主要讲解Spring的基础环境搭建以及演变由来,仅供学习分享使用,如有不足之处,还请指正. 什么是Spring ? Spring是一个开源框架,用来处理业务逻辑层和其他层之间的耦合问题.因此Spr ...

  7. 设置Redis的LRU策略

    概念 LRU(Least Recently Used)最近最少使用算法是众多置换算法中的一种. maxmemory Redis中有一个maxmemory概念,主要是为了将使用的内存限定在一个固定的大小 ...

  8. SSM框架之SpringMVC(3)常用注解

    SpringMVC(3)常用注解 1. RequestParam注解 1.作用:把请求中指定名称的参数传递给控制器中的形参赋值 2.属性: ​ 1.value:请求参数的每次 ​ 2.required ...

  9. SAP IDOC 通过采购订单输出消息生成销售订单

    题记: 在网络上看到一篇类似的公众号文章,叫<通过IDoc逐步指导PO&SO集成>,个人觉得整个配置过程中还是少了一些重点配置,也少了说明整个功能的核心逻辑,那么,趁着这个机会,就 ...

  10. iOS-关于自定义分段选择器的一些小事(Segmented)

    系统自带的分段选择就是 UISegmentedControl ,也有一些大佬自定义的 Segmented ,比如Git上的 HMSegmentedControl ,我以前最初的项目中,也有用到过,如果 ...