在做SQL故障转移群集的时候应该选择哪种模式?
2009-10-29 19:23
197 查看
如果我们的SQL Server要保证高可用性,那么可以采用故障转移群集。最简单的故障转移群集是两台服务器,一台做活动的服务器,另一台做备用服务器,这就是AP模式的Cluster。另外一个模式就是AA模式,也就是两台服务器都是运行SQL Server实例。
SQL Server不像Oracle一样有RAC,所以不可能说两台服务器同时运行同一个实例,想要两台服务器都使用起来的话,那么只有各自运行一个实例。
那么我们企业里面要做Cluster的时候,到底应该做AP模式的还是做AA模式的呢?
AP模式是在两台服务器上安装一个数据库实例,只有一台服务器负责该数据库实例的全部运算和操作,另外一台服务器闲置。当活动的服务器发生故障时,系统自动启动另一台服务器的实例,实现故障转移。AP模式的最大缺点就是资源利用率低,只有一台服务器在被使用。
AA模式是在两台服务器上安装两个数据库实例,每台服务器分别运行一个数据库实例。当某一台服务器发生故障时系统将把发生故障的服务器上的数据库实例切换到另一台服务器上运行,也就是说另一台服务器上同时运行两个实例,当服务器恢复正常后再手动将一个数据库实例切换回另一台服务器。AA模式保证了两台服务器资源都被利用。
关于1个数据库实例中2个数据库和2个数据库实例中各1个数据库的区别:
1. 1个数据库实例中的2个数据库都必须运行在同一台服务器上,所以如果2个数据库都具有大量的运算占用大量的资源,则可能造成数据库服务器压力过大,运行缓慢;而2个实例中各1个数据库则可以将每个实例部署在不同的服务器上,各自使用各自服务器的资源,相互没有影响。
2. 1个实例中2个数据库的相互访问比较简单,可以对2个数据库进行事务操作;而2个实例中的数据库要相互访问则需要通过链接服务器或者其他方式来访问,如果要在2个实例中进行事务操作则需要启用分布式事务MSDTC,使用分布式事务将会使事务时间变长,事务出现错误的可能更大,甚至出现各种灵异的错误,所以一般不推荐使用分布式事务。
所以,如果我们在有足够资源(也就是很有钱的意思)的情况下,而且想简单一点,那么我们就做AP模式。毕竟AA模式比AP模式更复杂,更难于管理。如果我们想充分利用服务器资源,服务器有限,而且多个数据库之间不存在分布式事务的话,那么用AA模式是一个不错的选择。
以以前的经验来看,最好不要使用分布式事务,会遇到各种各样灵异的问题。
SQL Server不像Oracle一样有RAC,所以不可能说两台服务器同时运行同一个实例,想要两台服务器都使用起来的话,那么只有各自运行一个实例。
那么我们企业里面要做Cluster的时候,到底应该做AP模式的还是做AA模式的呢?
AP模式是在两台服务器上安装一个数据库实例,只有一台服务器负责该数据库实例的全部运算和操作,另外一台服务器闲置。当活动的服务器发生故障时,系统自动启动另一台服务器的实例,实现故障转移。AP模式的最大缺点就是资源利用率低,只有一台服务器在被使用。
AA模式是在两台服务器上安装两个数据库实例,每台服务器分别运行一个数据库实例。当某一台服务器发生故障时系统将把发生故障的服务器上的数据库实例切换到另一台服务器上运行,也就是说另一台服务器上同时运行两个实例,当服务器恢复正常后再手动将一个数据库实例切换回另一台服务器。AA模式保证了两台服务器资源都被利用。
关于1个数据库实例中2个数据库和2个数据库实例中各1个数据库的区别:
1. 1个数据库实例中的2个数据库都必须运行在同一台服务器上,所以如果2个数据库都具有大量的运算占用大量的资源,则可能造成数据库服务器压力过大,运行缓慢;而2个实例中各1个数据库则可以将每个实例部署在不同的服务器上,各自使用各自服务器的资源,相互没有影响。
2. 1个实例中2个数据库的相互访问比较简单,可以对2个数据库进行事务操作;而2个实例中的数据库要相互访问则需要通过链接服务器或者其他方式来访问,如果要在2个实例中进行事务操作则需要启用分布式事务MSDTC,使用分布式事务将会使事务时间变长,事务出现错误的可能更大,甚至出现各种灵异的错误,所以一般不推荐使用分布式事务。
所以,如果我们在有足够资源(也就是很有钱的意思)的情况下,而且想简单一点,那么我们就做AP模式。毕竟AA模式比AP模式更复杂,更难于管理。如果我们想充分利用服务器资源,服务器有限,而且多个数据库之间不存在分布式事务的话,那么用AA模式是一个不错的选择。
以以前的经验来看,最好不要使用分布式事务,会遇到各种各样灵异的问题。
相关文章推荐
- 在做SQL故障转移群集的时候应该选择哪种模式?
- 在做SQL故障转移群集的时候应该选择哪种模式? 收藏 此文于2009-10-30被推荐到CSDN首页
- 在元素的装载数量明确的时候HashMap的大小应该如何选择。
- Weblogic选择产品模式的时候,报异常
- 什么时候应该使用 工厂模式
- Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
- 安装sql2008的时候选择的是Windows身份验证,现在我想用sql server身份验证,我应该到哪儿设置呢
- 接入google play service 的debug模式测试时候弹出选择谷歌账户后回调失败的原因【三个小坑真TM的经典】
- 怎么申请299$的企业开发者帐号 申请的时候应该选择哪个?
- Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
- HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?
- 选择网站建设公司的时候,我们应该选择怎么样的一个网站建设公司?
- 什么时候应该使用SQL Server锁模式
- 下面的代码告诉你返回的时候应该如何选择(返回的是数组还是对象)
- 程序员应该掌握的选择思维模式?
- (2)面试 --- 在元素的装载数量明确的时候HashMap的大小应该如何选择 || 二维数组打印对角线
- 当你开始学编程时,应该选择什么语言。
- 你应该选择哪一个Web前端框架?,选Vue还是React?
- 从java.lang.Runtime看单例懒汉饿汉模式的选择
- 使用Qt开发跨平台桌面应用时,应该选择widgets还是qml?