SQL2005负载均衡1:实现方法
来源:互联网 发布:it领袖峰会 编辑:程序博客网 时间:2024/04/30 08:46
内容多,分三篇发。
第一篇:
过程有大量截图,难以一一上传,若有需要请到共享邮箱下载。
这几天整理了关于在sql server2005下如何配置对等事务复制的文档,也学习了下相关内容;发上来好上网友发表下意见;这样也方便我学习。
下载方法:登录邮箱 1007977992@qq.com 密码为 198758198758 已整理到收信箱邮箱独立密码为:1111
一:技术介绍
经过这几天的查找学习,我不认为单依靠数据库可以完成,负载均衡 为了提高服务器的性能和工作负载能力,企业通常会使用DNS服务器、网络地址转换等技术来实现多服务器负载均衡,特别是目前企业对外的互联网Web网站,许多都是通过几台服务器来完成服务器访问的负载均衡。
目前企业使用的所谓“负载均衡服务器”,实际上它是应用系统的一种控制服务器,所有用户的请求都首先到此服务器,然后由此服务器根据各个实际处理服务器状态将请求具体分配到某个实际处理服务器中,对外公开的域名与IP地址都是这台服务器。负载均衡控制与管理软件安装在这台服务器上,这台服务器一般只做负载均衡任务分配,但不是实际对网络请求进行处理的服务器。
以下是服务器负载均衡,并不是SQL数据库的负载均衡。
1、企业实现Web服务器负载均衡
为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略。通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份。并要求新系统应有一定的扩展性,如数据访问量继续增大,可再添加新的服务器加入负载均衡系统。
对于WEB服务应用,同时有几台机器提供服务,每台机器的状态可以设为regular(正常工作)或backup(备份状态),或者同时设定为regular状态。负载均衡设备根据管理员事先设定的负载算法和当前网络的实际的动态的负载情况决定下一个用户的请求将被重定向到的服务器。而这一切对于用户来说是完全透明的,用户完成了对WEB服务的请求,并不用关心具体是哪台服务器完成的。
2、使用网络地址转换实现多服务器负载均衡
支持负载均衡的地址转换网关中可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。然而硬件实现的负载控制器灵活性不强,不能支持更优化的负载均衡策略和更复杂的应用协议。
基于网络地址转换的负载均衡器可以有效的解决服务器端的CPU和磁盘I/O负载,然而负载均衡器本身的性能受网络I/O的限制,在一定硬件条件下具有一定的带宽限制,但可以通过改善算法和提高运行负载均衡程序的硬件性能,来提高这个带宽限制。不同的服务类型对不同的服务器资源进行占用,我们使用的负载衡量策略是使用同一个负载进行评估,这对于大多数条件是适合的,然而最好的办法是针对不同的资源,如CPU、磁盘I/O或网络I/O等,分别监视服务器负载,由中心控制器选择最合适的服务器分发客户请求。
3、使用DNS服务器实现负载均衡
访问企业网服务器的用户急剧增加,一台服务器难以满足用户的访问需要,那么如何才能保证用户的正常访问呢?解决方法有很多,如使用Windows 2000或Windows Server 2003提供网络负载均衡服务,但该服务的设置非常复杂。而通过DNS服务器实现网络负载均衡则是一种比较简单的方法。
企业网通常由很多子网构成,为了降低网络中的数据流量,客户机最好能访问处于同一子网内的Web服务器。虽然实现了网络负载均衡功能,但并不能保证客户访问的是本子网的Web服务器。其实这个问题也很好解决,只要启用DNS服务器的“启用网络掩码排序”功能即可。在DNS管理器窗口中,右键点击DNS服务器,在弹出的菜单中选择“属性”,然后在属性对话框中切换到“高级”选项卡,勾选“服务器选项”列表框中的“启用网络掩码排序”选项即可。这样客户机每次都能访问到本子网内的Web服务器了。完成以上设置后,就使DNS服务器实现了网络负载均衡功能,把客户的访问分担到每个Web服务器上,并且还减少了跨子网的网络通信流量,大大降低了企业网的通信负担。
4、企业实现SQL Server数据库服务器负载均衡
MS SQL Server数据库服务器可以说是应用范围最广的数据库产品,并且越来越多地在大型和比较关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server数据库要不停的进行处理、存储、查询的工作,这个时候企业就要考虑SQL Server数据库服务器的性能和速度及安全性了。然而,长期以来,SQL SERVER数据库服务器都只有“热备”的解决方案,而没有“负载均衡”和“集群”的解决方案。
随着数据库路由器软件ICX的出现,为基于MS SQL Server的数据库系统提供了一种更优秀的集群解决方案。它可以真正的实现SQL Server数据库服务器的动态负载均衡,提高性能和速度;它可以真正的保证SQL Server数据库服务器不间断的提供服务,在服务器发生故障的时候实时切换到其他服务器上继续提供服务,切换时间为“零”。数据库路由器是实时并发数据库事务处理同步复制器和负载平衡器。
所有的数据库客户都通过ICX访问数据库。当访问、查询SQL Server数据库的时候ICX可以根据实际情况分配服务器来提供服务,大大提高服务速度和优化性能,完成负载均衡。ICX可以同时连接多台数据库,这若干台数据库的内容在任何时刻由ICX保证是完全一致的。也就是说,ICX采用了全新的并发事务处理的方式,向连接的N台数据库同步复制事务处理,使得系统在任何时刻具有多个一致的最新逻辑数据库数据集。当其中一台数据库服务器发生故障的时候,ICX可以实时的、第一时间切换到其他服务器上来继续提供服务。真正的实现零时间的服务器切换,大大提高安全性,真正意义的实现服务器不间断服务。
5:当然自己可以DIY:用f5的网络负载均衡硬件和sql server的复制技术软件可以实现负载均衡,故障切换则需要windows的cluster或者sql server 2005的mirror。除了那个f5的硬件外,整个方案成本其实很低。
下列方案为:对等复制(SQL2005)实现负载均衡的典型方法
包含两个参与数据库的拓扑
上面每个关系图都显示了两个参与数据库,以及通过应用程序服务器将用户流量定向到数据库。此配置可用于从网站到工作组应用程序等多种应用程序,并具有下列优点:
由于将读取操作分散到两台服务器上,因此提高了读取的性能。
当需要维护或某一节点出现故障时,可以提供更高的可用性。
从这两张图中可以看到,读取活动在参与数据库间进行负载平衡,但更新的处理方式则有所不同:
在左图中(表分区),在两台服务器间对更新进行了分区。例如,如果数据库包含产品目录,则可以令自定义应用程序把对名称以 A-M 开头的产品进行的更新定向到节点 A,把对名称以 N-Z开头的产品进行的更新定向到节点 B。然后将更新复制到另一个节点。
在右图中(读写分流),所有更新都定向到节点 B。再从那里将更新复制到节点 A。如果 B 脱机(例如,为了维护),则应用程序服务器可以将所有活动定向到节点 A。当节点 B恢复联机状态后,更新可以流向 B,并且应用程序服务器可以将所有更新移动回节点 B,或继续将更新定向到节点 A。
对等复制对这两种方法均支持,但右图中的中心更新示例也经常同标准事务复制一起使用。
包含三个或更多参与数据库的拓扑
上图显示了三个参与数据库,它们作为一家在洛杉矶、伦敦和台北均设有办事处的国际软件支持单位的后端数据库。每个办事处的支持工程师接听客户电话,并输入和更新每个客户电话的相关信息。三个办事处的时区各相差八小时,因此不会出现工作日的重叠:台北办事处下班时,伦敦办事处正开始一天的工作。如果办事处下班时电话仍在进行中,则电话将被转接到下一个开始办公的办事处的代表。
每个地点都有一台数据库服务器和一台应用程序服务器,供支持工程师在输入和更新客户电话的相关信息时使用。拓扑按时间进行分区,因此更新只发生在正在办公的节点。然后更新流动到其他参与数据库。此拓扑具有下列优点:
独立,但不孤立:每个办事处都可以独立插入、更新或删除数据,还可以共享数据,因为数据将复制到其他所有的参与数据库。
出现故障或维护任一参与数据库的同时可提供更高的可用性。
上图显示了向三节点拓扑添加节点的过程。当出现下列情形时,可以添加一个节点:
因为又开设了一家办事处。
为了提供更高的可用性以支持维护或提高发生灾难性错误时的容错能力。
请注意:在三节点拓扑和四节点拓扑中,所有的数据库都向其他数据库发布和订阅,从而在需要维护或者一个或多个节点发生故障时,提供最大的可用性。添加节点后,必须针对性能以及部署和管理的复杂性来权衡可用性和可伸缩性的需要。
第二篇:
这几天整理了关于在sql server2005下如何配置对等事务复制的文档,也学习了下相关内容;发上来好上网友发表下意见;这样也方便我学习。
二:使用对等复制时注意事项:
一般注意事项
对等复制仅在 SQL Server 2005 Enterprise Edition中可用。
对等方服务器,断开再开启时,有可能需要重启代理。
所有参与数据库都应包含相同的架构和数据:参与数据库之间的对象名称、对象架构和发布名称都应相同。
建议每个节点都使用自己的分发数据库。这样将消除出现单点故障的可能性。
表和其他对象不能包含在一个发布数据库内的多个对等发布中。
必须为对等复制启用发布后,才能创建订阅。
必须使用备份或 replication support only选项对订阅进行初始化。
不提供冲突的检测和解决。对给定行的更新应该仅在一个数据库上进行,直到此数据库与对等方同步为止。例如,可以通过将一组行的更新定向到特定节点的应用程序来达到此目的。
建议不要使用标识列。使用标识时,必须手动管理所分配的每个参与数据库中表的范围。。
三:如何配置对等事务复制
A:准备工作
1:开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。
2:开启SQL Server 2005的代理服务。
3:设置SQL SERVER身份验证,解决连接时的权限问题(这里的设置是默认的,如果没有更改过,可以跳过这一步)
步骤为:对象资源管理器-----右击SQL实例-----属性----安全性----服务器身份验证------选“SQL Server和WINDOWS“,然后点确定。
4:将登录名“sa”的密码清空或设置为特定密码。
步骤为:如下图,点击属性-à在打开的属性页面,完成密码的清空或设置-à确定。
配置过程,统一用sa用户登录。
提示:1和2步,在SQL Server配置管理器中完成
第三篇:
这几天整理了关于在sql server2005下如何配置对等事务复制的文档,也学习了下相关内容;发上来好上网友发表下意见;这样也方便我学习。
过程有大量截图,难以一一上传,若有需要请到共享邮箱下载。
下载方法:登录邮箱 1007977992@qq.com 密码为 198758198758 已整理到收信箱邮箱独立密码为:1111
B:配置过程
B.1概述
初始拓扑包含 Server A、Server B和 Server C。在创建拓扑时,假设任一对等数据库中均没有发生活动。创建拓扑:
创建拓扑后,添加 Server D。在向现有拓扑中添加节点时,假设有活动发生以及系统停机时间必须尽量缩短。向现有拓扑中添加节点:
B.2创建对等复制拓扑详细过程
B.2.1为每个节点配置分发
1:在 Microsoft SQL Server Management Studio中连接到 Server A(必须对 Server B和 Server C重复此配置过程)。
注意:请通过“SQL Serve身份验证”和“sa”连接,如下图
2:展开服务器节点,右键单击“复制”文件夹,再单击“配置分发”.
3:在配置分发向导的“分发服务器”页上,选择分发服务器。
若要使用本地分发服务器,请选择“‘<服务器名称>'将充当自己的分发服务器;SQL Server 将创建分发数据库和日志”。---我们选择这项。
若要使用远程分发服务器,请选择“使用以下服务器作为分发服务器”,再选择一个服务器。该服务器必须已配置为分发服务器,并且启用发布服务器使用此分发服务器。如果选择远程分发服务器,必须在“管理密码”页上输入 Server A 连接到该分发服务器所用密码。此密码必须是在远程分发服务器上将 Server A启用为发布服务器时指定的密码。
单击下一步,若没开代理,则进入如下界面(这里默认就可以了);若已开启代理,则会去到第四步。
4:在“快照文件夹”页上,指定快照文件夹。
快照文件夹只是指定共享的目录。向此文件夹中执行读写操作的代理必须对其具有足够的访问权限。此目录存储第一个节点上的复制所需的对象;其他节点上的对等复制并不使用此目录,但配置分发服务器仍需要它。
(默认)
5:在“分发数据库”页上,指定分发数据库的名称。
分发数据库存储事务、元数据和历史数据。
(默认)
6在“发布服务器”页上,根据需要启用其他发布服务器将 Server A 用作远程分发服务器。
如果启用其他发布服务器将 Server A用作远程分发服务器,则必须在“分发服务器密码”页上输入发布服务器连接到分发服务器所用的密码。
(默认)
7:在“向导操作”页上,根据需要编写配置设置的脚本。
(默认)
如果选择了“生成包含配置颁发的步骤的脚本文件”,则下一步会出现,下图:
(默认)
8:下一步---》完成,全部成功。
B.2.2在第一个节点上创建发布
1:在 SQL Server Management Studio中连接到 Server A,然后展开服务器节点。
注意:请通过“SQL Serve身份验证”和“sa”连接
2:展开“复制”文件夹,再右键单击“本地发布”文件夹。单击“新建发布”。
3:在新建发布向导的“发布数据库”页上,选择要发布的数据库。
4:在“发布类型”页上,选择“事务性发布”
5:在“项目”页上,选择要发布的数据库对象。
单击下一步,若出现“项目问题”的界面,默认即可。
6:在“筛选表行”页上定义筛选器;不支持筛选对等发布。
(默认)
7:在“快照代理”页上,清除“立即创建快照”。
(默认)
8:在“代理安全性”页上,指定快照代理和日志读取器代理的凭据。
点击“安全设置”
选择:“在sql server代理服务账户下运行”,使用“sa”连接(这里是清空了密码的,请具体设置-à请确保每台服务的密码一致),如下图
单击确定
9:在“向导操作”页上,根据需要,可以选择为发布编写脚本。
默认即可
10:在“完成该向导”页中,为发布指定名称。发布名称在整个拓扑上必须一致,这样配置对等拓扑向导在每个节点上创建发布时就可以使用此名称。
10:完成-à全部成功。
B.2.3 为对等复制启用发布
1:展开 Server A上的“复制”文件夹,然后展开“本地发布”文件夹。
右键单击创建的发布,再单击“属性”。
2:在“发布属性 - <发布>”对话框中的“订阅选项”页上,为“允许对等订阅”属性选择 True值。
单击“确定”。(如果数据库过大,可能过程时间比较长。)
B.2.4初始化每个节点上的架构和数据
可按以下方法之一初始化对等方:
手动。使用 Integration Services (SSIS)、脚本或其他方法将 Server A上的架构和数据复制到 Server B 和 Server C。在将 Server B和 Server C 配置为对等方之前,请确保这些服务器上的架构和数据与 Server A 上的架构和数据相同。
通过将 Server A 上的发布数据库备份还原到 Server B和 Server C。
重要提示:
还原数据库时,请勿指定 KEEP_REPLICATION选项(对于 Transact-SQL)或“保留复制设置”选项(对于 SQL Server Management Studio)。运行配置对等拓扑向导时,复制会相应配置数据库。
备份包含完整的数据库,因此每个对等数据库初始化后都包含发布数据库的完整副本。备份包括:未指定为发布项目的表和所有数据,即使已经对某个表指定了行筛选器或列筛选器。
应由管理员或应用程序在还原备份后删除任何不需要的对象或数据。在后续同步中,只复制应用于指定为项目的表的数据更改。
B.2.5 在初始化配置过程中向拓扑中添加节点
1:右键单击在 Server A上创建的发布,再单击“配置对等拓扑”。可能需要刷新发布节点才能看到“配置对等拓扑”选项。
2:在配置对等拓扑向导的“发布”页上,将选中在 Server A上所创建的发布(也就是在B.2.2步骤所发布的内容)。
3:在“对等方”页上,添加 Server B,然后对 Server C重复此过程:
单击“添加 SQL Server”。
连接到“连接到服务器”对话框中指定的 Server B。Server B即显示在“对等服务器实例”列中。
从“对等数据库”菜单中选择 Server B上的数据库。
注意:
Server A 也将显示,但它已进行过配置,因此不要选中 Server A的复选框。
4:在“日志读取器代理安全性”页上,为每个节点上的日志读取器代理指定凭据。
选择:“在sql server代理服务账户下运行”,使用“sa”连接(这里是清空了密码的,请具体设置-à请确保每台服务的密码一致),如下图
选择“对所在其他对等方使用第一逐步形成对等方的全设置”,如下图:
5:在“分发代理安全性”页上,为分发代理(为每个节点的订阅提供服务)指定凭据。
6:在“新对等方初始化”页上,选择“我手动创建了对等数据库或还原了原始发布数据库的备份,该发布数据库自这次备份以来不曾发生更改”。
完成向导。在“正在生成对等拓扑”页上,发出警告,指示已有 Server A的日志读取器。这是信息性警告,无需执行任何操作。(只有一个警告,其他全部成功)
完成后如下图:
B.2.6 对等验证
修改任一台服务器上面的数据,别的服务器也会同步。
过程有大量截图,难以一一上传,若有需要请到共享邮箱下载。
- SQL2005负载均衡1:实现方法
- 负载均衡软件实现方法
- 负载均衡方案实现1
- 网络负载均衡的实现方法
- 两类负载均衡的实现方法
- Turbolinux中实现负载均衡的方法
- WEB负载均衡实现方法学习小结
- 虚拟服务器负载均衡实现方法
- 虚拟服务器负载均衡实现方法
- 负载均衡实现原理和方法
- Nginx+Sticky实现负载均衡(1)
- Apache实现负载均衡
- apache 实现负载均衡
- 实现服务器负载均衡
- [Apache]负载均衡实现
- Nginx实现负载均衡
- APACHE实现负载均衡
- nginx 实现负载均衡
- Java 基本语法
- 2010最新的网赚项目介绍,不看不知道,一看吓一跳
- JPA hibernate 注解
- PHP多进程协作编程之-popen
- AS4+ORACLE9I安装说明
- SQL2005负载均衡1:实现方法
- Ubuntu下Opera无法调用iBus输入中文的解决方案
- 如何去掉暴风影音2012广告,去掉暴风影音暂停时的广告
- 找回 回收站里删除文件的妙招!(恢复删除的文件)
- php面向对象编程 – 观察者模式
- #pragma once 的用法
- Resources
- 数组名和指针的区别
- Linux系统调用列表