DM主备守护集群分为实时主备、读写分离集群、MPP主备集群。基于redo日志实现,不同的集群采用不同的redo日志归档类型。
实时主备:
实时主备系统由主库、实时备库、守护进程和监视器组成。通过部署实时主备系统,可以及时检测并处理各种硬件故障、数据库实例异常,确保持续提供数据库服务。
实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。主库修改数据产生的Redo日志,通过实时归档机制,在写入联机Redo日志文件之前发送到备库,实时备库通过重演Redo日志与主库保持数据同步。当主库出现故障时,备库在将所有Redo日志重演结束后,就可以切换为主库对外提供数据库服务。
主要功能
- 实时数据同步
- 主备库切换
- 自动故障处理
- 自动数据同步
- 备库接管
- 备库强制接管
- 读写分离访问
归档流程:
实时归档是实时主备数据同步的基础,其流程如下图所示:
主库生成联机 Redo 日志,当触发日志写文件操作后,日志线程先将 RLOG_PKG 发送到备库,备库接收后进行合法性校验(包括日志是否连续、备库状态是否 Open 等),不合法则返回错误信息,合法则作为 KEEP_PKG 保留在内存中,原有 KEEP_PKG 的 Redo 日志加入 Apply 任务队列进行 Redo 日志重演,并响应主库日志接收成功。
MPP主备:
MPP主备就是在MPP集群的基础上,为每一个MPP节点配置一套实时主备系统,这些实时主备系统一起构成了MPP主备系统。我们将一个MPP节点对应的主备系统称为一个数据守护组(Group),MPP主备系统中各个数据守护组保持相对独立,当某个MPP主节点出现故 障时,在其对应的数