在上一篇文章中,我们一起讨论了为什么会发生数据库迁移,其中我们讨论出主要原因是厂商出于控制成本,会由高成本的数据库产品迁移到好用,成本又低的数据库产品上。那么,如果成本是可以控制的,是不是数据库迁移就不会发生了呢?答案是否定的。即使成本可以控制,数据库的迁移仍然会发生,这是为什么呢?
因为,此时厂商要考虑的问题也发生了迁移,由处于成本的考虑改为考虑数据库本身是否“给力”。那么考虑的因素都有哪些呢?最主要的是考虑高可用性容灾及故障恢复的能力。
可用性容灾及故障恢复的能力
高可用性的含义是什么?
高可用性(High Availability)基本上表示用户可以访问数据,他们不在乎数据是从哪里来的,他们只在乎能不能够访问。我们在书中做了一个比喻,高可用就像是安一个灯泡,你希望它能永远不灭,你无须思考让它发亮背后的原理。
那么在后端,高可用性意味着什么?
你必须确保能够应对各种各样的故障场景,你需要考虑到人为故障、硬件故障等等。然后你要构建冗余,把一切可能性都计算在内,向最好的目标努力,但同时要做最坏的打算。
高可用性的对比:
说到高可用的时候,各家都有话说:
微软:当微软用户提到高可用性时,他们首先想到的会是AlwaysOn。这是SQL Server下代数据库中的一大亮点。通过采访微软SQL Server中国研发中心 BPUM团队的项目经理黄汉杰得知:微软一直致力于研究高可用性,每一个版本或者增加了新的高可用性功能,又或者改进了现有的功能,在下一代产品中引进了一种新的技术AlwaysOn以提高其高可用性。
Oracle:当Oracle用户提到高可用性时,他们首先想到的会是Oracle RAC。Scott Jesse表示RAC虽然是高可用性的基础,但并不是Oracle的全部。除了RAC,你还可以使用像Data Guard这样的产品来保护你的数据库,这里会用到所谓的闪回技术来确保备份计划的完整性。
DB2:当DB2用户提到高可用性时,他们首先想到的会是HADR。DB2说我们以图说话:
注:处于备用角色的数据库不能被访问。
迁移风险性与安全性
除了高可用性,大家还会考虑什么呢?答:迁移风险性与安全性。
迁移是一定会有风险的,何如控制风险,让风险尽量的小呢?黄汉杰先生表示,在迁移之前,我们都会有详细的部署,以控制迁移中风险的产生。比如,通过镜像的方法就可以最大限度的减少客户不能访问的时间;利用一些现有的迁移工具辅助迁移的进行。
迁移过程中,是否存在安全风险呢?带着这个问题,我们再次找到黄汉杰先生。他表示,在迁移过程中,数据是处于安全状态的。危险可以产生在迁移前或迁移后,但是在迁移过程中,是没有安全风险的。就像之前说到的一样,通过迁移前的一系列的部署,迁移过程中,安全是可以得到保证的。
总结
与之前的文章合二为一的阅读,会发现为什么要进行数据库迁移?说来很简单,就三点理由。
降低成本。作为一名天生很抠的老板,你一定想降低成本之后再降低成本吧?这是你作为老板天生的本性。可是现在的数据库已经被你榨得油干灯尽了。怎么办?迁移吧。
提升性能。作为老板,谁不想让马儿跑得又快又欢,当然,省钱是必须的。灵活的环境是必须要创建滴,业务目标也需要与IT基础架构联系起来,最重要的是,新的数据库一定要能够显著提升企业价值。
减少风险。虽然马克思说过,有300%的利润,资本家就会冒着上断头台的危险去从事利润。不过话说回来,做数据库迁移,风险却是最大的忌讳。咱做迁移,要是不能保证风险更低,谁干呐?新的可伸缩集群数据库以及运行大量事务处理的应用程序,在减少管理和软件成本的同时,也能企业降低系统的运行风险,何乐而不为啊。
附录:
HA三种工作方式
(1)主从方式 (非对称方式)
工作原理:主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。
(2)双机双工方式(互备互援)
工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。
(3)集群工作方式(多服务器互备方式)
工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。
【编辑推荐】