SQL Server 2012笔记分享-55:高可用知识总结

-------------------------------------------------------------------------------------------------------------

故障转移群集

  1. 虽然群集的共享存储是单点的,但是从存储层面来看,是配置了存储的冗余的,所以也一定程度上实现了冗余。
  2. 在群集模式下,一个SQL群集实例只在一个节点上是活跃的,同一时刻每个SQL群集实例的服务只在群集中的一个节点上是处于运行的状态 ,所以如果有多个数据库,想把数据库放在不同节点上,实现负载的分离,那么需要为每一个数据库建立单独的实例,在整个SQL Server实例级别提供高可用性的保护,这一点和alwayon不太相同(alwayson是数据库级别的高可用);
  3. 有一些限制:1)对硬件资源的要求,依赖于特定的硬件资源条件,需要共享存储 。(共享磁盘可以在存储级别实现冗余);2)数据库文件只存一份(潜在的单点故障,但是在存储级别还是有很多手段可以保证可用性,例如RAID技术、HBA卡冗余)可以通过群集服务器节点和网络资源的冗余规避服务器硬件、网络、操作系统及SQL Server服务级别的单点故障 ;
  4. 群集中windows网络名称和IP(这个和SQL server没有太大关系)和SQL server网络名称不一样(每装一个SQL实例,就会有一个SQL网络名称);
  5. Window 2008群集支持四种仲裁机制。1、多数节点(不依赖共享磁盘,必须有一半或以上的节点互联互通,适用于三个以上节点的群集);2、节点和磁盘多数(除了每个节点具有投票权,仲裁磁盘也有一票,适用于偶数个节点的群集);3、多数节点和文件共享(用共享文件夹代替共享磁盘,当多个节点不能构成多数的时候,看哪个节点可以访问文件共享,这个节点就会多一票);4)非多数(仲裁磁盘)这个是看哪个节点拥有仲裁磁盘);
  6. 当SQL加入到群集之后,SQL服务已经由群集接管了;SQL服务作为一种资源存在于群集中,我们停止SQL服务的时候,不能使用服务管理器或配置管理器,而是在群集中使服务资源“脱机”;SQL server服务资源在群集中依赖一块磁盘和SQL网络名称;
  7. 使用SQL安装关盘的“维护”向导,可以删除群集的节点,对群集节点进行正常的卸载;
  8. 为SQL群集升级补丁的时候,在SQL 2005平台必须在活动节点安装,然后自动更新到被动节点,时间较长,服务有中断;而SQL 2008群集则先陆续安装被动节点,然后再打主动节点;
  9. 无论单机实例还是群集实例都支持修改SQL的网络名称,但是不能改实例名称;1)如果是单机实例:改完后要重启机器,而且在SQL中要做一个额外的步骤,可以参考SQL 的联机帮助文档;SQL server的网络名记录在master库的一张系统表中,所以修改完成后,要同步修改表;2)如果是群集实例,直接在群集管理器中进行修改,首先把群集网络名称资源脱机,然后在属性中修改就行了;
  10. SQL Server故障转移群集建立在Windows故障转移群集之上;
  11. 多个群集节点分别安装SQL Server服务组件,但互相协同作为一个整体对外提供同一个SQL实例的服务;
  12. 一旦实例的当前活动节点发生故障,其他节点上的群集服务自动协商并选择一个新的节点来接管该实例;
  13. SQL群集实例对外使用一个虚拟网络名称 (Virtual Network Name)提供服务,节点间的SQL服务故障转移对客户端是透明的 ;

-------------------------------------------------------------------------------------------------------------

数据库镜像

  1. 两个实例,只能在两个实例之间,不考虑见证的情况下,数据是只有两份;
  2. 数据库级别的,以数据库为单位进行镜像;
  3. 数据的传输是单向的,永远只能在单点写入;
  4. 在单个数据库级别提供高可用性;
  5. 不依赖于任何特定的硬件资源条件;
  6. 既提供了服务器资源的冗余,又提供了数据的冗余
  7. 数据库的故障转移对客户端不是完全透明的
  8. 主体和镜像是两个独立的SQL服务实例,有不同的网络标识
  9. 镜像数据库不能直接提供数据访问(所有的读写请求只能在主数据库上)
  10. 只有在同步模式下,才能使用图形界面进行数据库的切换,如果在异步模式下切换,需要使用SQL语句;
  11. 通过在两个SQL Server实例间实时的进行数据变化的传输(利用事务日志信息)来同时提供服务器资源和数据的冗余保护
  12. 一旦主体实例 (Principal)上的数据库发生故障,该数据库可以自动或手动的方式切换到镜像实例 (Mirror)上继续提供服务
  13. 自动的故障切换需要通过安装第三个见证实例 (Witness)来提供支持
  14. 当主体数据库恢复工作后,将自动成为新的镜像数据库并和当前的主体数据库继续进行数据的同步
  15. 数据的传输可以使用同步或异步的模式 1)同步模式:无数据损失的风险,但性能影响相对较大; 2)异步模式:有数据损失的风险,但对性能的影响很小 。区别在于:如果是同步模式,任何对事务提交的写入动作,写入完成后,并不是立刻确认提交成功,要等待对应的日志在镜像数据库也写入,并确认;异步模式是只要主的写入成功就算成功了,并不等待确认;所以如果是异步模式,可能会有数据丢失;

-------------------------------------------------------------------------------------------------------------

