基于磁盘的备份

首先来看的是最简单的技术——备份。在SQL Server 2008的企业版中,备份有了一个新的特性,那就是备份压缩。那么备份压缩对于高可用有什么帮助呢?
那么就要提到现在业界非常流行的一种备份解决方案——磁盘备份解决方案,有很多与该解决方案相近的名称:在线备份、虚拟磁带库等等。这些方案其实都是基于一个思想,将数据备份到快速的在线磁盘设备上,这样就可以利用磁盘的高速IO和高速检索能力。不过磁盘的高昂代价往往是这种企业在这一解决方案面前驻足不前的主要原因,而现在SQL Server 2008企业版中的备份压缩可以大幅度减少备份后的文件尺寸,因此基于磁盘的备份解决方案看起来也更加有竞争力了。
基于磁盘的备份带来***的好处就是利用磁盘高速IO的能力进行快速的还原。这就可以缩短数据库服务离线的时间,同时也可以减少数据库备份这一维护操作对应用的影响。
数据库镜像+故障转移集群
上面我们介绍的故障转移集群、日志传送亦或基于磁盘的备份都是作为单一技术出现的,而在真实的大中型企业环境中为了确保数据应用的持续在线,我们通常有一些组合多种高可用技术的方案。通过混合不同可用性技术,我们将可以采长补短。
例如数据库镜像技术。
虽然数据库镜像可以解决故障转移集共享存储存在单点失效威胁、依赖于特殊硬件等一系列的问题,但是数据库镜像***的问题就是故障转移路径过短。对于大中型企业来说,仅有两个节点的故障转移路径有些不足。因此通过增加一个故障转移集群作为数据库镜像的镜像节点就可以解决了数据库镜像故障转移路径过短的问题。
上面这种解决方案当主体 服务器 失效后,数据库镜像会将启动镜像节点,而由于镜像节点是由一个故障转移集群承担的,因此当镜像节点中的一个节点失效后还有一个后备节点,因此还可以有一个后备节点承担。
其实故障转移集群和数据库镜像是各有利弊,因此这两种技术融合在一起后的解决方案不仅仅是上面这一种,下面就给出另外一种解决方案的示意图:
细心的读者可能会发现,方案二种没有了见证节点,这意味着从主集群切换到镜像集群需要手动完成。那么为什么这种解决方案中没有了见证节点呢?
因为数据库镜像和故障转移集群都拥有自动故障转移的特性,如果两种技术的自动切换都生效的话,那么在主体集群的活动节点失效后就会有两个节点同时试图生效——主体集群的后备节点和镜像集群的活动节点,那么结果就只有一个,数据库镜像会话失败。
远程故障转移集群
对于某些跨地区甚至是跨洲的大型集团来说,站点失效这个困扰会逐渐进入IT主管和DBA的脑海中。
不过远程故障转移集群就不仅仅是SQL Server一个人就能完成的了,这个方案要依赖于SQL Server,Windows Server这些基础软件,还要依赖于存储设备、交换机、服务器这些硬件。
因为在远程故障转移集群中,共享储存不再存在于一个数据中心,而是可能相距数十公里,甚至数千公里,因此中长距的底层存储同步往往是这一解决方案的关键。对于中长距的底层存储同步,通常分为两种,一种是在30公里内的,通过单模光纤可以实现两个数据中心存储设备间的同步复制,而另外一种则是在30公里之外了,而这种情况通常都是通过租用ICP的线路来实现两地间的异步复制。听上去好像很复杂,不过不用担心,EMC这样的厂商有非常成熟的硬件设备以及相关软件。这就是为什么在SQL Server的Always On中会出现EMC这样第三方厂商名字的原因。
远程故障转移集群的替代方案
其实对于远程故障转移集群来说,主要解决的问题是站点失效的问题,因此单纯使用SQL Server的功能也可以解决这个问题。尽管没有基于硬件的那么高效和稳定。
那么怎么构建一个相对廉价的远程容灾方案呢?我们的答案是故障转移集群+日志传送/复制。在不提到这两项技术的话,他们两个一定会有意见的。
日志传送依赖于日志备份以及还原来实现数据同步的,而复制呢,除了日志外多了一个快照(注意:复制中使用日志的方式与日志传送是不一样的)。因此我们只要确保主服务器的日志能够以一个合理的频率传送给远端的后备服务器,我们就可以提供一定程度上远程容灾能力了。
可是在SQL Server 2005之前,复制和日志传送都有一些小问题,日志传送是依赖于日志备份作业、日志传送作业和日志还原作业,因此日志传送无法做到连续性,他的嘴短同步间隔是一分钟,无法再短了。事务复制尽管能做连续,但是事务复制有主从之分,如果是多站点这项技术会严重限制后备服务器的自治能力。
不过从SQL Server 2005开始,事务复制有了一种新的模式,叫做对等事务复制。对等事务复制平等看待参与复制的所有节点,而取消了主从之分。这就给我们的多站点数据服务规划指出了一条新的道路。
不过大家在这张有些夸张的图里面也许可以看出些端倪。通过对等事务复制,我们确实可以设计出一个非常复杂的数据复制拓扑,利用高速/低速线路,优质/常规线路,我们可以在分布于多个站点的服务器之间构建出一个复制拓扑。说上面这张图是开玩笑,原因是通常复制拓扑不会这么混乱,但是对等复制一定可以制成这张图上出现的服务器数量,关键是要良好规划和设计。
算了,给张清楚点的吧。这是一个比较真实地对等复制拓扑,我们有两个站点。站点内拥有高速的链接,而站点间则是相对低速的租用链路。A、B、C分别是三个应用的数据库,A和C是本地性应用,因此仅在单个站点内进行了复制,保证其容灾能力,而B是一个集团性的应用,为了确保其数据的可用性,因此在站点内和站点间分别实现了复制冗余,同时站点A和站点B可以互不干扰对数据的使用(当然这要依赖于数据库的设计和对等复制链路的配置)。
SQL Server 2008在对等复制方面也有一个小小的改进,那就是冲突检测。在SQL Server 2005的对等事务复制中,冲突是一个非常头疼的事情,因此才会要求非常严格的数据访问隔离设计。SQL Server 2008会在发生冲突的时候暂停复制,既保证了两个站点间的正常数据访问,也保证了在数据冲突时不会错误覆盖正确的数据版本。
结束语
其实SQL Server的可用性和数据应用的可用性完全是两个层面的事情,SQL Server仅仅是数据应用中的一个组成部分,因此如何达到真正的系统可用性,还要考虑更多的问题,通讯(交换机、路由器之类)、网络服务(DNS、DHCP之类)、操作系统、应用服务(IIS、中间件服务器),还有很多很多的问题。
【编辑推荐】
asp.net和sql2008的特点和功能
1、是基于组件的,面向对象e799bee5baa6e79fa5ee4b893e5b19e134的模块化开发模式;2、更加广泛的底层支持,可以使用C#,VB等编程语言来作为宿主开发;3、运行效率与安全性,都是官方说法,不过相对ASP的安全性与效率,的确有很大的提升;4、程序运行时,会编译成DLL;5、MVC分层的开发模式,将显示与逻辑分离,比ASP和PHP要合理,当然了,PHP也可以实现MVC三层模型。 sql2008的特点和功能保护您的信息。 SQL Server 2008 利用全面审核功能、透明数据加密和外围应用配置器(仅启用所需服务最大限度地减少安全攻击)来提高符合性和安全性。 确保业务连续性。 SQL Server 2008 附带提供的数据库镜像可提高应用程序的可靠性,简化发生存储失败后的恢复过程。 提供可预测响应。 SQL Server 2008 提供更广泛的性能数据收集、新的中央数据存储库(存储性能数据),以及改进的数据压缩(使您可以更有效地存储数据)。 最大限度地减少管理监视。 Declarative Management Framework (DMF) 是 SQL Server 2008 中一个基于策略的新型管理框架,它通过为大多数数据库操作定义一组通用策略来简化日常维护操作,降低总拥有成本。 集成任何数据。 SQL Server 2008 提供改进的查询性能和高效且具成本效益的数据存储,允许您管理和扩展数量庞大的用户和数据。 提供相关信息。 SQL Server 2008 使用户可以在 Microsoft Office Word 和 Microsoft Office Excel 中创建复杂报表,并在内部和外部分享那些报表。 即时访问相关信息使员工可以做出更好、更快和更多相关决策。
sql server 2008和2000有什么区别?
sql server 2008 功能特色1、新的forCESCAN查询提示任何DBA在进行查询优化的时候,都知道scan和seek之间的区别。 Scan是指读取表中每一行数据然后返回查询;而seek使用表的叶数据来找到能够回答相同查询的行。 当查询结果仅涉及到表数据的10-15%时,通常使用seek方式会比较好,当涉及到大量数据时则使用scan,它会读取整个表然后送到内存中然后返回结果,无需分析索引。 ①新的FORCESCAN提示功能就和字面上的意思一样,可以确保查询优化器在给定的操作中不使用seek,而强制使用scan。 需要提醒的是,FORCESCAN需要谨慎使用,否则会造成查询性能降低的后果。 ②SELECT user_type FROM user_table WITH (FORCESCAN)上面的语句假定user_type列相对来说并不是独一无二的,也就是所谓的“低基数”列,这时候使用FORCESCAN就和使用索引没有太大差别。 ③随着SQL Server查询优化器变得越来越强大,我在自己的程序中已经很少会用到这种提示功能,但是FORCESCAN还是有它的用武之处。 强制表扫描是对系统进行拷问测试的一种方法,FORCESCAN在这方面将会发挥积极的作用。 2、FORCESEEK查询提示的新功能①FORCESEEK和FORCESCAN二者是截然相反的,它会强制数据库使用seek。 在之前的版本中也存在这一功能,但是在SQL Server 2008 R2 SP1中,DBA可以使用FORCESEEK来指定需要seek的索引或者列:②SELECT user_name FROM user_table③WITH (FORCESEEK(user_table_index(user_name))④如果你能够想到的,在user_table上有一个索引叫做user_table_index,它将user_name作为其中的一列。 这会强制查询优化器使用这个索引和列来进行seek。 你还可以seek多个列,但是这需要按照它们在索引中的位置顺序来指明出来。 ⑤一个可能的应用场景:你创建了一个系统,其中生成索引后你想要手动进行详细的说明,或者是用存储过程以及内嵌SQL语句来自动生成。 3、新的系统对象①每当SQL Server有版本更新的时候,都会出现一些新的系统对象,用户每次都将它们挖掘出来然后记录到文档当中。 下面就是SQL Server 2008 R2 SP1中一些新的系统对象。 ②_os_volume_stats:当进行查询的时候,这个动态管理函数将返回存储数据库文件的磁盘信息。 比如磁盘上还有多少可用空间,这个卷是否支持压缩。 ③_os_windows_info:返回SQL Server运行的操作系统信息(哪个版本的Windows),其中包括了修订级别以及操作系统语言等。 ④_server_registry:返回现安装的SQL Server相关注册信息。 ⑤_server_services:返回SQL Server正在运行的服务状态,包括上次启动时间、服务是否运行在集群实例上等。 4、支持仿真(512e)硬盘存储市场中目前正涌现出新的硬盘驱动器,其中之一就是使用所谓的“512e”格式的硬盘,仿真硬盘运用磁盘的4K扇区,但是在界面上模拟一个512字节的扇区硬盘。 在TechTarget之前关于仿真硬盘对Windows Server影响的报道中,作者已经将该硬盘称为先进格式硬盘,而且它对于提升SQL Server这样应用性能方面有很大的优势。 因此,微软在SP1中添加了对仿真硬盘的支持,它可以让Windows Server 2008 R2运行更好。 5、数据层应用组件架构(DAC Fx)数据库架构管理是让每个DBA头痛的事情,但是SQL Server在这方面提供了不错的帮助。 数据层应用组件(DAC)就是这样的一个工具:它让数据层对象(基本上就是数据库中所有的东西)写入和部署变得轻松起来。 SP1包括了一个新的DAC Fx和DAC升级向导,这两个工具可以帮助SQL Server现有数据库架构进行升级,而且还支持微软新的云数据库平台SQL Azure。 6、SharePoint PowerPivot磁盘空间控制①微软PowerPivot数据往往会缓存在SharePoint中,但是DBA还是无法对缓存机制有一个比较直接的控制。 SQL Server 2008 R2 SP1可以让DBA控制不活跃数据库在内存中缓存的时间,并对PowerPivot文件进行磁盘清理。 如果你的系统中只有少量的PowerPivot数据,而且更改很少,你希望它能够长时间缓存在内存中,那么新的磁盘空间控制功能将会非常有帮助。 ②通过_db_increased_partitions存储过程将一个表分成个分区。 ③_db_increased_partitions存储过程可以使DBA能够针对一个特定的表设定increased_partitions。 在之前的SQL Server版本中,DBA最多能够分成1000个分区,而新的SP1中最多则可以达到个分区。 这是非常大的一个改进。 点击下载:ql server 2008sql server 2000 功能特色1、多实例支持能力sql2000桌面版最多可在单台计算机上同时支持16个数据库服务器实例。 2、实用工具是Microsoft所提供的一种用于临时以交互方式执行Transact-SQL语句或脚本程序的Win32命令行工具。 借助这种实用工具,您将可以在一种类似于命令提示行的工作环境中以交互式方式输入Transact-SQL语句。 相应语句所生成的结果集也将在命令行窗口中加以显示。 3、复制功能sql2000桌面版同时支持以发布者及订阅者身份所进行的合并复制操作,从而使您得以在多个站点(某些情况下可能会覆盖数以百计的站点)上同时维护相同数据的多份拷贝。 此外,sql2000桌面版还支持其它形式的复制操作,但其只能提供范围有限的功能。 例如,MSDE 2000只能在订阅者环境中参与事务化复制和快照复制操作。 4、性能sql2000桌面版是一种可共享的本地化数据引擎。 它拥有一种能够为达到性能优化目的而将最大并行批处理工作负载数量控制在5个以内的可管理并行工作负载控制机制。 相关命令与日志记录可对实例进行监控,以避免出现并行执行工作负载数量超过5个的情况,在这种情况下,即便是配置良好的系统,也会产生明显的性能下降。 当并行执行的工作负载数量超过5个时,如果再有批处理工作负载被提交上来,并行控制机制将不断减慢系统运行速度。 这些工作负载既不会被取消,也不会自己丢失;他们仍将在一种不断下降的性能模式中得到处理。 如果您的解决方案必须支持5个以上的并行工作负载,那么,我们强烈建议您移植到SQL Server 2000或SQL Server 2000企业版,以便获得具备更高伸缩能力的最佳优化性能。 5、最大数据库规模sql2000桌面版最多可为每个数据库提供2 GB存储空间。 这一限制条件是以数据库而非服务器为单位的。 每台计算机可支持多个sql2000桌面版实例,其中每个实例为数据库所提供的存储空间之和不得超过2 GB。 6、数据转换服务sql2000桌面版有能力运行数据转换服务(DTS)软件包。 然而,由于其并未配备相应的DTS设计器,因此,它将无法设计DTS软件包。 7、远程管理功能sql2000桌面版同时支持本地管理与远程管理方式。 然而,由于相关事务可能在不同服务器之间交替产生,因此,sql2000桌面版将无法在多服务器运行环境中实现远程管理。 点击下载:sql server 2000
SQL2008的优点
SQL Server 2008提供了一个全面的和可扩展的数据仓库平台,它可以用一个单独的分析存储进行强大的分析,以满足成千上万的用户在几兆字节的数据中的需求。 下面是SQL Server 2008中在数据仓库方面的一些优点。 数据压缩数据仓库中的数据容量随着操作系统数目的快速增加而在持续增长。 内嵌在SQL Server 2008中的数据压缩使得公司可以更有效的存储数据,同时还提高了性能,因为降低了I/O 要求。 备份压缩保持一直在线做基于磁盘的备份是花费很昂贵的,并且很耗时。 有了SQL Server 2008的备份压缩,保持在线备份所需的存储降低了,并且备份速度明显变快了,因为所需要的磁盘I/O 减少了。 分区表并行分割使公司能够更有效的管理大型的、不断增长的数据表,只要简单的将它们分割为易管理的数据块。 SQL Server 2008是在SQL Server 2005中的分割的优势之上建立的,它改进了对大型的分区表的操作性能。 星型联接查询优化器SQL Server 2008为普通的数据仓库场景提供了改进的查询性能。 星型联接查询优化器通过辨别数据仓库连接模式降低了查询响应时间。 资源监控器SQL Server 2008随着资源监控器的推出,使公司可以给终端用户提供一致的和可预测的响应。 资源监控器使公司可以为不同的工作负载定义资源限制和优先权,这使得并发工作负载可以提供稳定的性能。 分组设置分组设置(GROUPING SETS)是对 GROUP BY 条件语句的扩展,它使得用户可以在同一个查询中定义多个分组。 分组设置生成一个单独的结果集,这个结果集相当于对不同分组的行进行了UNION ALL 的操作,这使得聚合查询和报表更加简单和快速。 捕获变更数据有了捕获变更数据,变更会被捕获并被放在变更表中。 它捕获变更的完整内容,维护交叉表的一致性,甚至是对交叉的schema变更也起作用。 这使得公司可以将最新的信息集成到数据仓库中。 MERGESQL语句有了MERGE SQL 语句,开发人员可以更有效地处理数据仓库的场景,例如检查一行数据是否存在然后执行插入或更新。 可扩展的集成服务集成服务的可扩展性方面的两个关键优势是:· SQL Server集成服务 (SQL Server Integration Services,SSIS)管道改进数据集成包现在可以更有效地扩展、使用有效的资源和管理最大的企业级的工作负载。 这个新的设计将运行时间的可扩展性提高到多个处理器中。 · SSIS持久查找执行查找是最常见的抽取、转换和加载(ETL)操作。 这在数��仓库中尤为普遍,当实际记录必须使用查找来转换业务键到它们相应的替代中去时。 SSIS 增强了查找的性能以支持大型表。
发表评论