原生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 |