Alwayson

  1. 虽然还是加到一个群集之中,但是实例属于单机实例,真正故障切换的时候,实例是不会切换的,切换的只是数据库;
  2. 每一个可用性组对外有一个网络名称;
  3. alwayson的切换,取决于群集的投票权设置;
  4. 一个AG监听器对应了一个注册到DNS的名称和IP,正常情况连接
  5. 对数据库镜像功能的大幅提升,同时又结合了群集的一些优势
  6. 数据库的故障转移以可用性组为单位进行管理,同一组中可包含多个数据库
  7. 数据变化在主体实例和多个 (最多4个)从属实例之间实施进行传输
  8. 可用性组在实例间的故障转移可以自动或手动的进行,新的主体实例继续自动向其他所有从属实例进行数据同步
  9. 每个可用性组中的数据库的对外服务使用一个虚拟网络名称,从而故障转移的过程对于客户端是透明的
  10. 从属副本数据库允许进行数据库的只读访问操作
  11. 在单个或多个数据库级别提供高可用性的保护
  12. 不依赖于任何特定的硬件资源条件
  13. 既提供了服务器资源的多副本冗余,又提供了数据的多副本冗余
  14. 数据库的故障转移对客户端是完全透明的
  15. 数据的传输可以使用同步或异步的模式。同步模式:无数据损失的风险,但性能影响相对较大。异步模式:有数据损失的风险,但对性能的影响很小
  16. 从属副本数据库可以直接提供只读的数据访问操作,包括执行备份

-------------------------------------------------------------------------------------------------------------

SQL Server 2012笔记分享-55:高可用知识总结,布布扣,bubuko.com

时间: 2024-12-28 16:02:09

SQL Server 2012笔记分享-55:高可用知识总结的相关文章

SQL Server 2012笔记分享-1:SQL Server版本的演变

SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准. SQL server版本

SQL Server 2012笔记分享-7:高可用性功能的增强

(一)数据库镜像 1.支持压缩传输 2.支持自动页修复(msdb..suspect_pages) (二)数据库群集     1.支持多子网 SQL Server 多子网故障转移群集是一种配置,其中每个故障转移群集节点都连接到其他子网或其他子网组.这些子网可以处于同一位置中,也可以位于地理上分散的站点. 跨地理上分散的站点进行群集有时称为拉伸群集. 因为没有所有节点都可以访问的共享存储,所以在多个子网上的数据存储之间应该复制数据. 对于数据复制,有多个可用数据的副本. 因此,多子网故障转移群集除了

SQL Server 2012笔记分享-52:可用性指标

在电信和可靠性理论中,可用性是指: 系统,子系统,或者设备在开始一项任务时处在指定的可操作或可提交状态的程度,这项任务什么时候被用到是未知的,例如,是随机的.简单的说,可用性就是一个系统处在可工作状态的时间的比例.这通常被描述为任务可行率.数学上来讲,相当于1减去不可用性. 在一个给定的时间间隔内,对于一个功能个体来讲,总的可用时间所占的比例. 例如,一个一周里(168小时)有100小时可用的单元的可用性为100/168.可用性的值通常用小数来表示(如0.9998).在高可用性的应用中,使用一个

SQL Server 2012笔记分享-54:数据库文件管理1

(一)添加文件 可以在线执行,不影响数据库使用 ,如图. 添加完成后,如图所示. 也可以通过脚本的形式来添加,如图. (二)删除文件 可以在线执行,不影响数据库使用 . 只有当文件中的实际使用空间为空时才能被成功执行 . (三)移动文件到不同的磁盘路径下 必须先将数据库脱机,将导致数据库暂时不可用 详情参考:http://msdn.microsoft.com/zh-cn/library/ms345483.aspx 若要将移动数据或日志文件作为计划的重定位的一部分,请执行下列步骤: 1. 运行以下

SQL Server 2012笔记分享-38:了解系统数据库

master 数据库 记录 SQL Server 实例的所有系统级信息. master 数据库记录 SQL Server 系统的所有系统级信息.这包括实例范围的元数据(例如登录帐户).端点.链接服务器和系统配置设置.此外,master 数据库还记录了所有其他数据库的存在.数据库文件的位置以及 SQL Server 的初始化信息.因此,如果 master 数据库不可用,则 SQL Server 无法启动.在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Reso

SQL Server 2012笔记分享-3:版本对比

SQL server 2012的版本及版本的概述如下 SQL Server 版本 Enterprise(64 位和 32 位) 提供了全面的高端数据中心功能,性能极为快捷.虚拟化不受限制,还具有端到端的商业智能 - 可为关键任务工作负荷提供较高服务级别,支持最终用户访问深层数据. Business Intelligence(64 位和 32 位) 提供了综合性平台,可支持组织构建和部署安全.可扩展且易于管理的 BI 解决方案. 它提供基于浏览器的数据浏览与可见性等卓越功能.功能强大的数据集成功能

SQL Server 2012笔记分享-41:数据库整合建议

数据库整合的原则 如果有多台SQL,并且当前每台SQL的资源利用普遍不高,我们可以针对这些SQL进行整合. ========================================================= 整合方式     1)采用单个服务器多个实例部署.一个实例是一个资源使用和权限控制的边界,安全的边界:如果对权限要求比较高,独立性比较高,则可以考虑这种方式: 2)多个系统的数据库放在一个服务器的一个实例里面,这种方式管理简单:如果同一个业务组的安全管理界限比较模糊,这可以采

SQL Server 2012笔记分享-9:理解列存储索引

优点和使用场景 SQL Server 内存中列存储索引通过使用基于列的数据存储和基于列的查询处理来存储和管理数据. 列存储索引适合于主要执行大容量加载和只读查询的数据仓库工作负荷. 与传统面向行的存储方式相比,使用列存储索引存档可最多提高 10 倍查询性能,与使用非压缩数据大小相比,可提供多达 7 倍数据压缩率. SQL 2012和SQL 2014列存储索引的比较 在SQL server 2012中,一旦启用了列存储索引,将不能够对已启用列存储索引的数据存储执行变更写入操作,也就是说列存储索引适

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================