[关闭]
@WillireamAngel 2018-04-15T12:57:52.000000Z 字数 1794 阅读 1255

数据库复制迁移策略

数据库


一、实例分析

Web服务器数据库采用SQL Server数据库,原数据库主机异常,需要做迁移,寻找方法策略。
常规思路:

  1. 数据库主从复制或多级复制,数据库尽可能保证冗余;
  2. 切换过程添加写入锁机制(或关闭服务,不推荐),数据库主库迁移;
  3. 数据库增量拉取同步,并做整体数据库验证同步,验证后上线。

二、数据库策略分析

现在有很多关系型数据库和非关系数据库,每种数据库也会提供数据库复制迁移策略或者高可用方法等。下面结合一些常用数据库进行阐释。
关系型数据库和非关系型数据库的差异可参照下面的链接:

https://blog.csdn.net/oChangWen/article/details/53423301

关系型数据库

Oracle

DataGuard
特性:
- 高可靠性,主从库迅速切换;
- 低成本和复杂性;
- 最大回报,从库均可用于生产目的。

DataGuard

转换和故障切换。
转换是主数据库和它的一个备用数据库间的角色调换。通常在主系统计划维护中执行。在转换期间,主数据库将从主数据库角色转换为一个备用角色,而备用数据库将转换为主数据库角色。转换无需重新创建任何数据库。
故障切换是备用数据库在主数据库突然中断时切换为主数据库角色。当问题得到修复后,故障主数据库可以使用 Oracle 闪回数据库迅速恢复为新主数据库的备用数据库,大大减少了将配置恢复为受保护状态的时间和工作量。
参考链接:

http://www.oracle.com/technetwork/cn/database/dataguardoverview-091578-zhs.html

MAA
特性:
- MAA集成多种应用产品的最优化解决方案;
- MAA结合多种业务;
- MAA使用更低成本的服务器和存储;
- MAA独立于硬件和操作系统。
MAA
参考链接:

http://www.oracle.com/technetwork/database/availability/index.html

Mysql

MHA
MHA包括MHA Manager(管理节点)和MHA Node(数据节点),管理节点定时探测master节点,故障时选举一台slave为新的master,并完成指向迁移。
MHA
具体流程:
- 从宕机崩溃的master保存二进制日志事件(binlog events);
- 识别含有最新更新的slave;
- 应用差异的中继日志(relay log) 到其他slave;
- 应用从master保存的二进制日志事件(binlog events);
- 提升一个slave为新master;
- 使用其他的slave连接新的master进行复制。
参考链接:

https://www.cnblogs.com/xuanzhi201111/p/4231412.html

MS SQL

数据库镜像
数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎服务器实例上。通常,这些服务器实例驻留在不同位置的计算机上。启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为“数据库镜像会话” 。数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作“重做 ”到镜像数据库中。 重做通过将活动事务日志记录的流发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。
参考链接:

https://docs.microsoft.com/zh-cn/sql/database-engine/database-mirroring/database-mirroring-sql-server

非关系型数据库

MongoDB

多副本复制集
Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
参考链接:

http://www.mongoing.com/archives/2155

Redis

Redis Sentinel 集群
系统原理类似MHA。
Redis Sentinel
参考链接:

http://www.yunweipai.com/archives/20444.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注