存储跨中心双活是块存储的同步,无法避免逻辑错误被同步,出现该问题又该如何防范?
数据同步逻辑错误问题:存储层面的复制技术基本以存储块为单位进行的数据复制,假设数据块发生了逻辑错误,那么存储是无法检测到的,它会继续将坏的数据块儿同步到灾备端,如果因此数据库发生宕机,那么灾备端的数据库也同样无法正常启动。
解析和解答
邓毓 某农信社资深骨干工程师
这是一个很典型的问题,块存储如何防范逻辑错误。做了存储的跨中心的双活或者做了存储的镜像,同步复制,很容易就会觉得数据有两份甚至多份一致性的副本,就会觉得万事大吉,甚至觉得不需要备份系统了。
数据备份系统是企业数据安全的***一道防线,无论做了什么同步、异步、双活还是连续性数据保护,数据备份系统都应该作为一个最稳固可靠的基础的存在,地位无法替代。
回到问题来,基于存储的复制技术,无论复制方式是同步、异步、双活还是连续性数据保护,都是基于存储数据块级别的复制技术,复制源端在可读时,会将块中的数据原样的拷贝一份至目标端,当源端数据出现误删、误改、磁区退化数据异变、数据库事物层逻辑错误等数据逻辑性错误时,复制目标端无法检测到这些错误,依旧复制“错误”的数据,导致两份副本都无法正常使用的灾难。
所以我们要有多层次的防范机制,来保障数据的可靠性和安全性,存储双活技术只是其中的一个层次,要辅以备份技术、数据库复制技术,连续性数据保护,建立了完善的数据保障体系。
(1)备份系统按照一定的时间频率对数据库做全量和增量备份,在遇到数据逻辑错误时,通过恢复将数据回退到***一个备份版本。如TSM、NBU、COMMVAULT。
(2)数据库复制技术有实时同步、准同步、异步等方式,保障主数据库逻辑错误无法正常运行时,切至备数据库,回退到备库前一个日志COMMIT后的版本。如DB2 HADR、ORACLE ADG、MYSQL主从复制等。
(3)连续性数据保护技术也是准/实时对存储数据块做快照,源端数据无法继续使用时,通过快照回退至前一个数据可用版本。如CDP。
通常为了考虑不影响源端数据的访问性能或者单个系统无法满足需求时,可以考虑多种方式结合,比如备份系统在备份超大数据库时,没有充足的带宽或者备份时间窗口,可以用数据库的异步复制方式来做为备份方式的补充;连续性数据保护技术需要通过LVM镜像源端数据,增加了写延迟,可以通过数据库准实时同步或者异步的方式复制数据到备库节点,备库节点的后端存储为连续性数据保护的存储节点,如DB2 HADR+CDP的组合。
所以总结来看,存储跨中心双活并不是***的,依旧需要传统的数据保障技术辅助,建立常态高效的数据保障体系,才能应对万难。