原生mysql-到noshard(全量) mydumper myloader
原生MYSQL 迁移至 非分布式实例NOSHARD 示例:
说明: #全量数据迁移 : mydumper&myloader 1、mydumper&myloader是mysql社区开源的一款高性能逻辑备份恢复工具。 2、TDSQL团队在开源的基础上做了适配性的修改 。(符合相关开源协议) #增量数据同步 利用MySQL主备同步迁移增量数据 (只能是原生mysql 到 tdsql noshard ) 工具说明:只能用tdsql 自带的 >>tdsqlinstall/mysqlagent/bin/myloader >>tdsqlinstall/mysqlagent/bin/mydumper mydumper&myloader 运用场景: 原生mysql - tdsql noshard 原生mysql - tdsql shard (需提前创建好表,加shardkey) tdsql noshard - tdsql noshard tdsql noshard - tdsql shard (需提前创建好表,加shardkey) tdsql shard - tdsql shard
全量迁移 :
./mydumper --host=ip --port=xxxx --user=xxxx --password=xxxx --events --routines --triggers --less-locking --ignore-sysdb=1 --chunk-filesize=1024 --outputdir=/tmp –complete-insert 说明: --ignore-sysdb=1 忽略心跳表 sysdb 的导出 –complete-insert 指生成插入语句时,带例名 ./myloder --host=ip --port=xxxx --user=xxxx --password=xxxx –directory=/tmp --enable-binlog #mydumper & myloader需使用TDSQL自带版本 >>tdsqlinstall/mysqlagent/bin/myloader >>tdsqlinstall/mysqlagent/bin/mydumper #注意metadata 不能要后缀名:需要手动更改 mv metadata.profile metadata
示例:
1.创建导出文件的目录 :
mkdir -p /tmp/mydumper cd /data/tdsql_run/4002/mysqlagent/bin 导出10.85.10.55 上面的原生mysql 数据: ./mydumper --host=10.85.10.55 --port=3306 --user=root --password=root --events --routines --triggers --less-locking --ignore-sysdb=1 --chunk-filesize=1024 --outputdir=/tmp/mydumper –complete-insert 2020-12-09 22:01:44] progress:0% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [2020-12-09 22:01:46] progress:100% #注意 : 1.导出的路径为/tmp/mydumper (好像/tmp/mydumper/也行),导入的路径为 /tmp/mydumper/ 2.导出导入日志分别在 /tmp/mydumper/目录下 dump_progress.info , load_progress.info 3.导出原生mysql,用tdsql 的 mydumper 导源生mysql #如果metadata 里没有 master_log_file 和master_log_pos 是记录 这不影响导入到TDSQL中,但如果增量同步需要master_log_file 和master_log_pos信息 [root@huyidb01 bin]# cat /tmp/mydumper/metadata #用TDSQL的mydump 导出原生的原生mysql 。 Started dump at: 2020-12-09 15:26:04 Finished dump at: 2020-12-09 15:26:06 #原因是源库没有开启bin log #show variables like '%log_bin%'; #vi my.cnf 添加以下参数重启 log_bin = /mysql/log/3306/binlog log_bin_index=/mysql/log/3306/binlog/BIN-LOG.index
2. 导入:到非分布式库: 如果不导入系统表 可以先删掉 rm -rf sys.*
./myloader --host=10.85.10.51 --port=15002 --user=huyi35 --password=huyi --directory=/tmp/mydumper/ --enable-binlog [2020-12-09 22:15:49] progress:11% [2020-12-09 22:15:49] progress:16% [2020-12-09 22:15:49] progress:22% [2020-12-09 22:15:49] progress:27% [2020-12-09 22:15:49] progress:33%
3.检查表 #注意,如果源表没有主键,在导入的时候不会创建该表。 需要先手动更改表结果。在导入
mysql -h 10.85.10.51 -P15002 -uhuyi35 -phuyi Database changed MySQL [ ]> use huyidb ; MySQL [huyidb]> show tables ; +-------------------+ | Tables_in_huyidb | +-------------------+ | bm | | dd | | dq | | gj | | gw |