简述SQL2008部署多实例集群(学习)

简述SQL2008部署多实例集群(学习)

数据库集群

      集群的存在意义是为了保证高可用、数据安全、扩展性以及负载均衡。

什么是集群?

     由二台或更多物理上独立的服务器共同组成的”虚拟”服务器称之为集群服务器。一项称做MicroSoft集群服务(MSCS)的微软服务可对集群服务器进 行管理。一个SQL Server集群是由二台或更多运行SQL Server的服务器(节点)组成的虚拟服务器。如果集群中的一个节点发生故障,集群中的另一个节点就承担这个故障节点的责任。认为一个 SQL Server集群能够给集群中的两个节点带来负载平衡,这是一种常见的误解。虽然这似乎很有用,但却是不正确的。这也意味着SQL Server集群不能真正提高性能,只能提供故障转移功能。故障转移就是当系统中的一台机器发生故障失去其功能时,另一台机器将接手运行它的SQL Server实例。这种功能失效可能是由于硬件故障、服务故障、人工故障或各种其它原因。

     对于在SQL Server 2008\2008R2下安装SQLServer 实例的集群似乎有越来越多的问题。与2005相比安装方法要求每个节点都被独立执行。下面我我们一起看一下如何实现集群的部署。

部署

    本篇针对Share-Disk架构的集群进行介绍,为了更好展现,我们假定一下几个场景(http://www.it165.net/admin/html/201403/2499.html–配置步骤):

    有3台计算机作为节点,分别叫做NodeA, NodeB 和NodeC ,IP地址如下。

  • NodeA – IP Address 10.10.10.10
  • NodeB – IP Address 10.10.10.11
  • NodeC – IP Address 10.10.10.12.

    三个节点是Windows集群SQLFAILSET01 (虚拟IP地址是10.10.10.20)的成员。在安装集群应用程序之前需要安装和配置这个基于Windows 集群的平台包括虚拟网络和IP。三个节点有独立的硬件(处理器,内存,NIC等等)和软件(操作系统)。安装两个新的SQLServer集群实例,使用唯 一的虚拟网络名称和实例名称。两个虚拟网络名称和虚拟IP地址如下:

  • SQLCLUST01 – Virtual IP Address 10.10.10.21
  • SQLCLUST02 – Virtual IP Address 10.10.10.22.

实例名:

  • INST1 (SQLCLUST01)
  • INST2 (SQLCLUST02)

<span>简述SQL2008部署多实例集群(学习)</span>

为了实现集群按照以下文档部署(配置步骤请参考连接或者其他文献):

  • 虚拟网络名称: 与你的计算机在Windows域中的名称一样。它一定是唯一并且命名遵循常规的名称命名限制如字符长度和特殊字符的使用,
  • 虚拟IP地址: 与分配客户\公共网络IP一样。这是一种共享的IP节点,用来接收跟指定实例通信的IP。
  • 共享驱动器: 这些共享存储是典型的通过光纤通道或者iSCSI连接的逻辑单元。这些逻辑单元对所有的集群几点公开并且分配唯一的逻辑驱动字符。不要与本地驱动器(通常由物理磁盘直接附加到服务器上)混淆。
  • NIC: 网络接口卡。

    如果你没有这样做,则需要将集群磁盘资源R、S和T故障转移部署到NodeA,同样也会安装软件组件和数据库到这些驱动器上。从在NodeA开启 SQLServer2008的安装开始,选择”New SQL Server failover cluster installation”。然后安装相关的基础选项配置以及许可。来到实例配置启动的安装部分。

    从功能列表中选择你想去安装的项目。下一个屏幕就是你说提供的实例配置,由实例名称和虚拟网络名称组成。对于NodeA使用如下配置:

network name – SQLCLUST01

instance name – INST1

 

在下一个屏幕详细展示集群资源组和共享磁盘资源(分配给新实例的)。对于NodeA如下配置:

SQL Server data – R:

SQL Server logs – S:

SQL Server backups – T:

    一旦这些信息被提交,系统将提示网络配置将使用之前选择的虚拟IP地址。剩下的安装明细包括了集群的安全策略,服务配置(服务账户明细)和数据库引擎配置 (包括账户配置、文件流设置和数据目录)。在数据目录的标签下,展示你选择的之前提供的驱动盘符–“驱动\目录” 结构。继续安装,只要安装成功你就会拥有第一个集群实例在NodeA上。

     接下来是NodeB,需要将故障转移集群磁盘资源L,M和N部署到NodeB上准备安装。

    现在在NodeB上开启SQLServer2008的安装并且再次点击”New SQL Server failover cluster installation”。根据之前的步骤安装,用网络名SQLCLUST02替换之前的,实例名称为INST2,逻辑磁盘驱动器为L(数据),M(日 志)和N(备份)。

    此刻,我们已经有了两个故障转移实例,分别部署到了NodeA和NodeB上。两个实例使用完全不同的磁盘驱动器和盘符,不同的Windows2008程序组和独立的虚拟网络名称,实例名称和虚拟IP地址。激活节点的信息如下:

  • SQLCLUST01\INST1 active on NodeA.
  • SQLCLUST02\INST2 active on NodeB.

 

    但是,目前对于每个实例都没有可以利用的故障转移服务器,现在来解决这个问题。为了让NodeC作为每个实例的转移节点,需要在NodeC上多次安装SQLServer实例。

    首先在C上开启2008的安装,并且选择”Add node to a SQL Server failover cluster”。安装程序将完成多个选择和提示等关键信息。之后,安装将提示集群节点配置。在这里选择你希望加入的SQLServer实例 (SQLCLUST01\INST1)。继续完成安装,就有了NodeC作为SQLCLUST01\INST1的故障转移“搭档”。

    接下来,第二次安装SQLServer 2008在NodeC上,选择”Add node to a SQL Server failover cluster”。再一次按照如上步骤,再一次按提示配置集群节点。选择(SQLCLUST02\INST2) 作为集群实例并且按照安装步骤完成。这是NodeC就成为了SQLCLUST02\INST2的故障转移“搭档”。

下面就是安装中心的截图以及选择的选项:

<span>简述SQL2008部署多实例集群(学习)</span>

下面的截图展示的是安装定义加入实例的地方:

<span>简述SQL2008部署多实例集群(学习)</span>

 

    如上所示,安装已经完毕,整个流程更加易于管理。当然利用新的气流特性和集成服务包或累积更新来减少可以减少部署新SQL服务器实例的时间。这里就不展开讲了。

 

总结

    本篇只是简单介绍了最简单的故障转移集群如何搭建。集群有很多种形式如本篇这种共享磁盘模式的数据库集群,以及实现负载均衡的集群等等,但是正如文章一开 始我提到的SQL Server集群不能真正提高性能。业务的应用场景各有不同还是需要不断地配置升级来完成匹配适应的集群。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119713.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • [转]AVALONDOCK 2.0入门指南第一部分

    [转]AVALONDOCK 2.0入门指南第一部分AvalonDock2.0可以用来为WPF创建一个类似VisualStudio的界面,深入理解如何使用AvalonDock进行开发是很重要的。在这个入门指南里,我将演示如何开始使用AvalonDock,下面的文章都是基于2.0版本的。并且不能用于早期的版本。AvalonDock是一个组合的布局模型,很多的控件都在视图上显示,一个DockingManager类也显示在停靠…

  • 知识图谱入门 【七】- 知识推理

    知识图谱入门 【七】- 知识推理知识推理任务分类所谓推理就是通过各种方法获取新的知识或者结论,这些知识和结论满足语义。其具体任务可分为可满足性(satisfiability)、分类(classification)、实例化(materialization)。可满足性可体现在本体上或概念上,在本体上即本体可满足性是检查一个本体是否可满足,即检查该本体是否有模型。如果本体不满足,说明存在不一致。概念可满足性即检查某一概念的可满足性,即检查是否具有模型,使得针对该概念的解释不是空集。上图是两个不可满足的例子,第一个本体那个是…

  • The method assertEquals(double, double) from the type Assert is deprecated

    The method assertEquals(double, double) from the type Assert is deprecated从网上下载的视频,看着视频做。居然和人家的不一样。assertEquals(doubleexpected,doubleactul)被废弃了,换成assertEquals(doubleexpected,doubleactul,doubledelta)也就是在原来的方法上加一个误差值(double类型)官方解释为:@Deprecatedstaticpublicvoi

  • goland 2021.5.1激活码【在线注册码/序列号/破解码】

    goland 2021.5.1激活码【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • mysql econnreset_Nodejs 套接字报错处理 Error: read ECONNRESET

    mysql econnreset_Nodejs 套接字报错处理 Error: read ECONNRESET错误信息:Error:readECONNRESETatTCP.onStreamRead(internal/stream_base_commons.js:162:27)出现上述情况一般是客户端关闭了socket连接导致的错误,这个错误会导致程序的异常退出解决办法:varpReq=http.request(options,function(pRes){cSock.writeHead…

  • mips交叉编译 error: ‘PTHREAD_MUTEX_ERRORCHECK_NP’ was not declared in this scope

    mips交叉编译 error: ‘PTHREAD_MUTEX_ERRORCHECK_NP’ was not declared in this scope

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号