数据库数据迁移常见方式
数据库数据迁移常见方式
1、通过sql
批量导入sql
java
insert into tableName select *
2、通过数据迁移工具
在数据库里面可以看到有navicat里面有数据转移工具可以使用。
3、云服务进行数据迁移
随着云服务越来越普及,好多工作可以在云服务上进行,十分的方便,我最近进行数据规划,容灾,迁移都在使用一款云服务,华为云的DRS 服务----数据转移。
什么是DRS服务
DRS服务是数据迁移服务,可以把不同库的数据进行转移,譬如把A库的表迁移到B库里面。也可以把A库进行迁移,整体的迁移到另一个库里面。
如何使用DRS服务
官网链接 :https://www.huaweicloud.com/product/drs.html
1、选择一个站点
这个可以选一个你们目标数据库所在的站点。
2、创建DRS任务。
选择需要转移的库就可以进行数据转移了。
重点是:
1,全量加增量转移数据
2,全量转移
选择完了之后只需要选择对应的库就可以了。
DRS云服务可以干什么
1、进行数据库转移
当业务上需要多个库和一的时候,使用DRS任务把不同的数据库转移到同一个库里面,然后把微服务部署到新的数据库里面,微服务部署完成后,数据库数据完整,可以达到不间断部署。
2、进行表转移
当公司大的时候,譬如我现在所在的公司,几千个部门合作,如果接入外部域数据,那么需要的就是这个工具,实时的同步外部数据,延迟几乎没有。
3、进行数据库表的监测
假设数据库里面有很多表,表里面数据很多,那么会用到redis缓存来提升查询速度,一般是业务来查询,第一次查到数据,返回并且存到redis里面,当数据发生改变时,去删除或者更新数据。
那么如果监控这个数据发送改变的情况,传统意义上mysql数据变更捕获有很多方式,比如使用开源工具canal,debezium,maxwell等等,连接mysql数据源,实现获取binlog日志。
我们还可以使用DRS任务,还需要kafka
首先建立一个kafka,创建一个topic用来接收数据,然后创建DRS出云任务,对接mysql数据库,DRS出云任务选择全量加增量方式,选择要监控的表,当有数据变化的时候,使用DRS任务就可以把变化的数据发送到kafka里面。这样kafka里面有记录的事件。
然后我们代码订阅kafka的事件,就可以做到删除或者更新缓存的操作,相对比以前,只需要加上两个云服务,可以监控很多张表,省去了很多代码,并且更加解耦,稳定。(DRS本质上也是监控的MySQL的binlog日志的)
4、用于容灾搭建
一般来说我们数据库搭建为一主一从一只读的集群。主库管读写,从库,只读库管查询,作为容灾,会定期的把主库的数据同步到容灾环境去,那么如何可以实时的同步过去呢,当主库宕机,容灾库可以直接切换过去就是最好的容灾方案。
巧了DRS就有这个容灾方案,选择里面的容灾,就可以建立容灾同步,而且如果容灾库一开始么有数据,第一次建立容灾会把所有数据全部同步过去,如果数据库宕机就使用这个就可以切换过去,但是要提前做容灾处理。
这个云服务你就用去吧,特别好用,一用一个不吱声