@WillireamAngel
2018-04-15T12:57:52.000000Z
字数 1794
阅读 1255
数据库
Web服务器数据库采用SQL Server数据库,原数据库主机异常,需要做迁移,寻找方法策略。
常规思路:
- 数据库主从复制或多级复制,数据库尽可能保证冗余;
- 切换过程添加写入锁机制(或关闭服务,不推荐),数据库主库迁移;
- 数据库增量拉取同步,并做整体数据库验证同步,验证后上线。
现在有很多关系型数据库和非关系数据库,每种数据库也会提供数据库复制迁移策略或者高可用方法等。下面结合一些常用数据库进行阐释。
关系型数据库和非关系型数据库的差异可参照下面的链接:
DataGuard
特性:
- 高可靠性,主从库迅速切换;
- 低成本和复杂性;
- 最大回报,从库均可用于生产目的。
转换和故障切换。
转换是主数据库和它的一个备用数据库间的角色调换。通常在主系统计划维护中执行。在转换期间,主数据库将从主数据库角色转换为一个备用角色,而备用数据库将转换为主数据库角色。转换无需重新创建任何数据库。
故障切换是备用数据库在主数据库突然中断时切换为主数据库角色。当问题得到修复后,故障主数据库可以使用 Oracle 闪回数据库迅速恢复为新主数据库的备用数据库,大大减少了将配置恢复为受保护状态的时间和工作量。
参考链接:
http://www.oracle.com/technetwork/cn/database/dataguardoverview-091578-zhs.html
MAA
特性:
- MAA集成多种应用产品的最优化解决方案;
- MAA结合多种业务;
- MAA使用更低成本的服务器和存储;
- MAA独立于硬件和操作系统。
参考链接:
http://www.oracle.com/technetwork/database/availability/index.html
MHA
MHA包括MHA Manager(管理节点)和MHA Node(数据节点),管理节点定时探测master节点,故障时选举一台slave为新的master,并完成指向迁移。
具体流程:
- 从宕机崩溃的master保存二进制日志事件(binlog events);
- 识别含有最新更新的slave;
- 应用差异的中继日志(relay log) 到其他slave;
- 应用从master保存的二进制日志事件(binlog events);
- 提升一个slave为新master;
- 使用其他的slave连接新的master进行复制。
参考链接:
数据库镜像
数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎服务器实例上。通常,这些服务器实例驻留在不同位置的计算机上。启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为“数据库镜像会话” 。数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作“重做 ”到镜像数据库中。 重做通过将活动事务日志记录的流发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。
参考链接:
多副本复制集
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
参考链接:
Redis Sentinel 集群
系统原理类似MHA。
参考链接: