SQL Server高可用的常见问题分析

每次谈到SQL Server的高可用,很多的DBA,特别是SQL Server DBA心里一痛:因为大家都认为SQL Server无法或者很难实现SQL Server。也有很多的DBA朋友脑袋一拍,给出答案“高可用不就是微软的那几个技术吗,如Replication, Failover Clustering”…

1.难道SQL Server在高可用上面就显得这么的无力吗?

回答:不是的,其实SQL Server很给力。

2.为什么很多人总是抱怨SQL Server中高可用很难实现呢?

这里从几个方面来说。

首先,就所接触到的很多的项目(欧美居多),这些项目中不乏所谓的海量数据,也有很多的高性能应用,后面采用的都是SQL Server,而且还没有采用第三方的数据库辅助软件。

其次,我们说说人的问题。人都有这样一个习惯:每次出现问题之后,第一反应就是逃避,然后找个好的理由或者替罪羊,最后搞来搞去,就开始怪技术本身不行。这就有点类似,菜鸟用宝刀的时候,杀不死人,不贵本身的能力不行,而是怪刀不好。说到这里,就想到之前的CSDN密码泄露问题,很多人居然大骂微软的技术不行,这让那些已经用微软技术实现高安全的应用的公司看笑话。

再次,以偏概全的概念!很多人以为Replication就是高可用了,于是就一股脑的指望Replication可以解决他们的问题,殊不知:Replication只是实现高可用中的一个重要的组件而已,而不是全部。说到这里,是我想起几个类似误解,“以为JQuery就是ajax技术”,殊不知,jquery只是一个框架,可以用来实现ajax而已。有人认为“架构设计就是设计模式和架构模式的使用”,其实架构设计就是一种思维,而那些模式仅仅只是一个小的手段而已,把架构设计比喻为一个大楼,那些模式充其量就是一些砖头,而不是全部。

同理,Replication也仅仅只是实现高可用中的“一块砖”。

最后,对于技术的掌握程度不够,导致很多人遇到问题时候无法解决。而且也不知道找谁解决,去哪里找等。

3.高可用是用一个软件或者产品就搞定的吗?

这里很多人想到的就是Oracle的RAC,还有一些第三方的产品。不同的产品,封装的程度不一样,有的产品把很多的东西都封装了,只需使用人员学习如何使用工具就OK,不用掌握细节。但是,使用这些产品的时候,在进行部署和操作的时候,实际上就是在按照产品设计人的思想在搭建高可用而已,只是我们认为这个过程是“使用手册”而已。

而SQL Server本身没有提供这样的完全封装的产品,但是高可用设计中需要的重要核心技术和组件都已经有了,“钉子,螺丝,材料”都有了,就看你如何组装起来。

同样的做菜材料和工具,高明的厨师做出来的是美味佳肴,而一般的厨师仅仅只是把菜搞熟而已。

4.高可用仅仅只是数据库技术吗?

实现高可用,不仅仅只是数据库层面上面的内容,其实更多需要的是设计和架构能力。需要知道,软件,硬件,操作系统,网络,数据库等技术。

而且高可用也不是一个具体的技术,而是概念,实现的方法就是千千万。有人说“高可用就是读写分离”,“高可用就是负载均衡”,对吗?用脚趾头都可以回答这些问题。

5.没有万能的产品和万能的方案,一切都是“看情况而定”

很多人在争论“无共享磁盘(数据库)”好,“水平拆分”好。这些说的直白一点:单独的讨论,没有任何的意义。不把技术用在具体的应用中,不带来经济价值,技术什么都不是。

产品,技术等本身都是有一定的使用范围和局限性的,很多社区的朋友在讨论的时候,总是喜欢一个万能的产品特性,例如,有人说“SQL Server 2012的AlwaysOn”可以实现高可用了。殊不知:技术是人在使用,产品只是我们人在设计中使用的一个零件而已,最后的设计还是看人。早在十多年前,就有很多的公司的大型应用就是采用SQL 2000做的,那时候,SQL Server还没有这么多的功能和组件。

时间: 2024-10-14 09:59:25

SQL Server高可用的常见问题分析的相关文章

SQL Server高可用的常见问题分析_MsSql

每次谈到SQL Server的高可用,很多的DBA,特别是SQL Server DBA心里一痛:因为大家都认为SQL Server无法或者很难实现SQL Server.也有很多的DBA朋友脑袋一拍,给出答案"高可用不就是微软的那几个技术吗,如Replication, Failover Clustering"- 1.难道SQL Server在高可用上面就显得这么的无力吗? 回答:不是的,其实SQL Server很给力. 2.为什么很多人总是抱怨SQL Server中高可用很难实现呢? 这

