- 浏览: 647613 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
mojingqing:
感谢!
MySQL修改my.ini后,出现错误:Incorrect information in file: '.\xx\xx.frm -
qq3061280:
qq3061280 写道
FATAL ERROR in native method: JDWP No transports i -
qq3061280:
FATAL ERROR in native method: JDWP No transports i -
xiebo1983:
http://sqkoo.com/mysql-function ...
Date format -
java_xiaoyi:
...
[SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
Internet的规模每一百天就会增长一倍,客户希望获得7天×24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Server Too Busy”及频繁的系统故障。
随着业务量的提高,以及访问量和数据流量的快速增长,网络各个核心部分的处理性能和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,必将造成现有资源的浪费,而且下一次业务量的提升,又将导致再一次硬件升级的高额成本投入。于是,负载均衡机制应运而生。
对于负载均衡,笔者经常接触的当属Oracle的负载均衡机制。下面,我们先简单了解Oracle的负载均衡的实现方案。
Real Application Clusters是双机并行服务器(8i及以前版本称作Oracle Parallel Server,OPS),用来在集群环境下实现多机共享数据库,以保证应用的高可用性,同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的排错和无断点恢复。它可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。若并行服务器中某节点失效,透明的应用程序容错能够把用户自动转接到另一节点上继续运行,应用程序在用户没有察觉的情况下继续执行。这使周期性和非周期性发生故障的系统增大了连续可用性。进程的失效可以完全透明地转移到另一节点上去,通过适当地配置,可以指定所有查询都在客户端进行缓存,这样它们便可以在转移后的节点上重新设置。
下面我们重点介绍Sql Server 2005是如何实现负载均衡的。
Sql Server 2005的新特性
端到端拓扑的事务性复制
SQL Server 2005对端到端(P2P)拓扑结构上事务性的复制加强了支持。P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换事务。
P2P拓扑是SQL Server的一个巨大进步。现在,多端点服务器可以更改数据,并且向其他的发布者复制事务。这就是说,订阅服务器不再被限制在主要的报告环境中,可以通过事务性负载全球共享的方式将服务器分布开来。当用户的数量增加的时候,只要简单地向这个群体中添加服务器即可。
除了将负载分布之外,这个拓扑结构还增加了可用性。如果任何一个点的服务器不可达,则池中其他服务器就会共享这个负载,因为每个服务器都有其他所有服务器上可获得的全部数据集合。
数据库镜像和快照
SQL Server 2005引入了数据库镜像的概念,来帮助获得高可用性。特别提醒的是,只要它正式发布了,数据库镜像就可以在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才会支持镜像。
数据库快照是SQL Server 2005中引入的另一项特性。快照是某一个时间点上的数据库的克隆。只要对镜像数据库进行了快照,就可以让用户查询快照。快照的生成通常只需要几秒钟,因为它实际上在这个过程中并没有拷贝任何数据。因此,要把负载分布到主服务器和备用服务器上,就可以将数据库做镜像,然后阶段性地对备份服务器进行快照。而且还可以使用快照在主服务器上进行报告。
软件实现SQL Server 2005的负载均衡
中间层
实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载来调整每次连接到哪个数据库。好处在两个方面:首先,它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。如果数据库也在公网上,1433端口是很容易被攻击的,所以要保护数据库与之的连接,就用到了中间层。它可以将数据库更加好地保护在内网。其次,连接数据库的所有连接都可以控制,更方便DBA对数据的管理,看哪些连接更耗费数据库资源,以便更好地优化代码。
但是,也有两点要注意:第一,必须要做成Windows的服务程序。Windows发展到今天,如果以一个集成的大系统来讲,做成服务程序更加稳定,也更加安全,这样做即使用户不登录机器,也可以使用。第二,必须要使用多个中间层。从中间层的作用可以看出,它承接了数据库的所有连接,所以,一旦出了问题,就会导致整个系统瘫痪。所以做多个中间层是必要的,这样,如果一个坏了可以登录到另一个。
实现多据库数据同步
中间层有了,下一步的工作是设置构建数据库集群。对于负载均衡,最重要的就是所有服务器的数据都是同步的。这是一个集群所必需的,因为,如果数据不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现一个数据库的数据同步。这里设置一个用于写入的数据库,设置两个用于读出的数据库,因为据统计,一般来讲,70%的数据库操作为读操作。
首先,在写入数据库上做一个发布服务器,主要基于SQL Server 2005的复制技术,将即将用到的表都选上。注意,在连接上要选用模拟用户,然后共享时选择sa用户,这样就可以将数据共享了。
其次,在两个读服务器上做订阅服务,要注意同样的事项,这样一个“一写两读”的数据库集群就完成了。
数据库的安全备份
在一个大的系统中,系统的无故障性是很重要的,但是在刚才的系统下,如果用于写的服务器突然坏了,整个系统就会出现问题,所以,再做个备份是必要的。
数据库镜像是SQL Server 2005大力推出的,它就是要实现数据库的安全转移,所以需要再单独拿出一台机器来做备份服务器,将完全镜像写入该服务器,这样,即使写入服务器坏了,它也可以自动转移到备份服务器上来,保证不影响用户。
这实际上就相当于实现了对服务器的容灾管理,但是有一点需要注意,在这种镜像的体系中,必须要有一台服务器作为监视服务器,以便察看哪台服务器坏了,用以在机器出错之后迅速调整。
回传数据库的状态
数据库服务器均已配完,整体的机器集群架构已经构建,接下来的工作就是配置程序。
首先,在读和写的服务器都放上一个监控程序,它同样必须是Windows的服务,这样更稳定;其次,它可以设定成每隔30秒或者一定时间,将服务器的CPU、内存、网卡流量和当前数据库状态等信息发送回来。在这里需要设置一个权值,用以衡量CPU、内存利用率等信息的各自比例。在这个系统中,建议以CPU利用率为准。
中间层实现的负载均衡
到此为止,所有的准备工作都已完成,包括数据库的建立和配置,中间层的位置,下面所作的就是用软件来实现这个负载均衡。
首先,当一个用户有数据库请求时,先判断是读还是写,如果是写的话,就直接返回写入服务器,这样当写服务器写完数据以后,差不多可以在3秒内返回其他两台机器。
其次,当遇到一个读的请求时,根据监控返回来的数据判断,根据刚才的权值返回一个当前最空闲的机器。需要注意的是,这时最好做一个记录器,用以保持一段时间的数值,可以让管理员自行设定,更好地做到几台数据库的压力平衡。
最后,如果为主的写入服务器突然坏掉,程序可以自动把备份的服务器切换过来,用刚才的备份服务器当作写服务器,然后做一个报警系统,用以通知管理员。同样,当监控服务器发现其他两台读服务器坏掉时,也会自动通知管理员,来处理服务器的异常情况,这样就可以保证系统的稳定运行,而且易于管理和维护。
总之,用软件和微软SQL Server 2005的一些新技术,可以很轻松地实现负载均衡,这样不但可以不用硬件来实现,方便管理员的操控,更有利于DBA管理数据库,及时发现问题。
数据库分布示意图
转自:http://media.ccidnet.com/art/3031/20080130/1358507_1.html
随着业务量的提高,以及访问量和数据流量的快速增长,网络各个核心部分的处理性能和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,必将造成现有资源的浪费,而且下一次业务量的提升,又将导致再一次硬件升级的高额成本投入。于是,负载均衡机制应运而生。
对于负载均衡,笔者经常接触的当属Oracle的负载均衡机制。下面,我们先简单了解Oracle的负载均衡的实现方案。
Real Application Clusters是双机并行服务器(8i及以前版本称作Oracle Parallel Server,OPS),用来在集群环境下实现多机共享数据库,以保证应用的高可用性,同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的排错和无断点恢复。它可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。若并行服务器中某节点失效,透明的应用程序容错能够把用户自动转接到另一节点上继续运行,应用程序在用户没有察觉的情况下继续执行。这使周期性和非周期性发生故障的系统增大了连续可用性。进程的失效可以完全透明地转移到另一节点上去,通过适当地配置,可以指定所有查询都在客户端进行缓存,这样它们便可以在转移后的节点上重新设置。
下面我们重点介绍Sql Server 2005是如何实现负载均衡的。
Sql Server 2005的新特性
端到端拓扑的事务性复制
SQL Server 2005对端到端(P2P)拓扑结构上事务性的复制加强了支持。P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换事务。
P2P拓扑是SQL Server的一个巨大进步。现在,多端点服务器可以更改数据,并且向其他的发布者复制事务。这就是说,订阅服务器不再被限制在主要的报告环境中,可以通过事务性负载全球共享的方式将服务器分布开来。当用户的数量增加的时候,只要简单地向这个群体中添加服务器即可。
除了将负载分布之外,这个拓扑结构还增加了可用性。如果任何一个点的服务器不可达,则池中其他服务器就会共享这个负载,因为每个服务器都有其他所有服务器上可获得的全部数据集合。
数据库镜像和快照
SQL Server 2005引入了数据库镜像的概念,来帮助获得高可用性。特别提醒的是,只要它正式发布了,数据库镜像就可以在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才会支持镜像。
数据库快照是SQL Server 2005中引入的另一项特性。快照是某一个时间点上的数据库的克隆。只要对镜像数据库进行了快照,就可以让用户查询快照。快照的生成通常只需要几秒钟,因为它实际上在这个过程中并没有拷贝任何数据。因此,要把负载分布到主服务器和备用服务器上,就可以将数据库做镜像,然后阶段性地对备份服务器进行快照。而且还可以使用快照在主服务器上进行报告。
软件实现SQL Server 2005的负载均衡
中间层
实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载来调整每次连接到哪个数据库。好处在两个方面:首先,它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。如果数据库也在公网上,1433端口是很容易被攻击的,所以要保护数据库与之的连接,就用到了中间层。它可以将数据库更加好地保护在内网。其次,连接数据库的所有连接都可以控制,更方便DBA对数据的管理,看哪些连接更耗费数据库资源,以便更好地优化代码。
但是,也有两点要注意:第一,必须要做成Windows的服务程序。Windows发展到今天,如果以一个集成的大系统来讲,做成服务程序更加稳定,也更加安全,这样做即使用户不登录机器,也可以使用。第二,必须要使用多个中间层。从中间层的作用可以看出,它承接了数据库的所有连接,所以,一旦出了问题,就会导致整个系统瘫痪。所以做多个中间层是必要的,这样,如果一个坏了可以登录到另一个。
实现多据库数据同步
中间层有了,下一步的工作是设置构建数据库集群。对于负载均衡,最重要的就是所有服务器的数据都是同步的。这是一个集群所必需的,因为,如果数据不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现一个数据库的数据同步。这里设置一个用于写入的数据库,设置两个用于读出的数据库,因为据统计,一般来讲,70%的数据库操作为读操作。
首先,在写入数据库上做一个发布服务器,主要基于SQL Server 2005的复制技术,将即将用到的表都选上。注意,在连接上要选用模拟用户,然后共享时选择sa用户,这样就可以将数据共享了。
其次,在两个读服务器上做订阅服务,要注意同样的事项,这样一个“一写两读”的数据库集群就完成了。
数据库的安全备份
在一个大的系统中,系统的无故障性是很重要的,但是在刚才的系统下,如果用于写的服务器突然坏了,整个系统就会出现问题,所以,再做个备份是必要的。
数据库镜像是SQL Server 2005大力推出的,它就是要实现数据库的安全转移,所以需要再单独拿出一台机器来做备份服务器,将完全镜像写入该服务器,这样,即使写入服务器坏了,它也可以自动转移到备份服务器上来,保证不影响用户。
这实际上就相当于实现了对服务器的容灾管理,但是有一点需要注意,在这种镜像的体系中,必须要有一台服务器作为监视服务器,以便察看哪台服务器坏了,用以在机器出错之后迅速调整。
回传数据库的状态
数据库服务器均已配完,整体的机器集群架构已经构建,接下来的工作就是配置程序。
首先,在读和写的服务器都放上一个监控程序,它同样必须是Windows的服务,这样更稳定;其次,它可以设定成每隔30秒或者一定时间,将服务器的CPU、内存、网卡流量和当前数据库状态等信息发送回来。在这里需要设置一个权值,用以衡量CPU、内存利用率等信息的各自比例。在这个系统中,建议以CPU利用率为准。
中间层实现的负载均衡
到此为止,所有的准备工作都已完成,包括数据库的建立和配置,中间层的位置,下面所作的就是用软件来实现这个负载均衡。
首先,当一个用户有数据库请求时,先判断是读还是写,如果是写的话,就直接返回写入服务器,这样当写服务器写完数据以后,差不多可以在3秒内返回其他两台机器。
其次,当遇到一个读的请求时,根据监控返回来的数据判断,根据刚才的权值返回一个当前最空闲的机器。需要注意的是,这时最好做一个记录器,用以保持一段时间的数值,可以让管理员自行设定,更好地做到几台数据库的压力平衡。
最后,如果为主的写入服务器突然坏掉,程序可以自动把备份的服务器切换过来,用刚才的备份服务器当作写服务器,然后做一个报警系统,用以通知管理员。同样,当监控服务器发现其他两台读服务器坏掉时,也会自动通知管理员,来处理服务器的异常情况,这样就可以保证系统的稳定运行,而且易于管理和维护。
总之,用软件和微软SQL Server 2005的一些新技术,可以很轻松地实现负载均衡,这样不但可以不用硬件来实现,方便管理员的操控,更有利于DBA管理数据库,及时发现问题。
数据库分布示意图
转自:http://media.ccidnet.com/art/3031/20080130/1358507_1.html
发表评论
-
设置mysql允许外网访问
2010-03-18 11:27 3539mysql 的root账户,我在连接时通常用的是localh ... -
MYSQL中的my.ini或my.cnf配置说明
2009-11-13 16:49 1852本文中的配置都是从《MySQL5权威指南(3rd)》中摘抄出来 ... -
mysql配置和优化
2009-09-05 15:18 2604在安装MySQL之前,先来了解一下相关的配置文件 MySQL ... -
MySQL修改my.ini后,出现错误:Incorrect information in file: '.\xx\xx.frm
2009-09-05 15:12 7784在本机测试的时候,没有出现这个问题,但外网架设的时候,就出现这 ... -
MySQL配置文件my.cnf中文版
2009-09-05 14:13 1021#BEGIN CONFIG INFO #DESCR: 4GB ... -
MYSQL远程连接速度慢的解决方法
2009-09-04 15:55 1961MYSQL远程连接速度慢的解决方法 在局域网内连接其他机器的 ... -
mysql 占用cpu过高
2009-04-17 15:06 3127mysql 最近因用户访问量的增大和数据的增多,导致占用cpu ... -
mysql 删除重复数据
2009-04-17 10:41 1093delete c_userfee as a from c_us ... -
Connections could not be acquired from the underly
2009-03-19 14:44 4203"Connections could not b ... -
不会使用索引,导致全表扫描情况
2009-03-12 09:41 1672不会使用索引,导致全表扫描情况 1.不要使用in操作符,这 ... -
sql cursor 从数据库中取多个值
2009-03-07 17:31 2228从数据库中去多个值然后再做些要完成的工作 declare @b ... -
mssql数据库转mysql
2008-08-23 16:28 4665在网上搜索了很多直接将mssql数据库转到mysql的方法和功 ... -
SQL Server 2000 Driver for JDBC: Connection reset
2008-08-22 10:02 5758SQL Server 2000 Driver for JDBC ... -
关于SQL Server 2005 服务器的内存设置
2008-03-22 11:07 4354SQL Server会把用过的数据放入cache,以便加速数据 ... -
了解SQL Server 2005五个有用的动态管理对象
2008-03-22 10:57 1362SQL Server 2005的新功能为动态管理对象,它们是在 ... -
SQL Server 2005 升级 hibernate
2008-03-19 16:32 2299SQL Server 由2000升级至2005,原来运行很好的 ... -
[SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
2008-03-19 11:10 22536问题:[SQLServer 2000 Driver for J ... -
sql 2005日志文件压缩
2008-03-18 13:56 2163/*--特别注意 请按步骤进行,未进行前面的步骤,请不要做后 ... -
SQL Server 数据库集群
2008-02-23 11:04 6522先引用几段文章: 1.数据 ... -
如何使用MSCS建立SQL Server集群
2008-02-23 09:53 1952集群是一种技术解决方 ...
相关推荐
在面对日益增长的互联网规模和客户对不间断服务的需求时,SQL Server 2005通过引入多种负载均衡策略,实现了在不显著增加硬件成本的情况下优化系统性能。 负载均衡是解决单一设备处理能力不足的有效手段,它能将...
2. **写负载均衡**:尽管SQL Server Always On不直接支持写操作的负载均衡,但可以通过其他方式间接实现。例如,通过分区表策略,将数据分布到多个数据库,然后将这些数据库放在不同的可用性组中,可以实现写操作的...
SQL Server 数据库服务器负载均衡集群的实现 SQL Server 数据库服务器是应用范围最广的数据库产品,并且越来越多地在大型和关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server ...
【SQL Server 2005与负载均衡】 在IT行业中,数据库管理是关键的一环,尤其是在高并发和大数据量的场景下。SQL Server 2005作为一个强大的关系型数据库管理系统,面临着如何处理日益增长的负载和确保服务连续性的...
在SQL Server性能优化的过程中,负载均衡是一个至关重要的概念,尤其对于处理大型数据库的场景。负载均衡旨在有效地分配系统资源,确保服务器性能的稳定性和高可用性,避免单一节点过载,提高整体系统的响应时间和...
SQL Server 2005发布订阅是数据库复制技术的一种,用于在多个服务器之间同步数据,以实现负载均衡和高可用性。在这个系统中,"发布"服务器作为数据的源头,而"订阅"服务器则接收并应用来自发布的更改。这种模式在...
SQL SERVER 2008负载均衡设计.pdf
10. **Web服务支持**:通过XML和Web服务接口,SQL Server 2005可以与.NET Framework无缝集成,实现跨平台的数据交互。 提到的"BT下载"是指使用BitTorrent协议进行文件传输,这是一种流行的P2P下载方式,允许多个...
SQL Server 2005 支持动态内存分配机制,可以根据当前的工作负载自动调整内存分配,这对于处理不均衡负载非常有效。例如,在执行大量读操作时,可以增加读缓存的比例;而在执行大量写操作时,则适当减少读缓存的比例...
或者地理负载均衡,IP地址客户可以在主要的数据中心和灾难恢复网站之间交换。你还可以利用缩小规模的方法来将你的数据分散到多个工作机器上。不再让1000个用户都连接到一个SQL Server上,而是让10个SQL Server上分别...
《C# 2005 SQLServer 2005数据库与网络开发》是一本深入探讨C#编程语言与SQL Server 2005数据库结合应用于网络开发的专业书籍。本书旨在帮助开发者掌握如何利用C# 2005的强大功能与SQL Server 2005的高效数据管理...
在以前的文章中,小编也总结了一些常见的“sqlserver集群”“sqlserver数据同步”“sqlserver故障转移”…等相关的实现技巧。今天就不仔细讲解了。 今天想推荐大家尝试使用第三方的组件和工具,典型的就是一款ICX...
SQL数据库负载均衡及容灾方案是保障业务连续性和数据安全的重要策略。以下将详细介绍这些主题: 1. **SQL 负载均衡**: 负载均衡是一种技术,用于在多台服务器之间分配工作负载,以优化资源利用率,提高响应时间,...
SQL Server 2005的负载均衡中间层是实现数据库负载均衡的关键组件。这个中间层作为一个代理,断开了应用程序和数据库的直接连接,所有应用程序的请求都通过中间层转发,使得DBA能够监控和控制数据库的访问,优化性能...
3. 负载均衡:虽然SQL Server群集不支持真正的负载均衡,但在手动或计划内维护期间,可以将工作负载转移到其他节点。 4. 扩展性:可以添加更多节点以增加资源,但不是线性扩展,因为只有一个活动实例。 四、实现...
总的来说,SQL Server 2005的订阅复制是一个复杂但高效的数据同步解决方案,适用于需要在多台服务器之间保持数据一致性的环境,如负载均衡和读写分离的数据库架构。正确配置和管理订阅复制可以帮助提升系统性能,...
5. **复制**:数据复制功能使得数据库能够在多个位置间同步,用于灾难恢复、负载均衡或者分布式应用。 6. **Reporting Services**:SQL Server 2005引入了 Reporting Services,提供了一整套企业级报表解决方案,...