DM 数据守护提供多种解决方案,可以配置成实时主备、MPP 主备、DMDSC 主备或读写分离集群,满足用户关于系统可用性、数据安全性、性能等方面的综合需求,有效降低总体投入,获得超值的投资回报。
一些疑问
1,不同的解决方案都是基于同一个架构图?
大致是的,具体的主库和备库的功能可能由一个集群来实现。
2,具体实现上的区别是什么?归档类型吗?
各种不同数据守护类型的区别,就在于主库日志包 RLOG_PKG 的发送时机,以及备库收到 REDO 日志后的处理策略。
3,实时主备和读写分离的区别?
目标不同:实时主备是为了保障主库的数据可用性,读写分离是为了减轻主库的吞吐量压力,把读服务分配到备库上执行。
性质不同:实时主备的备库是只读的,强调不能修改,不提供服务;读写分离的备库也是只读的,但是可以提供服务。在备库查询的实时性要求不高的条件下,实时主备也可以配置接口的读写分离属性访问,实现读写分离功能特性。
4,实时主备-自动故障处理功能:备库故障,不影响主库正常提供数据库服务,守护进程自动通知主库修改实时归档为 Invalid 状态,将实时备库失效。
备库故障的话,备库的守护进程是正常的吗?如果备库的机器断电了,守护进程和备库在一个机器上,也会受影响吧,那要如何自动通知主库?不主动通知的话,主库在心跳测试时间后也会自动察觉到备库故障了?
5,IP和端口号的含义
【实例的内部通信网址】和【MAL系统监听TCP连接的IP地址】分别和谁通信,为什么地址是一样的:
可以理解为每个数据库实例上部署一个MAL系统主体xbox,MAL_HOST和实例内部通信网址是一个意思,即xbox的IP地址。
6,【实例的内部通信端口】和【MAL系统监听TCP连接的端口】分别是什么功能,和谁通信:
xbox使用3个进程对应3个端口号实现不同的通信功能:
- MAL_INST_DW_PORT:实例的内部通信端口,用于xbox与实例通信,心跳测试
- MAL_DW_PORT:守护进程的内部通信端口,用于xbox与守护进程通信
- MAL_PORT:MAL系统监听TCP连接的端口,用于xbox与监听进程通信
7,实时/即时归档的区别
即时归档在发送日志之前就更新联机日志;实时归档要收到响应后再更新联机日志,保持redo日志的实时同步
8,无论备库响应是成功或失败,归档日志都要更新,那为什么不在发送日志之前更新归档日志?
【设置归档无效】并不影响日志归档,目的是强制断开对应此备库上存在影子会话的用户会话,避免只读操作继续分发到该备库,导致查询数据不一致。响应成功或失败,对应的归档日志更新内容不同。
9,实时读写分离的事务一致模式仅在数据守护配置为自动切换模式下才会生效。
对于配置实时归档的DMDSC数据守护集群,不支持事务一致模式,即不支持将ARCH_WAIT_APPLY或WAIT_APPLY配置为1。
10,为什么读写分离集群至少需要2个备库?
更有效地保护数据的可用性。