热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SQLServer2005数据库读写分离

SQLServer2005对端到端(P2P)拓扑结构上事务性的复制加强了支持。P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换

SQL Server 2005对端到端(P2P)拓扑结构上事务性的复制加强了支持。P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换

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大力推出的,它就是要实现数据库的安全转移,所以需要再单独拿出一台机器来做备份服务器,将完全镜像写入该服务器,这样,即使写入服务器坏了,它也可以自动转移到备份服务器上来,保证不影响用户。

这实际上就相当于实现了对服务器的容灾管理,但是有一点需要注意,在这种镜像的体系中,必须要有一台服务器作为监视服务器,以便察看哪台服务器坏了,用以在机器出错之后迅速调整。


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
  • 近年来,BPM(业务流程管理)系统在国内市场逐渐普及,多家厂商在这一领域崭露头角。本文将对当前主要的BPM厂商进行概述,并分析其各自的优势。目前,市场上较为成熟的BPM产品主要分为两类:一类是综合型厂商,如IBM和SAP,这些企业在整体解决方案方面具有明显优势;另一类则是专注于BPM领域的专业厂商,它们在特定行业或应用场景中表现出色。通过对比分析,本文旨在为企业选择合适的BPM系统提供参考。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
author-avatar
手机用户2502941293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有