一、数据库中间件:数据库是底层,数据库中间件是与业务无关的可以实现数据库的一些功能的组件
二、数据库中间件包括:分布式数据库分表分库,数据增量订阅与消费,数据库同步(全量,增量,跨机房,复制)、跨数据库(数据源)迁移
1、分布式数据库分表分库中间件:负责与应用打交道,对应用表现为一个独立的数据库
- 以JDBC的Jar包形式为java应用提供直接依赖
- 为应用部署独立的服务来满足应用分库分表的需求
2、增量数据订阅与消费:用户对数据库的操作(DML,DCL,DDL)会产生增量数据,下层应用可以通过检测这些增量数据进行响应的处理
3、数据库同步中间件:设计数据库之间的同步操作,可以实现跨(同)机房同步以及异地容灾备份,分流等功能,可以设计多种数据库,处理后的数据也可以通过多种形式存储
4、数据库与数据库之间会有数据迁移(同步)的动作,同款数据同步原理比较简单,比如MYSQL主备同步,只要在数据库层进行响应的配置即可;但跨数据库同步就比较复杂,如oracle-->mysql,数据迁移一般包括三个步骤,全量复制,将原数据库的数据全量迁移到新数据库,在迁移过程会有新数据产生;增量同步,对新产生的数据进行同步,并持续一段时间以保证数据同步;原库停写,切换新库(跨数据源)
注:现有数据库系统已经将大部分中间件功能集成