Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
对于企业级用户和关键系统来说,最重要的要求之一就是系统的高度可用性和数据的安全性(High Availability and Disaster Recovery,HADR)。我们先来了解一下HADR的问题空间。HADR有两个目标和衡量方式:
- 保证系统可用
目标恢复时间(Recovery Time Objective,RTO):出了故障后把系统恢复正常工作状态所需要的时间。 - 保证数据安全
目标恢复点(Recovery Point Objective,RPO):系统数据能恢复到故障前的哪个时间点。换而言之,故障后你能容忍多少数据损失。
故障又主要有两大类别:
- 计划宕机时间
- 硬件升级
- 软件补丁(操作系统,应用程序),应用程序升级
- 维护操作
- 意外宕机时间
- 无法预料的故障
- 硬件故障,软件故障,电力中断,数据损坏
- 站点故障:火灾,地震,洪水
- 用户或应用程序错误
- 意外更改,不正确的数据操作
- 无法预料的故障
针对不同的可用性要求和故障类别,SQL Server提供多样的HADR技术来满足用户的需要。但怎样从中选择最合适的技术?下面是对SQL可用性技术和功能的一个概览:
- 意外宕机时间
- SAN/RAID
- 备份和恢复(Back Up and Restore)
- 日志传送(Log Shipping)
- 数据库镜像(Database Mirroring)
- 故障转移群集(Clustering)复制(Replication)
- 计划宕机时间
- 轮流升级和打补丁(Upgrade and Patching)
- 在线操作(Online Operations)
- 资源管理器(Resource Governor)
- 数据库快照(Database Snapshot)
SQL Server HADR 技术比较
这些技术都有自己的特点和要求,用户可根据自已需求,配置,和预算来选择,以满足HADR在目标恢复时间(RTO)和目标恢复点(RPO)的要求。
希望您能通过本文对SQL HADR技术有个大致了解,以后我们会再详细介绍其中的一些技术,谢谢。
SQL Engine部门经理
吴家震
Comments
- Anonymous
August 07, 2012
数据库复制的问题,能否解答一下! 当我执行如下SQL: update table set col='值' 涉及修改的数据量如果超过10万,那么数据库复制同步将变的非常慢。 具体时间大概是1万 10秒 2万30秒 10万1个小时 20万4个小时 100万4天。 不是线性增长而是指数级增长。 我查看了原因,10万数据更新,在复制同步时候是在同一个事务里面,10万事务对应10万个命令,每个命令都产生X锁(在当前数据库和tempdb),而且X锁多了也不升级,最后导致X锁越来越多,越到后面锁匹配越慢,性能越来越差。 微软解决方案之一是通过存储过程提交SQL,再复制两端都执行SQL,这样感觉不是很好,因为我只能控制升级脚本这样做,不能控制程序也这样做。 另外一个解决方案是我自己想出来的,对更新的系统存储过程加上表锁,这样能解决问题,但是需要批量修改微软提供的底层存储过程,感觉不保险。 我觉得微软是不是有一个开关专门设置是否在复制期间开启事务,这样就不会出现大事务造成的N多X锁,导致性能严重下降。求答案!!!!!!