SQL Server高可用——日志传送(4-3)——使用

原文:SQL Server高可用--日志传送(4-3)--使用   顺接上一篇:SQL Server高可用--日志传送(4-2)--部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项.从上一篇可以看到,其实配置不难,难是难在一旦出现问题,如何处理.这些是4大高可用的同性.配置都不会很难,只是如何故障排除而已.     监控日志传送:       在配置好日志传送之后,需要进行监控,监控备份.复制及还原的作业运作情况.这三类作业任何一个没有成功都意味着日志传送失败. 有两种方法可以

SQL Server高可用——日志传送(4-1)——概论

原文:SQL Server高可用--日志传送(4-1)--概论  本文作为学习总结,部分内容出自联机丛书及其他书籍   日志传送是什么?          SQLServer 2012之前(2012出现了AlwaysOn),SQLServer存在四大高可用(集群/群集.日志传送.镜像和复制).本主题主要讨论其中的日志传送功能.但是由于工作原因,只能谈论到使用级别,不做太深入的研究.   现在先来说说日志传送(Log Shipping)是什么?         它是高可用的其中一种,可以搭配其他高

SQL Server高可用——日志传送(4-2)——部署

原文:SQL Server高可用--日志传送(4-2)--部署   前文再续,书接上一回.本章演示一下日志传送的具体过程   准备工作:   由于时间关系,已经装好了3台虚拟机,且同在一个域里面:         SQL01:主服务器 SQL02:辅助服务器 SQL03:监视服务器   初始配置:       这里是实验方便,正式环境应该由于特殊账号的读写权限.注意这里的读写权限不应该是sql内部的账号,如sa这些,而是sqlagent.SQLServer service这类型的账号,这些账号才

关于SQL SERVER高并发解决方案

原文:关于SQL SERVER高并发解决方案 现在大家都比较关心的问题就是在多用户高并发的情况下,如何开发系统,这对我们程序员来说,确实是值得研究,最近找工作面试时也经常被问到,其实我早有去关心和了解这类问题,但一直没有总结一下,导致面试时无法很完整全面的回答,所以今天我专门总结概况了一下关于SQL SERVER高并发解决方案,希望能帮助大家,若有不对之外,还请及时告之,谢谢! SQL SERVER高并发解决方案主要是从以下几个方面: 1.SQL语句优化: A.尽可能的精确查询条件及查询字段,缩

MS SQL Server数据库事务锁机制分析

server|数据|数据库 锁是网络数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性.各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别.目前,大多数数据库管理系统都或多或少具有自我调节.自我管理的功能,因此很多用户实际上不清楚锁的理论和所用数据库中锁的具体实现. Microsoft SQL Server(以下简称SQL Server)作为一种中小型数据库管理系统,已经得到了广泛的应用,该系统更强调由系统来管理锁.在用户有SQL请求时,系统分析请求,自

Linux高可用(HA)之Heartbeat+Nginx+MySQL+NFS实现WEB+SQL服务高可用

环境说明: node1:ZhongH100.wxjr.com.cn 172.16.6.100 node2:ZhongH101.wxjr.com.cn 172.16.6.101 NFS存储:ZhongH102.wxjr.com.cn 172.16.6.102 VIP:172.16.7.200 node1和node2的主机名.SSH互通 操作系统:都是CentOS 6.6 x86_64 (自己配置好yum源.epel源.关闭SELinux.关闭防火墙) 注意:是[root@ZhongH100 ~]还

SSAS:在SQL Server 2012下查看SSAS分析服务的模型及模型简介

在SSDT中部署一个 SSAS 项目到本地服务器上出现错误 You cannot deploy the model because the localhost deployment server is not running in multidimensional mode. 错误原因是因为我在本地安装 SQL Server 2012 的时候只选择安装了 Tabular Mode, 而这个Demo项 目是多维数据集项目, 在 SQL Server 2012 中被称之为 Multidimensio

SQL Server 2005中如何使用分析服务执行DDL任务

问题: 我们期待在我们的SQL Server分析服务服务器中自动执行任务.请问您能给我们讲解怎样在SSIS中使用分析服务执行DDL任务(Analysis Services Execute DDL Task)的细节吗? 专家解答: 分析服务执行DDL任务(Analysis Services Execute DDL Task)是一个很有用的工具,它可以让你用一个SQL Server分析服务实例做任何事情.例如,你可以备份一个数据库,处理一个数据分析立方体,创建一个分区.利用XML分析(XMLA)来执