数据同步

47 阅读3分钟

场景

  • 主数据库与备份数据库之间的数据备份
  • 主系统与子系统之间的数据更新
  • 分布式业务系统与数据仓库系统之间的数据同步

同步方式

直连同步

  • 通过定义好的规范接口API和基于动态链接库的方式直连业务库,如JDBC/ODBC等规定了统一标准接口,不同数据库基于这套标准提供规范的驱动。
  • 配置简单、实现容易,比较适合操作业务性系统的数据同步。
  • 对原系统的性能影响较大,当执行大批量数据同步时会降低甚至拖垮业务系统的性能。
  • 如果业务系统采取主备策略,则可以从备库抽取数据,避免对业务系统产生的性能影响。
  • 当数据量较大时采取此种方式性能较差,不适合从业务系统到数据仓库系统的同步。

数据文件同步

  • 通过约定好的文件编码、大小、格式,直接从源系统生成数据的文本文件,由专门的文件服务器,如FTP服务器传输到目标系统后,加载到目标数据库系统中。
  • 当数据源包含多个异构的数据库系统时,用这种方式比较简单实用。
  • 互联网的日志类数据常以文本文件形式存在,也适合使用数据文件同步方式。
  • 由于通过文件服务器上传、下载可能会造成丢包或错误,为了确保数据文件同步的完整性,通常除了上传数据文件本身还会上传一个校验文件,以供下游目标系统验证数据的准确性。
  • 从源系统生成数据文件的过程中,可以增加压缩和加密功能,传输到目标系统后在对数据进行解压缩和解密,可以提高传输效率和安全性。

数据库日志解析同步

  • 大多数主流数据库都已实现了使用日志文件进行系统恢复,因为日志文件信息足够丰富,数据格式也很稳定,完全可以通过解析日志文件获取发生变更的数据,从而满足增量数据同步的需求。
  • 以Oracle为例,可以通过源系统的进程读取归档日志文件用以收集变化的数据信息,并判断日志中的变更是否数据被收集对象,将其解析到目标数据文件中。
  • 这种读操作是在操作系统层面完成的,不需要通过数据库,因此不会给源系统带来性能问题。
  • 这种方式实现了实时与准实时同步的功能,延迟可以控制在毫秒级别,广泛应用与从业务系统到数据仓库系统的增量同步中。