0
点赞
收藏
分享

微信扫一扫

阿里云DTS数据库迁移

40dba2f2a596 2024-02-05 阅读 14

项目业务需要异地迁移数据库mysql5.7,几种方案线上dump下载本地还原,硬盘邮递,线上dts迁移,实际用到了阿里云的dts业务迁移。

前期用一个测试库5G数据做迁移测试,阿里云业务找到dts数据迁移功能,新建任务,填写源库和目标库信息,阿里有支持的云平台,不支持的平台和个人公网源库接入方式直接选择公网IP,需要合作伙伴做好源库的公网IP和端口开放及添加阿里云按照几个大区华东,华南等区一大堆的白名单。需要权限:

阿里云DTS数据库迁移_数据

阿里云DTS数据库迁移_mysql_02

后面选择需要迁移的数据库>箭头拉过去,确认好配置源库及目标库信息以后开始高级配置基本上 默认的选项:一般线上数据还是要增量校验的,整体同步以后增量运行一段时间做同步。

阿里云DTS数据库迁移_数据_03

阿里云DTS数据库迁移_mysql_04

一路下来做最后预检查,一般会全部通过,这样的需要改源库的binlog格式

阿里云DTS数据库迁移_数据_05

接着购买链路规格:

阿里云DTS数据库迁移_数据_06

开启任务:

阿里云DTS数据库迁移_数据_07

任务校验:

阿里云DTS数据库迁移_mysql_08

多个实例同时迁移互不影响,dts迁移速度取决于公网速度。

迁移完成释放实例:

阿里云DTS数据库迁移_数据_09

释放实例完成以后dts传输完成,需要检验一下数据;DBA不在粗略检验一下表数据;

#!/bin/bash


echo -n "mysql username: ";read username


echo -n "mysql host: ";read host


echo -n "mysql port: ";read port


echo  -n "mysql password: " ; stty -echo ; read password; stty echo ; echo


mysql -u $username -p"$password" -h$host  -p$port -NBe "show databases;" |grep -v 'information_schema'|grep -v 'performance_schema'|grep -v 'mysql'| while read database;do


mysql -u $username -p"$password" -h$host -p$port -NBe "show tables;" $database |while read  -a row ;do


tablename=${row[0]}


countline=`mysql -u$username -p"$password" -h$host -p$port -NBe "select count(*) from $database.$tablename"`


\#counttables=`mysql -u$username -p"$password" -NBe "select count(*) from information_schema.tables where table_schema like '%db_abc%'"`


echo "$database.$tablename count is $countline" >>count1.csv

done

counttables=`mysql -u$username -p"$password" -h$host  -p$port -NBe "select count(*) from information_schema.tables where table_schema like '%db_abc%'"`


echo "$database-----tables count is $counttables">>count1.csv


done

结果类似这样:

阿里云DTS数据库迁移_mysql_10

举报

相关推荐

0 条评论