对等拓扑的优缺点数据库 |
|
优势服务器 |
缺点负载均衡 |
? 全部参与的服务器都有彻底的数据集合。 分布式 ? 用户能够链接到任何一个点的服务器上来读取或者修改数据。函数 ? 因为负载在服务器之间进行了均衡,读取的性能获得了很大程度的改善。 性能 |
? 多个服务器会修改同一个数据,这会致使冲突。事务性复制不支持具备超出常规的冲突解决方案。你必须找出解决或者防止潜在冲突的解决方法。 优化 ? 当端点服务器的数量增长的时候,性能会大幅降低。spa ? 写活动重复,由于全部的数据都在同一台服务器上。 日志 |
注意:复制在处理数据库计划无缝修改方面也进行了增强。在之前的发布中,修改复制的对象的计划须要关机时间。可是在SQL Server 2005中就不是这样的状况了。
表分割
分布式分区视图的工做方式在SQL Server 2005中与之前版本中的工做方式相同。然而,SQL Server 2005还支持表分区,这可让你经过分布读写负载到多个磁盘(或者磁盘阵列)上来改善性能。
对于分区表,你必须识别分区要用的是哪个卷,还有每一个分区的范围。例如,一个标识字段的数值能够定义分区范围;一个分区内能够容许从1到1百万的数值,在第二个分区内能够容许1百万到2百万,以此类推。分区范围能够经过分区函数来指定.而后你还必须建立一个分区计划来说分区函数中定义的每一个范围值映射到分离的文件组上去。每一个文件组均可以放在不一样的磁盘上。
如下的表给出了表分区的优缺点:对象
表分区的优缺点 |
|
优势 |
缺点 |
? 使用分区计划和函数很容易创建 ? 简化了对大表的维护(有几十亿行记录) ? 容许为每一个分区建立独立的索引 |
? 分区字段支持的数据类型有必定限制 ? 必须为每一个单独的分区创建一个表都,可是你能够在多个表上重复使用同一个分区函数。 ? 表分区可让你将负载扩展到磁盘上去。然而,全部的数据都必须被同一个服务器管理。若是你的性能瓶颈与CPU或者内存有关,那么这种方法看起来不是你最好的选择。 |
备份和从新存储方面的改善(片断式从新存储)
SQL Server的备份和从新存储特性没有很大的改变,可是微软确实添加了一些新的函数来容许用户比之前更快地访问被从新存储的数据库。
SQL Server 2005如今支持片断式数据库从新存储。片断式从新存储可让你首先从新存储主要的文件组,而后将数据库启动,处于在线状态。而后,可用的第二个文件组也能够被从新存储。只要第一文件组被从新存储了,那么用户就能够链接到数据库了。其余的文件组能够继续从新存储,与此同时,数据库也能够为查询和事务提供服务。正在从新存储的文件组标记为离线。 假设你有一个100GB的数据库,其中的75GB是历史性数据,不多被访问到。你能够将这些历史性数据放在它本身的文件组里面,而后让那些频繁访问的数据放在另一个文件组。若是你将最近的数据放在第一文件组中,那么你就只须要从新存储25GB的数据就可让用户链接到你的数据库上。而后你再从新存储其它的保留历史性数据的文件组。 如下的表列出了这个备份和从新存储解决方案的优缺点:
备份和从新存储的优缺点: |
|
优势 |
缺点 |
? 实现和维护很是简单 ? 容许对报告数据库进行读取和写入 |
? 不能提供最新的数据 ? 在从新存储的时候,数据库不能访问。这就意味着报告没法生成。 |
数据库镜像和快照
SQL Server 2005引入了数据库镜像的概念来帮助得到高可用性。特别提醒的是,只要它正是发布了,数据库镜像就能够在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才会支持镜像,暂定在2006年年初发布。
从本质上来讲,镜像的工做方式与日志传输相似。
1、事务日志记录能够应用在两个服务器中的数据库文件上。与日志传输不一样的是,数据库镜像不须要你备份事务日志,也不须要拷贝备份到备份服务器上。
2、数据库镜像连续两次写入数据。与日志传输不一样,备份的数据库必须保持在非恢复的模式中,这能够防止对数据的访问,即便是只读的方式。然而,镜像容许对备份数据库进行快照。
数据库快照是SQL Server 2005中引入的另外一项特性。快照是某一个时间点上的数据库的克隆。只要你的镜像的数据库进行了快照,你就可让用户查询快照。快照的生成一般只须要几秒钟,由于它实际上在这个过程当中拷贝任何数据。所以,要把负载分布到你的主服务器和备用服务器上,你能够将你的数据库镜像,而后阶段性地对备份服务器进行快照。你还可使用快照在主服务器上进行报告。
如下的表列出了数据库镜像和快照的优缺点:
数据库镜像和快照的优缺点 |
|
优势 |
缺点 |
? 从镜像数据库中生成快照很是快 ? 数据是最新的,由于它是持续写入镜像 ? 在同一个数据库上能够生成多个快照 |
? 快照提供了对数据的只读访问. ? 拥有快照,会增长服务器的负担,对性能产生负面影响 ? 若是你正好对镜像服务器进行错误恢复,那么事务和报告活动都会指向同一个服务器(可是不一样的数据库)。 |